3

Ruby on Rails 网站建议在 Linux 下从源代码安装 Ruby。我在全新安装的 Ubuntu 9 上从源代码构建 ruby​​ 时遇到了许多 C 库问题。

我在网上找到的关于在 Ubuntu 上安装 ruby​​ 的所有说明都涉及使用预打包(基于.deb)的 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 中的其他扩展上。

有没有办法找出模块无法加载的原因?某种跟踪/详细模式?

4

3 回答 3

5

这是我在 Ubuntu 11.04 上安装 ruby​​、gems 和 rails 所做的

  • 从源代码安装 ruby

  • 从源代码安装 RubyGems

  • 安装 zlib:
    • sudo apt-get install zlib1g-dev
    • cd your-ruby-sources/ext/zlib
    • 红宝石 extconf.rb
    • 制作
    • 须藤使安装
  • 安装阅读线:
    • sudo apt-get install libreadline5-dev
    • cd your-ruby-sources/ext/readline
    • 红宝石 extconf.rb
    • 制作
    • 须藤使安装
  • 安装openssl:
    • sudo apt-get install libssl-dev
    • cd your-ruby-sources/ext/openssl
    • 红宝石 extconf.rb
    • 制作
    • 须藤使安装
于 2011-08-19T20:04:14.970 回答
2

我不明白你的问题是什么。你说require 'zlib'回报false。但这意味着它确实有效!如果有错误,你会得到一个LoadError异常。

于 2009-08-10T10:19:33.943 回答
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
于 2009-08-09T21:21:37.690 回答