有没有人尝试在Ubuntu(最好是Ubuntu 9)上从源代码安装ruby和rubygems?

Daf*_*ees 3 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)确保在ruby源的extn目录中的Setup文件中取消注释zlib,并且

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

aptitude install zlib1g
aptitude install zlib1g-dbg
aptitude install zlib1g-dev
aptitude install zlibc
Run Code Online (Sandbox Code Playgroud)

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

您可以通过运行此命令并输出"false"来查看模块无法加载:

puts require 'zlib'
Run Code Online (Sandbox Code Playgroud)

我观察到这发生在extn目录中的任何其他C扩展中,因此对于这些扩展而言似乎是一个更普遍的问题,而不仅仅是zlib特有的.

总结一下:

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

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

Evg*_*nii 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