我想了解如何在Ubuntu 9.04上安装最新版本的Ruby。现在,我可以顺利运行./configure
和make
,但我想知道:如何避免与软件包系统的冲突?例如,如果我安装的某个其他软件包依赖于Ruby,那么软件包管理器会安装(已经过时的)Ruby软件包,在最坏的情况下还会覆盖我的文件吗?
所以,我认为我需要告诉Ubuntu Ruby已经安装好了。
我想了解如何在Ubuntu 9.04上安装最新版本的Ruby。现在,我可以顺利运行./configure
和make
,但我想知道:如何避免与软件包系统的冲突?例如,如果我安装的某个其他软件包依赖于Ruby,那么软件包管理器会安装(已经过时的)Ruby软件包,在最坏的情况下还会覆盖我的文件吗?
所以,我认为我需要告诉Ubuntu Ruby已经安装好了。
rvm install 1.9.1
看起来是一个友好的命令,但它让我陷入了长达两个小时的痛苦之旅,因为它导致了一系列错误的补丁。为了保持你的理智,最好直接使用 apt-get 安装。当 rvm 像大多数 Ruby 库一样正常工作时,它还是很不错的。 - Milimetricrvm
是一个非常复杂的工具。虽然它可能适用于某些情况,但我浪费了半天时间来使用它。Ubuntu 12.10 自带 Ruby 1.9.3,所以没有什么理由去折腾 rvm
。 - Ross Smith IIsudo apt-get install ruby1.9.1-full
sudo apt-get remove ruby
。 - Ian Vaughansudo update-alternatives --config ruby
命令将默认版本更改为1.9.x。无需卸载1.8版本。(根据我对此问题的回答)。 - kristianp运行之后
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。
sudo apt-get install ruby1.9.1-full
不再起作用了。 - Idemaxsudo apt-get install ruby-full
命令进行安装(尽管我还没有尝试过)。 - kristianp我采用的方法是使用checkinstall来构建deb包。因此,我下载了Ruby 1.9.1源代码,执行了"configure"和"make"命令,然后使用"checkinstall"命令并将包命名为ruby1.9,这样它就会安装为新版本的Ruby 1.9(正如它应该安装的那样),同时保留了HTML标签。
$ ./configure –prefix=/opt/ruby
$ make install
export PATH=/opt/ruby/bin/:$PATH
function setupruby {
export PATH=/opt/ruby/bin/:$PATH
}
http://www.humbug.in/2010/launchpad-ppa-for-ruby-1-9-2-and-some-ruby-bindings/
sudo add-apt-repository ppa:pratikmsinha/ruby192+bindings
cd /etc/apt/sources.list.d/; sudo mv pratikmsinha-ruby192+bindings-lucid.list pratikmsinha-ruby192bindings-lucid.list
sudo aptitude update
sudo aptitude install ruby1.9.2
通过 Synaptic 查看,似乎您甚至不必处理 Multiverse 或第三方存储库。但由于 sudo apt-get install ruby
目前安装了一个别名到 ruby1.8
,您应该显式地安装 ruby1.9
- 手动或通过存储库 - 并自己创建别名 ruby
。
您可能希望将二进制文件放在 /usr/bin
中,因为这是发行版会放置它的位置。不过,在您的 PATH 上的任何位置都可以。