在Ubuntu Lucid Lynx上安装Heroku出现问题

3

我想在某个免费的地方托管一个Ruby on Rails应用程序,而Heroku看起来是我最后的选择。它应该在Linux上运行,而且gem安装时没有出现任何错误,但每当我运行任何Heroku命令时,它都会输出几个错误,所有这些错误都与失败的“require”有关。我在代码中查找了它,并且它说:

require 'readline'  

就是这样了。

我已经尝试安装了所有我能找到和想到的libreadline变体,但没有任何区别。有什么想法吗?


你能否添加启动Heroku或在应用程序上安装的代码?另外,您是否已安装GIT并在Rails应用程序中创建了Heroku应用程序? - Jimmy
我已经解决了,但是为了记录,我已经安装了git,并且已经安装了heroku gem,但是如果我只输入'heroku'或'heroku help'或'heroku'任何内容,它都会输出错误。 - QuixoticForsooth
3个回答

4
可能是因为您系统安装的Ruby版本没有构建支持readline。如果是这样,您可以从源代码重新安装它,并选择正确的configure参数以支持readline。这不仅很烦人,而且意味着您必须手动维护更新。
更好的做法是彻底放弃您的系统Ruby,转而使用使用RVM安装的Ruby。
  1. 此处所述安装RVM
  2. 安装libreadline-dev

    $ sudo apt-get install libreadline-dev

  3. 安装一个Ruby版本(例如1.8.7)

    $ rvm install 1.8.7

    $ rvm --default 1.8.7

  4. 在RVM Ruby下安装rails和Heroku gems

    $ gem install rails heroku taps ... # 注意不要使用sudo!

  5. 查看问题是否仍然存在

  6. 如果是,则执行以下操作:

    $ cd ~/.rvm/src/ruby-1.8.7-p299/ext/readline

    $ ruby extconf.rb

    $ make

    $ make install


2
Ubuntu的ruby-full包依赖于libreadline-ruby,应该拉取你和它都需要的一切。如果你尝试通过安装一堆单独的包来安装ruby,可能会有所遗漏。如果是这种情况,请返回并安装ruby-full。
我有一个脚本,每当我安装最新的Ubuntu时,我都会用它重建我的Rails环境。它还安装了Heroku所需的一切(这是我托管应用程序的地方)。您可能想看一下它,看看是否有任何您缺少的内容。
如果ruby-full不能解决问题,我会支持Bjg的建议,放弃系统ruby,改用RVM。

0
我已经让它工作了,但这只是一种折中的方法。我找到了readline.so文件的安装位置(在某个奇怪的地方),并在ruby正在寻找readline的位置上创建了一个硬链接,然后它就可以工作了。虽然不是最佳解决方案,但下次我肯定会尝试你们推荐的方法。谢谢!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接