问题描述
我想知道在Ubuntu 9.04上安装最新版本的Ruby。现在我可以很好地完成./configure
和make
的工作,但我想知道:如何避免与包装系统发生冲突?例如,如果我安装的其他一些软件包依赖于Ruby,那么软件包管理器是否会安装(过时的)Ruby软件包,并且在最坏的情况下会覆盖我的文件?
所以我想我需要一些方法来告诉Ubuntu事实上已经安装了Ruby?
最佳解决方案
省去头痛并使用RVM(Ruby Version Manager)
请记住,Rails 3最适合Ruby 1.9.2。 Ruby 1.9.2在1.9.1中修复了很多错误,并且比运行1.9.1更好。
使用RVM安装1.9.2是轻而易举的。
次佳解决方案
sudo apt-get install ruby1.9.1-full
(http://www.ruby-lang.org/en/downloads/)
第三种解决方案
跑完之后
sudo apt-get install ruby1.9.1-full
它的解决方案是运行以下命令:
sudo update-alternatives --config ruby
然后你会得到这个输出:
There are 2 choices for the alternative ruby (providing /usr/bin/ruby).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/ruby1.8 50 auto mode
1 /usr/bin/ruby1.8 50 manual mode
2 /usr/bin/ruby1.9.1 10 manual mode
Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/ruby1.9.1 to provide /usr/bin/ruby (ruby) in manual mode.
$ ruby --version
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]
这个解决方案的功劳归功于回答了https://askubuntu.com/questions/91693/how-do-you-uninstall-ruby-1-8-7-and-install-ruby-1-9-2的人。目前ruby1.9.1包实际上是ruby 1.9.2。
第四种方案
我这样做的方法是使用checkinstall构建它,让你构建一个deb包。所以我下载了Ruby 1.9.1源代码,做了一个”configure”,然后是”make”,做了一个”checkinstall”,并将软件包名称设为ruby1.9,所以它安装好像是一个新版本的ruby 1.9(应该这样)。
第五种方案
我从this网站获得了Ruby特定信息。您可以使用–prefix = /path开关将大多数软件安装在不同的目录中。通常在/opt /中为每个人安装在您的电脑上,如果只是为您安装在$ HOME中。
在/opt中安装:
$ ./configure –prefix=/opt/ruby
$ make install
如果你想使用/opt安装的ruby,编辑〜/.bashrc并添加
export PATH=/opt/ruby/bin/:$PATH
如果您不希望将自定义Ruby构建作为默认值,则可以将其添加到〜/.bashrc而不是前一个命令
function setupruby {
export PATH=/opt/ruby/bin/:$PATH
}
第六种方案
以下是安装1.9.1并将其设置为默认值的简便方法:http://michalf.me/blog:make-ruby-1-9-default-on-ubuntu-9-10-karmic-koala