我刚刚在一台新的 ubuntu 10.04 LTS 服务器和一个 ruby,1.9.2-p180 上安装了 RVM。我在我的项目文件夹中创建了一个新的 gemset,它有一个 Gemfile。我意识到为了在 gemfile 中安装 gems,我需要安装 bundler,所以我做了
gem install bundler
但是,我得到这个错误:
ERROR: Loading command: install (LoadError)
no such file to load -- zlib
ERROR: While executing gem ... (NameError)
uninitialized constant Gem::Commands::InstallCommand
我用谷歌搜索了一下并尝试了这个:
rvm pkg install zlib
安装正常,但没有解决问题。我也尝试安装 rake gem,但尝试这样做时遇到了同样的错误。
有点卡住了……有什么建议吗?谢谢,最大
编辑 - 顺便说一句,我可以在 rvm 之外安装 bundler gem,即使用系统 ruby。
EDIT2 - 我通过删除 ruby 版本解决了这个问题,然后使用 zlib 再次安装它:
rvm remove 1.9.2-p180
rvm install 1.9.2-p180 -C --with-zlib-dir=$rvm_path/usr
现在我可以安装 bundler 和我所有的 gems 了。万岁。 除了,当我尝试打开我的 Rails 环境(使用 rails s
、rails c
或 rake db:create
)我得到这个 fatal error :
/home/max/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/
1.9.1/rubygems/custom_require.rb:36:in `require':
/lib/libz.so.1: version `ZLIB_1.2.3.3' not found (required by
/home/max/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/i686-linux/zlib.so) -
/home/max/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/i686-linux/zlib.so (LoadError)
所以,仍然没有摆脱 zlib-wise 的困境。我不知道为什么 zlib 会导致这样的问题,有什么想法吗?
最佳答案
已排序!
运行 locate libz
给我
/home/max/.rvm/src/zlib-1.2.5/libz.a
/home/max/.rvm/src/zlib-1.2.5/libz.so
/home/max/.rvm/src/zlib-1.2.5/libz.so.1
/home/max/.rvm/src/zlib-1.2.5/libz.so.1.2.5
/home/max/.rvm/usr/lib/libz.a
/home/max/.rvm/usr/lib/libz.so
/home/max/.rvm/usr/lib/libz.so.1
/home/max/.rvm/usr/lib/libz.so.1.2.5
/lib/libz.so.1
/lib/libz.so.1.2.3.3
我刚刚注意到 lib 中的 libz 版本是 1.2.3.3,而我用 rvm 安装的版本是 1.2.5。这可能是问题所在吗?在/lib 文件夹中,zlib.so.1
符号链接(symbolic link)到它的邻居文件 libz.so.1.2.3.3
。
我尝试将其符号链接(symbolic link)到 /home/max/.rvm/usr/lib/libz.so.1.2.5
:
sudo rm /lib/libz.so.1
sudo ln -s /home/max/.rvm/src/zlib-1.2.5/libz.so.1 /lib/libz.so.1
而且,这似乎奏效了……不过,我仍然不太明白究竟出了什么问题,所以欢迎有更深入的解决方案/解释:)
关于ruby - Zlib 在新的 ubuntu server/rvm/gemset 中不断引起问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8235378/