当我尝试运行以下命令时:
R --slave --no-save --no-restore -e "print('foo')"
我得到:
/usr/local/bin/R: line 193: /usr/local/Library/ENV/4.3/sed: No such file or directory
ERROR: option '-e' requires a non-empty argument
显然brew
最近将ENV
文件夹移到了新路径(请参阅here)。我知道我可以轻松地对新的sed目录进行符号链接以修复问题,但我想知道是否有更好的解决方法/修复(最终如果这将在R源代码中修复)。
答案 0 :(得分:10)
这是因为brew
已更改了this commit中的路径,因此如果您在过去4天内运行brew update
,则会导致破损。
此blindjesse的信用额转至answer,即brew reinstall -s r
。
当我尝试这个时,我遇到了一些其他问题。我没有安装X11并且我与tcl-tk
发生了冲突,这意味着它在编译时会导致其他一些失败:
ln -s /opt/X11/include/X11 /usr/local/include/X11
(请注意您的自制程序目录可能不同)brew install homebrew/dupes/tcl-tk
brew link --overwrite --force tcl-tk; brew unlink tcl-tk
brew reinstall -s r
然后它对我有用。我认为一旦r
瓶升级,这个问题应该会消失,但目前这就是我必须做的事情。
答案 1 :(得分:1)
升级到Sierra,尝试了上面的命令以及这里的指示:https://github.com/Homebrew/homebrew-science/issues/4338。之后我按照这里的说明重新安装了R内核:https://github.com/IRkernel/IRkernel,事情又开始了。 OY合租。
要重新安装R内核,请在终端中启动R并输入以下内容:
install.packages(c('repr', 'IRdisplay', 'crayon', 'pbdZMQ', 'devtools'))
devtools::install_github('IRkernel/IRkernel')
IRkernel::installspec() # to register the kernel in the current R installation
答案 2 :(得分:0)
与其对sed
的路径进行硬编码,一种简单的解决方法是编辑R脚本并使用
SED=$(which sed)