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

9
当我尝试运行以下命令时: R --slave --no-save --no-restore -e "print('foo')" 我收到了如下错误信息: /usr/local/bin/R: 第193行: /usr/local/Library/ENV/4.3/sed: 没有那个文件或目录 ERROR: 选项'-e'需要一个非空参数 显然,最近的 brewENV 文件夹移动到了新路径(请参见 这里)。我知道可以轻松地创建符号链接来修复此问题,但我想知道是否有更好的解决方法/修复方法(以及是否会在 R 源代码中修复此问题)。

你尝试重新安装R了吗?似乎有些东西已经混乱到无法修复的地步了。 - Konrad Rudolph
@KonradRudolph 我尝试重新安装,但问题并没有得到解决。 - petobens
这似乎是一个可重现的问题 - https://dev59.com/1Jnga4cB1Zd3GeqPSgnR - 应该向Homebrew报告为一个bug。 - Konrad Rudolph
1
我向 Git 提交了一个问题报告。如果您认为我需要添加更多信息,请告诉我。https://github.com/Homebrew/brew/issues/553 - K. Shores
3个回答

10
这是因为brewthis commit中更改了路径,所以如果你在过去4天内运行了brew update,那么这就是导致故障的原因。
感谢blindjesse提供的答案,即brew reinstall -s r
但是当我尝试这样做时,遇到了其他问题。我没有安装X11,并且tcl-tk有冲突,这意味着在编译时会导致其他故障。
  1. 我从 https://www.xquartz.org 安装了 XQuartz。
  2. 将其链接到我的 homebrew 文件夹 ln -s /opt/X11/include/X11 /usr/local/include/X11(请注意,您的 homebrew 目录可能不同)。
  3. brew install homebrew/dupes/tcl-tk brew link --overwrite --force tcl-tk; brew unlink tcl-tk
  4. brew reinstall -s r

然后它就对我起作用了。我认为一旦 r 瓶子升级,这个问题就会消失,但目前我必须这样做。


1
升级到Sierra后,尝试了上述命令以及这里的指示:https://github.com/Homebrew/homebrew-science/issues/4338。在按照这里的说明https://github.com/IRkernel/IRkernel重新安装R内核后,事情又开始正常工作了。哦,天啊。
要重新安装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

0
与其在sed中硬编码路径,一个简单的解决方法是编辑R脚本并更改第193行。
SED=$(which sed)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接