安装没有rvm的Gems,以root用户,使用显式的ruby版本



我已经决定摆脱rvm,我在用新版本的ruby 1.9.2编译gem时遇到了麻烦。这个gem需要1.9.2,我已经有了,但是它说没有1.9.2就不能安装,所以错误信息没有意义。

我如何明确地告诉gem使用ruby版本进行编译?

Gem::InstallError: linecache19 requires Ruby version >= 1.9.2.
An error occured while installing linecache19 (0.5.12), and Bundler cannot continue.
Make sure that `gem install linecache19 -v '0.5.12'` succeeds before bundling.
 apps2 ~/projects/sms/apps2/apps2_admin $ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.8.0]
 apps2 ~/projects/sms/apps2/apps2_admin $ which ruby
/usr/local/bin/ruby

我有一个类似的问题,并追溯问题并解决如下:

问题的根源在于gem安装程序。从linecache19传入的ruby版本是1.9.2,而Gem.ruby_version是1.9.2.dev.30909,并且("1.9.2">= "1.9.2.dev.30909")为false。

所以首先要确定ruby的版本是1.9.2:

ruby -v

然后手动使用——force绕过版本检查:

gem install ruby_core_source
gem install linecache19 --force

如果遇到另一个以以下行开头的错误:

checking for vm_core.h... no
*** extconf.rb failed ***

必须明确地将源路径设置为vm_core.h

在我的例子中:

$ which ruby
/Users/Reza/.rvm/rubies/ruby-1.9.2-rc2/bin/ruby
$ echo $rvm_path
/Users/Reza/.rvm/

安装linecache19:

gem install ruby_core_source
gem install linecache19 --force -- --with-ruby-include=$rvm_path/src/ruby-1.9.2-rc2/

ruby-debug19有类似的问题:

gem install ruby-debug19 --force -- --with-ruby-include=$rvm_path/src/ruby-1.9.2-rc2/

就是这样!

在OS X Lion上使用rbenv时,我有同样的问题(linecache19永远/无限期挂起)。我发现解决方案是安装带有OpenSSL选项的Ruby,像这样:

rbenv install 1.9.2-p290 --with-openssl-dir=/usr/local
rbenv rehash
rbenv global 1.9.2-p290

现在,你可以运行或捆绑它,它会安装好:

gem install ruby-debug19

希望对大家有所帮助。

这是Ubuntu的工作原理:

我也有同样的问题,在我遇到这个之前尝试了很多选择:http://beginrescueend.com/packages/openssl/

$ rvm pkg install openssl
$ rvm remove 1.9.2
$ rvm install 1.9.2 --with-openssl-dir=$rvm_path/usr

这解决了linecache19 rubydebug-19和openssl:

*** extconf.rb failed ***
custom_require.rb:36:in `require': no such file to load -- openssl (LoadError)

那么你可以做

gem install ruby-debug19

相关内容

  • 没有找到相关文章

最新更新