我正在使用macOS High Sierra,在尝试安装脚本时遇到以下错误:
sh: Fusion.app/Contents/Public:/Users/<name>/.rvm/bin: No such file or directory
显然与rvm
或Fusion.app
有关,我没有那个应用程序,我所拥有的是VMWare Fusion.app
.
VMWare会更改您的$PATH
变量,但它不会在.profile
或/etc/profile
中执行,全局变量或局部变量都不会bashrc
或zshrc
文件。
它有自己的文件 /etc/paths.d
.该文件称为 com.vmware.fusion.public
。
您需要 sudo 权限才能更改文件:
$ sudo vim /etc/paths.d/com.vmware.fusion.public
该文件已readonly
,并且具有以下内容:
/Applications/VMware Fusion.app/Contents/Public
请注意,它周围没有引号,并且空格字符没有转义。您需要在VMWare
之后和空格之前添加一个。
最终结果:
/Applications/VMware Fusion.app/Contents/Public
与:x!
一起退出vim
。
打开一个新的终端窗口并再次运行您的命令,您应该不再出现该错误。
在启动时使用 VMware Fusion 重写/etc/paths.d/com.vmware.fusion.public
;
将此 PATH 查找和替换行添加到我的.bash_profile似乎有效:
export PATH=${PATH//VMware F/VMware\ F}
发生这种情况是因为某些 shell 脚本(在这种情况下可能是 rvm
(没有遵循最佳实践,特别是:
双引号以防止通配和分词https://github.com/koalaman/shellcheck/wiki/SC2086
按照其他答案中的建议更改/etc/paths.d/com.vmware.fusion.public
可能会破坏此变量用双引号括起来的所有其他地方。