我刚刚在新的ubuntu 10.04 LTS服务器和一个红宝石1.9.2-p180上安装了RVM。我在我的项目文件夹中创建了一个新的gemset,它有一个Gemfile。我意识到为了在gemfile中安装gem,我需要安装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
我用Google搜索了一下并尝试了这个:
rvm pkg install zlib
安装好但没有解决问题。我也试过安装rake gem,但尝试做同样的错误。
有点卡住...有什么建议吗?谢谢,最大
编辑 - 顺便说一句,我可以在rvm之外安装捆绑器gem,即使用系统ruby。
EDIT2 - 我通过删除ruby的版本,然后使用zlib再次安装它来解决这个问题:
rvm remove 1.9.2-p180
rvm install 1.9.2-p180 -C --with-zlib-dir=$rvm_path/usr
现在我可以安装捆绑包和我的所有宝石了。万岁。 除了,当我尝试打开我的rails env(使用rails s
,rails c
或rake db:create
)时,我收到了这个致命的错误:
/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会引起这样的问题,有什么想法吗?
答案 0 :(得分:3)
对它进行排序!
正在运行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
与其邻居文件libz.so.1.2.3.3
进行符号链接。
我尝试将其符号链接到/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
并且,这似乎有效......但我仍然不能确切地知道出了什么问题,所以欢迎更有见地的解决方案/解释:)