如何在debian上设置ruby1.9.1为默认版本

如何在debian上设置ruby1.9.1为默认版本,ruby,ruby-on-rails-3,installation,debian,Ruby,Ruby On Rails 3,Installation,Debian,我正在使用Debian Squence作为我的操作系统,并试图开发一个Ruby on Rails项目。为此,我首先安装了一些ruby软件包 我的ruby版本是:ruby1.8、ruby1.9.1 然后我卸载了ruby1.8,使ruby1.9.1成为我的默认ruby 现在如果我跑步: $ which ruby 它什么也不显示 如果我跑步: $ which ruby1.9.1 /usr/bin/ruby1.9.1 然而: $ rails new testApp bash: /usr/bin/ra

我正在使用Debian Squence作为我的操作系统,并试图开发一个Ruby on Rails项目。为此,我首先安装了一些ruby软件包

我的ruby版本是:ruby1.8、ruby1.9.1

然后我卸载了ruby1.8,使ruby1.9.1成为我的默认ruby

现在如果我跑步:

$ 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

我不知道该怎么办。请指导我。

尽管我无法直接回答您的问题,但我建议您尝试使用出色的rvm(ruby版本管理器)工具()。当我尝试在Ubuntu上使用ruby时,我的生活会变得更加轻松。

我在压缩框中使用ruby 1.9作为默认值的操作:

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
我以这种方式运行了很多rails生产服务器,所有其他debian ruby包都没有损坏,因为它们都是基于/usr/bin/ruby1.8二进制文件的

这不是“真正的debian方式”,但出于某种原因,
updatealternations
不支持在压缩中配置ruby

在Ubuntu11.10中,您可以运行
updatealternations--config ruby
并选择所需的版本

我还建议您在开始安装任何gems之前更新rubygems
REALLY\u GEM\u update\u SYSTEM=real GEM update--SYSTEM

用于Debian Squence(6.0):

首先确保卸载所有ruby和ruby1.8软件包。否则,它们将干扰即将为ruby 1.9设置的二进制文件/链接

然后安装ruby 1.9软件包。尽管这些软件包名为“1.9.1”,但它们实际上在Debian squeeze上安装了ruby 1.9.2版。虚拟软件包
ruby1.9.1-full
将安装ruby所需的所有软件包:

sudo aptitude install ruby1.9.1-full
在ri1.9.1包中添加ri和manpage的备选链接。(这两行都是一个命令。)

在ruby1.9.1包中添加ruby、相关二进制文件和手册页的备选链接。(这些行都是一个命令。)

请注意,这些都是以10的低可选优先级安装的(最后一部分在
--install
标志之后,但在
--slave
标志之前)。这样做的目的是希望Debian的未来版本将包括ruby 1.8和ruby 1.9作为替代系统的一部分,并覆盖这些链接

检查备选方案系统中的ri:

update-alternatives --display ri
update-alternatives --display ruby
结果是:

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'.
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'.
在备选方案系统中选中ruby:

update-alternatives --display ri
update-alternatives --display ruby
结果是:

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'.
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'.

感谢您的回复,我在运行bash时也尝试过这一点。<确保您不在防火墙后面,并且首先安装git。安装引导脚本抱怨无法签出资源。谷歌将是你在这方面最好的朋友。注意:rvm已经更改了安装过程,请始终访问查看最新版本。我在安装alternative时遇到以下错误
更新alternatives:错误:alternative gem不能成为ruby的奴隶:它是一个主版本。
这是什么版本的Debian?上述命令专门用于挤压(6.x)。可能是rubygems1.8包或其他Ruby1.8包中的一个包留下了配置。那些包和它们的配置都被完全清除了吗?我错过了第一步,那就是删除ruby 1.8希望找到一种在版本之间切换的方法。我会咬紧牙关升级。是的,最初的问题是关于一个删除了1.8并安装了1.9的安装。因为我还没有在挤压机上同时从apt安装1.8和1.9两个版本,所以我不确定这有多容易(或可能)@finn我首先使用
sudo-apt-get-autoremove-ruby卸载了它,并确认没有留下任何ruby“which-ruby”。然后我按照你的方法得到了错误
updatealternations:error:alternative gem不能成为ruby的奴隶:它是一个主替代品。
我正在使用Debian 6.0作为
cat/etc/issue
确认。请看这个问题: