3

我正在尝试在某个地方免费托管一个 Ruby on Rails 应用程序,而 Heroku 看起来像是我的最后一个资源。它应该可以在 Linux 上运行,并且 gem 安装时没有错误,但是每当我运行任何 Heroku 命令时,它都会吐出几个错误,所有错误都是连接的,并且谈论失败的“要求”。我在代码中查看了它,它说:

require 'readline'  

这就对了。

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

4

3 回答 3

4

可能是您系统安装的 Ruby 版本没有使用 readline 支持构建。如果是这样,那么您可以从源代码重新安装它并configure为 readline 支持选择正确的参数。这不仅令人讨厌,而且意味着您必须自己手动维护更新。

更好的是完全放弃您的系统 Ruby,转而使用安装了RVM的系统

  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

于 2010-07-19T17:17:29.617 回答
2

Ubuntu 的ruby​​-full 包依赖于 libreadline-ruby 并且应该包含你和它需要的所有东西。如果您尝试通过安装一堆单独的软件包来安装 ruby​​,您可能会遗漏一些东西。如果是这种情况,请返回并安装 ruby​​-full。

每当我安装最新的 Ubuntu 时,我都有一个用于重建 Rails 环境的脚本。它还安装了 Heroku(我托管我的应用程序的地方)所需的一切。您可能想看看它,看看是否有任何您遗漏的东西。

如果 ruby​​-full 不能解决你的问题,我会同意 Bjg 的建议,并放弃 RVM 的系统 ruby​​。

于 2010-07-19T21:46:47.490 回答
0

我让它工作了,但它是一个黑客。我从它的安装位置(在某个奇怪的地方)找到了 readline.so 文件,并做了一个硬链接到 ruby​​ 正在寻找 readline 的位置,并且它有效。不是最佳的,下次我一定会尝试你们推荐的。谢谢!

于 2010-07-20T15:06:13.233 回答