将 Ubuntu Hardy 升级到 Ruby 1.8.7

将 Ubuntu Hardy 升级到 Ruby 1.8.7

我的服务器运行的是 Ubuntu Hardy,并使用 aptitude 安装的 Ruby 1.8.6。我想升级到 Ruby 1.8.7,但不幸的是,从 Ubuntu Intrepid 开始,Ruby 软件包包含 Ruby 1.8.7。

我阅读了一些关于如何升级到 Ruby 1.8.7 的教程,发现至少有 3 种不同的方法来完成此任务:

  • 向后移植
  • 从源代码安装
  • 从源代码安装和多个版本

我有点困惑。考虑到我不需要在同一台服务器上安装多个 Ruby 版本,您建议如何升级到 Ruby 1.8.7?我想用 Ruby 1.8.7 彻底替换现有的 Ruby 1.8.6。

答案1

Jeff 让我注意到 Ruby 1.8.7 还没有被移植,我想到的另一个解决方案是使用Ruby 打包团队的 PPA

如果您愿意,您可以在那里找到 Ruby 版本 1.8.7.22 和版本 1.9.0.2。

如果你不知道如何配置 Ubuntu 以使用 PPA,说明也在链接页面上(单击没有使用 Ubuntu 9.10 (karmic)?在“将此 PPA 添加到您的系统”部分下。

希望这可以帮助! :)

答案2

这是我认为 APT 真正糟糕的地方。老实说,我建议采取偷懒的方法,直接手动安装 deb。

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 安装的其他软件包的一些模糊问题。

答案3

如果您想使用存储库,从而至少能够知道何时有更新可用,您可以选择使用 backport 存储库。有一种技术叫做钉住允许您启用整个存储库,但仅安装/升级某些软件包。由于Ubuntu 维基比我更好地解释了如何做到这一点,我让你去阅读它!:)

如果您选择采用 Jeff Snider 的建议,那么您可能希望运行:

sudo apt-get -f update

代表-f什么--fix-broken以及它做什么是尝试修复已安装包的损坏依赖关系。

呼呼!

答案4

另一个选择是使用 ruby​​ee 的 brightbox 包。

以下引自Ben Arblaster 的帖子

如果您使用基于 Hardy 的 Brightbox,只需创建或编辑 /etc/apt/sources.list.d/brightbox-rubyee.list 以包含 ruby​​ee-testing 组件,如下所示:

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

相关内容