2013-05-08 25 views
6

在Linux上(至少12.04)从ruby 1.9.3升级到ruby 2.0时,会得到意外的提示。升级到Ruby 2.0时,无需提示即可覆盖可执行文件

rdoc's executable "rdoc" conflicts with /path/bin/rdoc 
Overwrite the executable? [yN] 

它工作正常,以手动覆盖它,但我正在寻找一种方式,我的脚本将自动回复yes而不停止。

刚刚在rubygems from a year ago上发现了这个问题。我在脚本中使用gem install所以我想我可以稍微轻松地添加yes | gem install

编辑: 尝试yes | gem install rdoc但它失败:

ERROR: Error installing rdoc: 
"rdoc" from rdoc conflicts with /usr/local/rubies/2.0.0-p0/bin/rdoc 
+2

'yes |尽管我确信有更好的方法。你用什么命令升级? – adamdunson 2013-05-08 21:08:13

+0

在Dockerfile中遇到同样的问题。 '是|该命令不适用于我... – rwb 2014-07-03 08:26:00

+0

我终于找到了一种解决方法,不需要此安装。 – ScotterC 2014-07-03 15:38:21

回答

3

您可以在前面加上

yes | 

是刚一遍又一遍地输入y,然后输入到标准输入。

(谢谢@adamdunson)

+1

'<'只适用于文件。 OP需要预先加上'yes |'。 – adamdunson 2013-05-08 21:10:30

0

其实,你不应该说是。 This is currently a bug right now for Ruby 2.0。我自己的解决方案(无论如何,即使这不是问题!)我使用gemset处理程序(我现在使用rbenv-gemset,现在使用rbenv)。

1

对于Ubuntu和Ruby 2.0来说,yes |如上所述的前置解决方案不能像我的自动构建脚本(使用sprinkle gem)中所述那样工作。

因此,在执行安装之前,我在构建脚本中添加了一个步骤以重命名(在我的情况下)/ usr/local/bin/rdoc和/ usr/local/bin/ri。

因此,安装重新创建这些文件没有讨厌的提示,我只是无法以某种方式似乎避免。就我个人而言,我认为https://github.com/rubygems/rubygems/pull/280的建议是一个很好的建议,尽管这似乎并没有被社区敞开怀抱。

我的解决方案是一个有点粗糙的解决方法,但可以帮助其他人,直到有一个更优雅的修复程序。

+0

对我的Sprinkle脚本有这个问题,你的建议对我有用。 Thx – SupaIrish 2014-03-18 01:57:38

1

--force工作对我来说:

gem install --force rdoc

免责声明:这不是什么--force是的,我不知道为什么yes |不起作用。

+0

尽管您不会说是选择“是”还是“否”,但我选择了“N”。结果:'错误:安装rdoc时出错: “rdoc”与rdoc发生冲突C:/ Ruby24-x64/bin/rdoc' _(安装继续并结束。您的修复**:'C:\ Users \ Owner> gem install --force rdoc 已成功安装rdoc-5.1.0 解析rdoc-5.1的文档。0 为rdoc-5.1.0安装ri文档 15秒后为rdoc完成安装文档 1 gem installed'所以我相信它工作:) – Chris22 2017-05-29 21:27:08

相关问题