2011-08-06 59 views
12

我正在使用Debian Squeeze作爲我的操作系統,並且正在嘗試開發Ruby on Rails項目。爲此,我首先安裝了一些紅寶石軟件包。如何設置ruby1.9.1作爲Debian擠壓的默認版本

我的紅寶石版本:ruby1.8的,ruby1.9.1

然後我卸載ruby1.8的製作ruby1.9.1我的默認紅寶石。

現在,如果我運行:

$ which ruby 

它什麼也不顯示。

如果我運行:

$ which ruby1.9.1 
/usr/bin/ruby1.9.1 

但是:

$ rails new testApp 
bash: /usr/bin/rails: /usr/bin/ruby1.8: bad interpreter: No such file or directory 

我不知道該怎麼辦。請指導我。

+0

看到這個問題:http://stackoverflow.com/questions/1892877/how-do-i-make-ruby-1-9-the-default-ruby-on-ubuntu – weakish

回答

1

雖然我沒有你的問題的直接答案,我建議你嘗試使用美妙的rvm(紅寶石版本管理器)工具(http://beginrescueend.com/)。當我嘗試在Ubuntu上使用ruby時,它讓我的生活變得更加輕鬆。

+0

感謝您的回覆,我試過了當我運行** bash <<(curl -s https://rvm.beginrescueend.com/install/rvm)**我得到了**錯誤:無法克隆RVM存儲庫,試圖同時使用git://和https :// ** – Arivarasan

+0

確保你不在防火牆之後,並且首先安裝git。安裝引導腳本抱怨無法檢出資源。谷歌將是你最好的朋友。 –

+1

注意:rvm已經改變了他們的安裝程序,總是訪問https://rvm.io/來檢查最新的。 – ocodo

9

我做我的擠壓盒獲得Ruby 1.9的默認:因爲它們放在/ usr繼電器

cd /usr/bin 
ln -sf ruby1.9.1 ruby 
ln -sf gem1.9.1 gem 
ln -sf erb1.9.1 erb 
ln -sf irb1.9.1 irb 
ln -sf rake1.9.1 rake 
ln -sf rdoc1.9.1 rdoc 
ln -sf testrb1.9.1 testrb 

我跑了很多的鋼軌生產服務器這種方式和所有其它debian紅寶石包不破/bin/ruby1.8二進制。

這不是「真正的debian方式」,但由於某些原因,update-alternatives不支持在squeeze中配置ruby。

在Ubuntu的11.10,你可以只運行update-alternatives --config ruby和選擇所需的版本

我也建議您在開始安裝任何寶石REALLY_GEM_UPDATE_SYSTEM=true gem update --system

12

對於Debian擠壓(6.0)之前更新的RubyGems:

第一一定要卸載所有的ruby和ruby1.8軟件包。否則,他們會干擾即將爲ruby 1.9設置的二進制文件/鏈接。

然後安裝紅寶石1.9包。儘管這些軟件包被命名爲'1.9.1',但他們實際上在Debian上安裝了Ruby 1.9.2版本。虛擬包ruby1.9.1-full將安裝所有必要的程序包紅寶石:

sudo aptitude install ruby1.9.1-full 

添加在ri1.9.1包裝裏和聯機幫助備選的鏈路。 (這兩條線都是一個命令。)

sudo update-alternatives --install /usr/bin/ri ri /usr/bin/ri1.9.1 10 \ 
--slave /usr/share/man/man1/ri.1.gz ri.1.gz /usr/share/man/man1/ri1.9.1.1.gz 

添加紅寶石替代鏈接,相關聯的二進制文件,和幫助文檔在ruby1.9.1包。 (這些行都是一個命令。)

sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.9.1 10 \ 
--slave /usr/share/man/man1/ruby.1.gz ruby.1.gz /usr/share/man/man1/ruby1.9.1.1.gz \ 
--slave /usr/bin/erb erb /usr/bin/erb1.9.1 \ 
--slave /usr/bin/gem gem /usr/bin/gem1.9.1 \ 
--slave /usr/bin/irb irb /usr/bin/irb1.9.1 \ 
--slave /usr/bin/rake rake /usr/bin/rake1.9.1 \ 
--slave /usr/bin/rdoc rdoc /usr/bin/rdoc1.9.1 \ 
--slave /usr/bin/testrb testrb /usr/bin/testrb1.9.1 \ 
--slave /usr/share/man/man1/erb.1.gz erb.1.gz /usr/share/man/man1/erb1.9.1.1.gz \ 
--slave /usr/share/man/man1/gem.1.gz gem.1.gz /usr/share/man/man1/gem1.9.1.1.gz \ 
--slave /usr/share/man/man1/irb.1.gz irb.1.gz /usr/share/man/man1/irb1.9.1.1.gz \ 
--slave /usr/share/man/man1/rake.1.gz rake.1.gz /usr/share/man/man1/rake1.9.1.1.gz \ 
--slave /usr/share/man/man1/rdoc.1.gz rdoc.1.gz /usr/share/man/man1/rdoc1.9.1.1.gz \ 
--slave /usr/share/man/man1/testrb.1.gz testrb.1.gz /usr/share/man/man1/testrb1.9.1.1.gz 

注意,這些都安裝在10的低的替代優先級(--install標誌之後的最後部分,但--slave標誌之前)。希望未來的Debian版本將包括ruby 1.8和ruby 1.9作爲備選系統的一部分並覆蓋這些鏈接。

檢查裏的替代系統:

update-alternatives --display ri 

結果:在替代系統,

ri - auto mode 
link currently points to /usr/bin/ri1.9.1 
/usr/bin/ri1.9.1 - priority 10 
slave ri.1.gz: /usr/share/man/man1/ri1.9.1.1.gz 
Current 'best' version is '/usr/bin/ri1.9.1'. 

檢查紅寶石:

update-alternatives --display ruby 

結果:

ruby - auto mode 
link currently points to /usr/bin/ruby1.9.1 
/usr/bin/ruby1.9.1 - priority 10 
slave erb: /usr/bin/erb1.9.1 
slave erb.1.gz: /usr/share/man/man1/erb1.9.1.1.gz 
slave gem: /usr/bin/gem1.9.1 
slave gem.1.gz: /usr/share/man/man1/gem1.9.1.1.gz 
slave irb: /usr/bin/irb1.9.1 
slave irb.1.gz: /usr/share/man/man1/irb1.9.1.1.gz 
slave rake: /usr/bin/rake1.9.1 
slave rake.1.gz: /usr/share/man/man1/rake1.9.1.1.gz 
slave rdoc: /usr/bin/rdoc1.9.1 
slave rdoc.1.gz: /usr/share/man/man1/rdoc1.9.1.1.gz 
slave ruby.1.gz: /usr/share/man/man1/ruby1.9.1.1.gz 
slave testrb: /usr/bin/testrb1.9.1 
slave testrb.1.gz: /usr/share/man/man1/testrb1.9.1.1.gz 
Current 'best' version is '/usr/bin/ruby1.9.1'. 
+0

安裝 'update-alternatives:錯誤:替代gem不能成爲ruby的奴隸:它是一個主替代品,我得到以下錯誤:' –

+0

Debian的這個版本是這個版本嗎?上述命令專門用於擠壓(6.x)。也許有一個從rubygems1.8包或者其他ruby 1.8包中剩下的配置。這些軟件包及其配置是否完全清除? – finn

+0

我錯過了步驟* 1 *這是刪除紅寶石1.8希望有一種方式來切換版本。我會咬緊牙關並升級。 –

相關問題