使用-e标志运行R时找不到Sed目录

时间:2016-07-18 15:15:09

标签: r sed homebrew

当我尝试运行以下命令时: 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源代码中修复)。

3 个答案:

答案 0 :(得分:10)

这是因为brew已更改了this commit中的路径,因此如果您在过去4天内运行brew update,则会导致破损。

blindjesse的信用额转至answer,即brew reinstall -s r

当我尝试这个时,我遇到了一些其他问题。我没有安装X11并且我与tcl-tk发生了冲突,这意味着它在编译时会导致其他一些失败:

  1. 我从https://www.xquartz.org
  2. 安装了XQuartz
  3. 将其符号链接到我的自制文件夹ln -s /opt/X11/include/X11 /usr/local/include/X11(请注意您的自制程序目录可能不同)
  4. brew install homebrew/dupes/tcl-tk brew link --overwrite --force tcl-tk; brew unlink tcl-tk
  5. brew reinstall -s r
  6. 然后它对我有用。我认为一旦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脚本并使用

更改第193行
SED=$(which sed)