2013-05-08 24 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

相關問題