有没有人试过从Ubuntu上安装ruby和rubygems(最好是unbuntu 9)?

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

我在网上find关于在Ubuntu下安装ruby的所有说明,都涉及到使用预先打包(.deb)的ruby。 显然,这不是铁路人员推荐的。

当我做了一个干净的Ruby源代码构build时,我发现Rubygems无法安装,因为zlib扩展不起作用。

出现两个问题:

1)zlib扩展没有被build立。

解:

i)确保zlib在注释源代码的extn目录下的Setup文件中取消注释

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

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

2)在修复上面的问题1(并且做了一个干净的ruby重build)之后,zlib仍然不工作,因为扩展失败了。

你可以看到模块无法通过运行来获取输出“false”来加载:

 puts require 'zlib' 

我观察到,这发生在extn目录中的任何其他C扩展,所以这似乎是一个更普遍的问题与这些扩展,而不仅仅是zlib特定的。

总结:

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

有没有办法,我可以找出为什么一个模块无法加载? 某种跟踪/详细模式?

我不明白你的问题是什么 你说require 'zlib'返回false 。 但是这意味着它确实起作用了! 如果出现错误,您将得到一个LoadError异常。

这是我在Ubuntu 11.04上安装ruby,gems和rails的过程

  • 从源代码安装红宝石

  • 从源代码安装RubyGems

  • 安装zlib:
    • sudo apt-get install zlib1g-dev
    • 裁谈会您的红宝石的来源/外部/ ZLIB
    • 红宝石extconf.rb
    • 使
    • sudo make install
  • 安装readline:
    • sudo apt-get install libreadline5-dev
    • 裁谈会您的红宝石资源/ ext / readline
    • 红宝石extconf.rb
    • 使
    • sudo make install
  • 安装openssl:
    • sudo apt-get install libssl-dev
    • cd你的红宝石资源/分机/ openssl
    • 红宝石extconf.rb
    • 使
    • sudo make install

你安装了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