我的服务器正在使用aptitude安装Ubuntu Hardy和Ruby 1.8.6。 我想升级到Ruby 1.8.7,但不幸的是,Ruby包包括从Ubuntu Intrepid开始的Ruby 1.8.7。
我阅读了几个关于如何升级到Ruby 1.8.7的教程,我发现至less有三种不同的方式来完成这个任务:
我有点困惑。 你如何build议升级到Ruby 1.8.7考虑到我不需要在同一台服务器上的多个Ruby版本? 我想用Ruby 1.8.7干净地replace现有的Ruby 1.8.6。
由于Jeff让我注意到Ruby 1.8.7还没有被反向移植,我想到的另一个解决scheme是使用团队包装Ruby的PPA 。
在那里你可以findRuby版本1.8.7.22和版本1.9.0.2,如果你喜欢。
如果您不知道如何configurationubuntu以使用PPA,说明也位于“将此PPA添加到您的系统”部分下的链接页面上(单击不使用Ubuntu 9.10(karmic)?) 。
希望这可以帮助! 🙂
这是我认为APT真的很糟糕的地方。 说实话,我build议采取懒惰的方式,只是手动安装debs。
cd /tmp wget http://archive.ubuntu.com/ubuntu/pool/main/r/ruby1.8/libruby1.8_1.8.7.174-2_i386.deb wget http://archive.ubuntu.com/ubuntu/pool/main/r/ruby1.8/ruby1.8_1.8.7.174-2_i386.deb sudo dpkg -i libruby1.8_1.8.7.174-2_i386.deb ruby1.8_1.8.7.174-2_i386.deb sudo apt-get install ruby
这对于任何包来说都不起作用,但是就依赖关系而言,ruby似乎是相当干净的。 没有承诺,您将不会遇到与您可能从apt安装的其他软件包一些晦涩难懂的问题。
如果您想使用回购协议,并且至less能够知道更新何时可用,那么您可以select使用backport存储库。 有一种叫做pinning的技术,允许你启用整个存储库,但只安装/升级某些软件包。 由于ubuntu维基百科解释如何做得比我更好,所以我让你读它! 🙂
如果你select与杰夫·斯奈德(Jeff Snider)所提出的build议一致,那么你可能希望运行:
sudo apt-get -f update
-f代表--fix-broken ,它的作用是尝试修复已经安装的软件包的破坏的依赖关系。
HTH!
另一种select是使用rubyee的brightbox软件包。
下面引用Ben Arblaster的post
如果您使用的是基于Hardy的Brightbox,则只需创build或编辑/etc/apt/sources.list.d/brightbox-rubyee.list以包含rubyeetesting组件,如下所示:
deb http://apt.brightbox.net/ hardy rubyee-testing最后,更新和升级libruby1.8:
sudo apt-get update
sudo apt-get install libruby1.8 irb1.8 libopenssl-ruby1.8 libreadline-ruby1.8 rdoc1.8 ruby