0

我决定摆脱 rvm,但我在用我的新版本 ruby​​ 1.9.2 编译 gem 时遇到了麻烦。gem 需要 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
4

3 回答 3

7

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

问题的根源在于,在 gem installer.rb 文件中,从 linecache19 传递的所需 ruby​​ 版本是 1.9.2,而 Gem.ruby_version 类似于 1.9.2.dev.30909,并且 ("1.9.2" >= “1.9.2.dev.30909”)是假的。

所以首先要确保 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/

就这样!

于 2011-10-16T00:17:08.217 回答
2

在 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

希望对某人有所帮助。

于 2011-11-06T13:15:55.947 回答
0

这在 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 ruby​​debug-19 和 openssl 的问题:

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

那么你可以做

gem install ruby-debug19
于 2011-11-27T00:22:47.300 回答