【问题标题】:Sed directory not found when running R with -e flag使用 -e 标志运行 R 时找不到 Sed 目录
【发布时间】:2016-11-21 06:36:33
【问题描述】:

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

【问题讨论】:

  • 您是否尝试重新安装 R?似乎有些东西已经无法修复了。
  • @KonradRudolph 我尝试重新安装并没有解决问题。
  • 这似乎是一个可重现的问题——stackoverflow.com/q/38441722/1968——它可能应该作为一个错误报告给 Homebrew。
  • 我向 Git 提交了问题报告。如果您认为我应该添加更多信息,请告诉我。 github.com/Homebrew/brew/issues/553

标签: r sed homebrew


【解决方案1】:

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

answer 的信用归blindjesse,即brew reinstall -s r

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

  1. 我从https://www.xquartz.org安装了XQuartz
  2. 符号链接到我的自制文件夹ln -s /opt/X11/include/X11 /usr/local/include/X11(注意你的自制目录可能不同)
  3. brew install homebrew/dupes/tcl-tk brew link --overwrite --force tcl-tk; brew unlink tcl-tk
  4. brew reinstall -s r

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

【讨论】:

    【解决方案2】:

    升级到 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
    

    【讨论】:

      【解决方案3】:

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

      SED=$(which sed)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-18
        • 1970-01-01
        • 1970-01-01
        • 2020-03-14
        • 1970-01-01
        • 1970-01-01
        • 2014-12-16
        • 2018-04-24
        相关资源
        最近更新 更多