执行任何终端命令时获取“无此文件或目录”(由VMware Fusion引起)

gab*_*ila 0 macos vmware path fusion vmware-fusion

我正在使用macOS High Sierra,尝试安装脚本时出现以下错误:

 sh: Fusion.app/Contents/Public:/Users/<name>/.rvm/bin: No such file or directory
Run Code Online (Sandbox Code Playgroud)

显然与rvmFusion.app无关(我没有该应用),我有什么VMWare Fusion.app

gab*_*ila 7

VMWare会更改您的$PATH变量,但不会在.profile,或中更改/etc/profile全局变量,本地变量bashrczshrc文件。

它在里面有自己的文件/etc/paths.d。该文件称为com.vmware.fusion.public

需要sudo权限才能更改文件:

$ sudo vim /etc/paths.d/com.vmware.fusion.public
Run Code Online (Sandbox Code Playgroud)

该文件是readonly,它具有以下内容:

/Applications/VMware Fusion.app/Contents/Public
Run Code Online (Sandbox Code Playgroud)

请注意,它周围没有引号,并且空格字符不会转义。您需要在空格\之后VMWare和之前添加一个。

最后结果:

/Applications/VMware\ Fusion.app/Contents/Public
Run Code Online (Sandbox Code Playgroud)

退出vim:x!

打开一个新的终端窗口,然后再次运行您的命令,您应该不再有该错误。

  • 不幸的是,新版本的 VMware Fusion 现在每次启动时都会重写该值。这很烦人。目前唯一的解决方案是将应用程序本身重命名为“VMWare-Fusion.app”或“VMWareFusion.app”(例如) (3认同)