2010-09-02 40 views
15

我正在关注Ruby on Rails教程http://railstutorial.org/chapters/beginning#sec:1.4.1,并且一切都很顺利,直到我试图让我的应用继续使用Heroku。Heroku gem不能与RVM兼容

我安装的Heroku,这工作得很好,但现在当我运行heroku keys:add或任何其他Heroku的命令,我收到以下错误:

/home/sirswap/.rvm/gems/[email protected]/gems/rest-client-1.4.2/lib/restclient.rb:9:in `rescue in <top (required)>': 
no such file to load -- net/https. Try running apt-get install libopenssl-ruby (LoadError) 
     from /home/sirswap/.rvm/gems/[email protected]/gems/rest-client-1.4.2/lib/restclient.rb:5:in `<top (required)>' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from /home/sirswap/.rvm/gems/[email protected]/gems/rest-client-1.4.2/lib/rest_client.rb:2:in `<top (required)>' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from /home/sirswap/.rvm/gems/[email protected]/gems/heroku-1.9.14/lib/heroku/client.rb:2:in `<top (required)>' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from /home/sirswap/.rvm/gems/[email protected]/gems/heroku-1.9.14/lib/heroku.rb:3:in `<top (required)>' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from <internal:lib/rubygems/custom_require>:29:in `require' 
     from /home/sirswap/.rvm/gems/[email protected]/gems/heroku-1.9.14/bin/heroku:6:in `<top (required)>' 
     from /home/sirswap/.rvm/gems/[email protected]/bin/heroku:19:in `load' 
     from /home/sirswap/.rvm/gems/[email protected]/bin/heroku:19:in `<main>' 

我做了错误信息说什么,并安装libopenssl,红宝石,但是heroku仍然没有工作。

我已经做了搜索,发现以下两个页面,其试图打击Heroku的错误: http://www.mail-archive.com/[email protected]/msg05001.html http://blog.project-sierra.de/archives/1534

我跟着这些网页上的说明(这是相同的),但仍的Heroku没有按没有工作。

我通常在windows上做我的工作,所以在Ubuntu上我对所有东西都有点新鲜感。这里是我的ruby环境:

RubyGems Environment: 
    - RUBYGEMS VERSION: 1.3.7 
    - RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [i686-linux] 
    - INSTALLATION DIRECTORY: /home/sirswap/.rvm/gems/[email protected] 
    - RUBY EXECUTABLE: /home/sirswap/.rvm/rubies/ruby-1.9.2-p0/bin/ruby 
    - EXECUTABLE DIRECTORY: /home/sirswap/.rvm/gems/[email protected]/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86-linux 
    - GEM PATHS: 
    - /home/sirswap/.rvm/gems/[email protected] 
    - /home/sirswap/.rvm/gems/[email protected] 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://rubygems.org/ 

我在运行ubuntu 10.04。

任何帮助或建议,为下一步将不胜感激:)

+0

感谢您的意见家伙,我其实是在与面试和旅行的那一刻真的很忙,所以不得不晚了一点回应你的答案,看看我:) – 2010-09-09 11:17:24

回答

20

我经历了同样的问题,我认为它是由未安装所有列出的红宝石的依赖造成的,当你运行:

$rvm requirements # it was earlier: rvm notes 

具体来说,我执行[请务必先安装资质]:

$sudo aptitude install build-essential bison openssl libreadline5 libreadline5-dev curl git zlib1g zlib1g-dev libssl-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev 

毕竟,我重新编译我的红宝石安装(使用$rvm reinstall 1.9.2)和heroku像魅力工作。

+6

+1用于检查rvm笔记 – samvermette 2011-02-16 03:16:18

+1

'rvm notes'在* nix和Mac OS上非常重要,因为通常缺少依赖关系,这些依赖关系会阻止部分Ruby运行,直到很久以后它们才会显现。然后我们会遇到问题,并且不会将其与安装过程相关联。那时我们的头撞墙了一会儿。 – 2011-02-21 08:38:36

+0

这也适用于我。继Rails教程和Heroku命令呕吐之后,安装错过的依赖和重新编译1.9.2就像一个魅力。 – 2011-09-03 02:55:47

2

阅读how to install RVM on Linux我的方向。你需要安装libssl-dev,否则像net/https这样的东西将无法工作。没问题,只需安装并重新编译你的红宝石。

+0

感谢什么工作,我只是有这个问题,并安装libssl-dev和运行extconf.rb修复它商业about.com垃圾邮件,而不是真正的文档 – Lobe 2010-10-29 10:29:41

+1

-1。 – wuputah 2011-04-25 16:42:59

1

在你的情况“重新编译红宝石”也许可以通过发出来完成:

rvm install 

或者你也可以通过手动重新编译OpenSSL的延伸取得一些进展:

cd /home/sirswap/.rvm/src/ruby-1.9.2-p0/ext/openssl 
ruby extconf.rb 
make 
make install 
4

嘿:) 不知道它是否仍然相关,或者这是否也适合你。它为我做了。


$ rails console

当我得到这表明我有问题的ReadLine错误有完全相同的问题..

我也注意到了。

正在关注http://rvm.beginrescueend.com/packages/readline/帮助我解决了所遇到的所有问题。

3

我也在Ubuntu 10.10上执行Railstutorial,并在尝试添加Heroku密钥时得到了完全相同的错误。这解决了它:

$ rvm remove 1.9.2 
$ rvm pkg install openssl 
$ rvm install 1.9.2 -C --with-openssl-dir=$HOME/.rvm/usr 
+0

$ rvm pkg install openssl – grigy 2012-01-28 11:50:42

4

我昨天吹了很多小时。最后,有些偶然(其实更像是纯粹的绝望),我看着在文件中的/ usr/bin中/ Heroku的

我注意到了剧本的第一行说

#!/usr/bin/env ruby1.9.1 

我改变了这

#!/usr/bin/env ruby 

它开始工作。重新安装红宝石大约10次之后,以及openssl的所有内容。 rolleyes

+0

我已经通过rvm工作,但不喜欢其大的环境变化(导致奇怪的rvm相关错误出现在其他shell调用代码)。删除rvm破坏了事情,并且大量的ruby/ruby​​-full/libssl尝试都没有帮助。但是,这样做!谢谢。 – gojomo 2012-02-19 06:11:30

+0

很高兴帮助Gojomo。我还联系了heroku团队,并一直与他们一起尝试并理解这个问题:https://github.com/heroku/heroku/issues/174 – 2012-02-19 16:17:36

+1

顺便说一下,我所看到的'问题'是heroku脚本部队使用红宝石1.9.1。当我安装openssh等时,Ubuntu将它应用于1.9.2 - 因此1.9.1错误依然存在。这是我的(非红宝石专家)对这个问题的理解。 – 2012-02-19 16:19:10

0

请重新安装红宝石。我是同样的问题,并通过重新安装红宝石来修复。

rvm reinstall ruby 1.9.2 
相关问题