当带有 -e 标志的 运行 R 时找不到 Sed 目录

Sed directory not found when running R with -e flag

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

发生这种情况是因为 brew 更改了它在 this commit 中的路径,因此如果您在过去 4 天内 运行 brew update,这就是导致破损。

归功于 blindjesse for this 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

然后它对我有用。我认为一旦 r 瓶子升级,这个问题应该就会消失,但目前这是我必须做的。

已升级到 Sierra,尝试了上面的命令以及此处的说明:https://github.com/Homebrew/homebrew-science/issues/4338. After I also reinstalled the R kernel following the instructions here: 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

与其硬编码 sed 的路径,一个简单的解决方法是编辑 R 脚本并将第 193 行更改为

SED=$(which sed)