【问题标题】:Heroku gem not working with RVMHeroku gem 不适用于 RVM
【发布时间】:2011-04-07 06:47:03
【问题描述】:

我正在关注http://railstutorial.org/chapters/beginning#sec:1.4.1 上的 Ruby on Rails 教程,在我尝试让我的应用程序在 Heroku 上运行之前一切顺利。

我安装了 heroku,效果很好,但是现在当我运行 heroku keys:add 或任何其他 heroku 命令时,我收到以下错误:

/home/sirswap/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/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/ruby-1.9.2-p0@rails3tutorial/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/ruby-1.9.2-p0@rails3tutorial/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/ruby-1.9.2-p0@rails3tutorial/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/ruby-1.9.2-p0@rails3tutorial/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/ruby-1.9.2-p0@rails3tutorial/gems/heroku-1.9.14/bin/heroku:6:in `<top (required)>'
        from /home/sirswap/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/bin/heroku:19:in `load'
        from /home/sirswap/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/bin/heroku:19:in `<main>'

我按照报错信息做了,安装了libopenssl-ruby,但是heroku还是不行。

我进行了搜索,发现以下两个页面试图解决 heroku 错误: http://www.mail-archive.com/heroku@googlegroups.com/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/ruby-1.9.2-p0@rails3tutorial
  - RUBY EXECUTABLE: /home/sirswap/.rvm/rubies/ruby-1.9.2-p0/bin/ruby
  - EXECUTABLE DIRECTORY: /home/sirswap/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /home/sirswap/.rvm/gems/ruby-1.9.2-p0@rails3tutorial
     - /home/sirswap/.rvm/gems/ruby-1.9.2-p0@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

我正在运行 ubuntu 10.04。

对于后续步骤的任何帮助或建议将不胜感激 :)

【问题讨论】:

  • 感谢 cmets 伙计们,我现在真的很忙于工作面试和旅行,所以必须稍后回复你的答案,看看什么对我有用 :)跨度>

标签: ruby heroku installation


【解决方案1】:

how to install RVM on Linux 上阅读我的指示。您需要安装 libssl-dev 否则 net/https 之类的东西将不起作用。不过没关系,只需安装它并重新编译您的 rubies。

【讨论】:

  • 谢谢,我刚遇到这个问题,安装 libssl-dev 并运行 extconf.rb 解决了它
  • -1 用于商业 about.com 垃圾邮件,而不是真实文档。
【解决方案2】:

在你的情况下,“重新编译你的红宝石”可能可以通过发出:

rvm install  

或者,您也可以通过手动重新编译 openssl 扩展来取得一些进展:

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

【讨论】:

    【解决方案3】:

    嘿 :) 不知道它是否仍然相关,或者这是否对你也有用.. 它对我有用。

    遇到了完全相同的问题..

    我也注意到了
    $ rails console

    我收到错误,表明我在使用 Readline 时遇到了问题。

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

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,我认为是由于运行时没有安装所有列出的 ruby​​ 依赖项造成的:

      $rvm requirements # it was earlier: rvm notes
      

      具体来说,我执行的是【一定要先安装aptitude】:

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

      毕竟,我重新编译了我的 ruby​​ 安装(使用 $rvm reinstall 1.9.2),heroku 就像一个魅力一样工作。

      【讨论】:

      • rvm notes 在 *nix 和 Mac OS 上非常重要,因为缺少依赖项通常会使 Ruby 的某些部分无法工作,只是它们直到很久以后才会显现出来。然后我们会遇到一个问题,并且不会将它与安装过程相关联。那是我们用头撞墙的时候。
      • 这对我也有用。遵循 Rails 教程和 Heroku 命令 puked,但是安装丢失的依赖项和重新编译 1.9.2 就像一个魅力。
      • 安装 Aptitude sudo apt-get install aptitude
      【解决方案5】:

      我也在 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
      

      【讨论】:

        【解决方案6】:

        我昨天为此花了不少时间。最终,有点偶然(实际上更像是绝望),我查看了文件 /usr/bin/heroku

        我注意到脚本的第一行说

         #!/usr/bin/env ruby1.9.1
        

        我把它改成了

        #!/usr/bin/env ruby
        

        它开始工作了。在重新安装 ruby​​ 大约 10 次之后,所有这些都用 openssl 搞砸了。 卷发

        【讨论】:

        • 我让它通过 rvm 工作,但不喜欢它的大环境变化(导致奇怪的 rvm 相关错误出现在其他 shell 调用代码中)。删除 rvm 破坏了一些东西,许多 ruby​​/ruby-full/libssl 尝试没有帮助。但这做到了!谢谢。
        • 很高兴它帮助了 Gojomo。我还联系了 heroku 团队,并一直在与他们一起努力理解这个问题:github.com/heroku/heroku/issues/174
        • 顺便说一句,我看到的“问题”是 heroku 脚本强制使用 ruby​​ 1.9.1。当我安装 openssh 等时,Ubuntu 将其应用于 1.9.2 - 所以 1.9.1 错误仍然存​​在。这是我(非红宝石专家)对问题的理解。
        【解决方案7】:

        请重新安装 ruby​​。我是同样的问题,并通过重新安装 ruby​​ 解决。

        rvm reinstall ruby 1.9.2
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-29
          • 2023-03-13
          • 2011-02-24
          • 2016-10-05
          • 1970-01-01
          相关资源
          最近更新 更多