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特有的。
总结:
有没有办法可以找出模块无法加载的原因?某种痕迹/详细模式?
答案 0 :(得分:5)
以下是我在Ubuntu 11.04上安装ruby,gem和rails所做的工作
从源代码安装ruby
从源代码安装RubyGems
答案 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