2013-05-15 84 views
66

sudo訪問在我的Debian服務器我有一個名爲「部署」,不具有sudo訪問用戶,並已安裝RVM。如何安裝RVM系統要求不給RVM的用戶

當使用「部署」,像1.9.3安裝Ruby,它會觸發一個任務來安裝依賴

"Installing requirements for debian, might require sudo password." 

該故障並停止安裝,因爲「部署」不能須藤。

我不希望添加「部署」到sudoers文件列表,並且不希望其他一些用戶安裝RVM只是安裝依賴性的一次性使用。

什麼是安裝該依賴關係的正確方法?或者我如何列出它們以手動安裝?

+0

RVM可能試圖以編譯安裝編譯依賴源代碼發佈的紅寶石。避免使用「最新」版本並指定明確的ruby版本。 –

+2

感謝您提出這個問題。 –

回答

144

這的確是RVM的新功能叫做autolibs,它會自動安裝依賴。

如果您已經安裝了RVM,並且它要求你的sudo密碼,您可以禁用autolibs:

$ rvm autolibs disable 
$ rvm requirements # manually install these 
$ rvm install ruby 

否則,您可以安裝RVM不使用此命令autolibs:

$ \curl -L https://get.rvm.io | bash -s -- --autolibs=read-fail 

我明白動機,但覺得很煩人。我不想將我的sudo密碼放入RVM中,也不希望捆綁!請社區,停止這樣做。

+6

謝謝,我浪費了很多時間。他們在想什麼? –

+3

出於好奇,爲什麼curl以斜線作爲前綴?這是一個錯字嗎? – Gili

+11

@Gili反斜槓將繞過現有的別名,這可能會有其他不需要的標誌。 – kwarrick

-1

該問題是在最新的RVM版本中引入的。不知道到底什麼時候,但肯定在過去的3-4個月。

試試這個:

rvm get 1.18.8 
rvm install <whichever-version-you-want> 

我不知道什麼時候1.18.8和12年1月20日那樣的問題之間的路徑上得到了介紹,但對我的工程安裝與RVM v1.18.8和失敗與v1.20.12。

+0

降級肯定不是必需的。 – drumfire

6

accepted answer未能紅寶石安裝到.rvm/bin/ruby。 shell腳本在.rvm/wrappers/ruby-2.0.0-p247/ruby結束,如果您的構建腳本依賴於此位置並且版本號隨時間而改變,那麼這是一種痛苦。

這裏有一個簡單的解決方案是爲我工作:

\curl -L https://get.rvm.io | bash -s -- --ignore-dotfiles --autolibs=0 --ruby 

.rvm/bin/ruby不出所料創建。

來源http://blog.sunild.com/2013/07/install-ruby-with-rvm-on-mac-os-108.html

29

我喜歡這個

$ rvm autolibs fail 
$ rvm install ruby 
Searching for binary rubies, this might take some time. 
Found remote file https://rubies.travis-ci.org/ubuntu/12.04/x86_64/ruby-2.1.1.tar.bz2 
Checking requirements for ubuntu. 
Missing required packages: gawk g++ gcc make libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev 
RVM autolibs is now configured with mode '2' => 'check and stop if missing', 
please run `rvm autolibs enable` to let RVM do its job or run and read `rvm autolibs [help]` 
or visit https://rvm.io/rvm/autolibs for more information. 
Requirements installation failed with status: 1. 

那麼我可以用root重新登錄並運行

# apt-get install gawk g++ gcc make libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev 
+0

同意,這是更好的解決方案 – Thomas

+0

這應該是公認的答案。更多可操作的信息。 – mshiltonj

+0

偉大的解決方案。謝謝! – Xornand