Ich habe VMware Fusion 10 kürzlich auf einem Mac installiert, auf dem macOS 10.12.6 ausgeführt wird. Danach ist mein Bash-Pfad unterbrochen. Ich habe das Problem auf eine von Fusion installierte /etc/paths.d -Pfaddatei zurückgeführt. Es enthält den folgenden Eintrag (ohne Zeilenumbruch):
/Applications/VMware Fusion.app/Contents/Public
Beachten Sie das Leerzeichen im Pfadnamen. Mit diesem Geschenk erhalte ich beim Starten einer Shell eine Fehlermeldung:
-bash: export: `Fusion.app/Contents/Public:/Library/TeX/texbin': not a valid identifier
Und mein resultierender PFAD ist beschädigt. Ich habe versucht, eine neue Zeile hinzuzufügen, den Pfad in doppelte Anführungszeichen zu setzen und einen Backslash vor das Leerzeichen zu setzen. Alle diese erzeugen einen Fehler (manchmal unterschiedliche Fehler). Wenn Sie beispielsweise den umgekehrten Schrägstrich oder den Zeilenumbruch in doppelte Anführungszeichen einfügen, tritt der gleiche Fehler auf. Beide Änderungen zusammen ergeben:
-bash: test: /Users/loredo/Library/Commands:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Applications/VMware: binary operator expected
-bash: test: /Users/loredo/Library/Commands:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Applications/VMware: binary operator expected
-bash: test: /usr/local/var/rbenv/shims:/Users/loredo/Library/Commands:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Applications/VMware: binary operator expected
-bash: export: `Fusion.app/Contents/Public:/Library/TeX/texbin:.:/usr/texbin:/usr/local/cuda/bin': not a valid identifier
Ich fange an mich zu fragen, ob ich path_helper
möglicherweise nicht in der Lage bin, einen solchen Anwendungsfall zu behandeln. Gibt es eine Möglichkeit, damit umzugehen?
/etc/paths.d/com.vmware.fusion.public
enthält/Applications/VMware Fusion.app/Contents/Public
und in Terminal-echo $PATH
Ausgaben:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public
Ich habe kein Problem mit meinemPATH
oder dem Ausführen von z. B.vmrun
, das sich im/Applications/VMware Fusion.app/Contents/Public
Verzeichnis befindet, so dass der Speicherplatz kein Problem darstellt. DuPATH
wirst woanders vermasselt! Haben Sie/etc/paths
ein~/.bash_profile
oder geändert oder haben Sie ein oder hinzugefügt,~/.profile
und wenn ja, ändern Sie dasPATH
in einer dieser Dateien?echo $PATH
?Antworten:
Mein
/etc/paths.d/com.vmware.fusion.public
enthält:Im Terminal werden folgende
echo $PATH
Ausgänge ausgegeben:Ich habe kein Problem mit meinem
PATH
oder dem Ausführen von z. B.vmrun
, das sich im/Applications/VMware Fusion.app/Contents/Public
Verzeichnis befindet, so dass der Speicherplatz kein Problem darstellt. DuPATH
wirst woanders vermasselt!Haben Sie
/etc/paths
ein~/.bash_profile
oder geändert oder hinzugefügt~/.profile
, und wenn ja, ändern Sie dasPATH
in einer dieser Dateien?quelle
Also werde ich versuchen, diesem den alten College-Versuch zu geben. Nachdem ich ungefähr eine Stunde damit rumgespielt hatte, kam ich zu dem Schluss, dass
path_helper
- die native App, die einePATH
Umgebungsvariable erstellt/etc/paths
und/etc/paths.d
nicht gut mit Pfaden funktioniert, die Leerzeichen enthalten, d. H. Deshalb erleben Sie Ihre aktuelle Situation.Meine hackige Lösung, um dies zum Laufen zu bringen, ist es, einen Symlink zu erstellen aus:
/Applications/VMware Fusion.app
zu
/Applications/VMwareFusion.app
mit dem folgenden Befehl,
ln -sf /Applications/Vmware Fusion.app /Applications/VmwareFusion.app
Bearbeiten
/etc/paths.d/com.vmware.fusion.public
und ändern Sie dann die eine Zeile in dieser Datei so, dass sie wie folgt aussieht:/Applications/VMwareFusion.app/Contents/Public/
Dann natürlich eine neue Shell-Sitzung starten oder neu starten.
Diese Lösung eignet sich hervorragend für die Verwendung der Fischschale.
quelle
path_helper
nicht schuld; Zumindest in meinem Fall werden Leerzeichen in Pfaden korrekt behandelt.