有人试过安装ruby&来自Ubuntu源代码的rubygems(最好是Ubuntu 9)?

时间:2009-08-09 01:21:58

标签: ruby linux ubuntu rubygems zlib

Ruby on Rails网站建议在Linux下从源代码安装Ruby。 我在Ubuntu 9的干净安装中遇到了一些从源代码构建ruby的C库问题。

我在网上发现的关于在Ubuntu上安装ruby的所有说明都涉及使用预先打包的(.deb-based)ruby。显然,这不是铁人们推荐的。

当我做了一个干净的ruby源代码构建时,我发现Rubygems安装失败,因为zlib扩展不起作用。

出现两个问题:

1)未构建zlib扩展名。

解决方案:

i)确保zlib在ruby源的extn目录中的Setup文件中取消注释,并且

ii)确保安装了这些zlib ubuntu软件包:

aptitude install zlib1g
aptitude install zlib1g-dbg
aptitude install zlib1g-dev
aptitude install zlibc

2)在修复上面的问题1(并进行ruby的干净重建)之后,zlib仍然无法正常工作,因为扩展无法加载。

您可以通过运行此模块并获取输出“false”来查看模块无法加载:

puts require 'zlib'

我发现这种情况发生在extn目录中的任何其他C扩展中,因此这些扩展似乎是一个更普遍的问题,而不仅仅是zlib特有的。

总结:

  • 我的ruby构建找到了特定于ruby的C zlib扩展,但无法加载zlib模块。
  • 这种行为似乎发生在/ extn。
  • 中的其他扩展名中

有没有办法可以找出模块无法加载的原因?某种痕迹/详细模式?

3 个答案:

答案 0 :(得分:5)

以下是我在Ubuntu 11.04上安装ruby,gem和rails所做的工作

  • 从源代码安装ruby

  • 从源代码安装RubyGems

  • 安装zlib:
    • sudo apt-get install zlib1g-dev
    • cd your-ruby-sources / ext / zlib
    • ruby​​ extconf.rb
    • 使
    • sudo make install
  • 安装readline:
    • sudo apt-get install libreadline5-dev
    • cd your-ruby-sources / ext / readline
    • ruby​​ extconf.rb
    • 使
    • sudo make install
  • 安装openssl:
    • sudo apt-get install libssl-dev
    • cd your-ruby-sources / ext / openssl
    • ruby​​ extconf.rb
    • 使
    • sudo make install

答案 1 :(得分:2)

我看不出你的问题是什么。您说require 'zlib'会返回false。但这意味着它做了工作!如果出现错误,您将获得LoadError例外。

答案 2 :(得分:1)

您安装了libzlib-ruby吗?这是我在安装Rubygems之前的典型Ubuntu初始化:

$ apt-get update
$ apt-get dist-upgrade
$ apt-get install build-essential -y
$ apt-get install rsync -y
$ apt-get install ruby ri rdoc irb ri1.8 ruby1.8-dev libzlib-ruby zlib1g libopenssl-ruby -y