我想在某个地方免费托管一个Ruby on Rails应用程序,而Heroku看起来就像我的最后一个资源。它应该在Linux上工作,并且gem安装没有错误,但每当我运行任何Heroku命令时,它会吐出几个错误,全部连接,并且讨论失败的'require'。我在代码中查了一下,然后说:
require 'readline'
就是这样。
我已经尝试安装我能找到和想到的每个libreadline变体,但没有任何区别。这里有什么想法吗?
答案 0 :(得分:4)
可能是您的系统安装版本的Ruby不是使用readline支持构建的。如果是,那么您可以从源重新安装它,并为readline支持选择正确的configure
参数。这不仅令人讨厌,而且意味着您必须自己手动维护更新。
最好还是放弃你的系统Ruby,而选择安装了RVM
的系统。安装libreadline-dev
$ sudo apt-get install libreadline-dev
安装ruby版本(例如1.8.7)
$ rvm install 1.8.7
$ rvm --default 1.8.7
在RVM ruby下安装rails和Heroku gem
$ gem install rails heroku taps ...
#注意没有sudo!
查看问题是否仍然存在
如果是,请执行以下操作:
$ cd ~/.rvm/src/ruby-1.8.7-p299/ext/readline
$ ruby extconf.rb
$ make
$ make install
答案 1 :(得分:2)
Ubuntu的ruby-full package取决于libreadline-ruby,应该引入你和它所需要的一切。如果您尝试通过安装一堆独立的软件包来安装ruby,那么您可能会遗漏一些东西。如果是这种情况,请返回并安装ruby-full。
每当我安装最新的Ubuntu时,我都会使用script来重建我的Rails环境。它还安装了Heroku(我托管我的应用程序)所需的一切。你可能想看看它,看看你有什么遗失的。
如果ruby-full没有把你排除在外,我会提出Bjg的建议并抛弃RVM的系统ruby。
答案 2 :(得分:0)
我得到了它的工作,但这是一个黑客。我从安装它的地方(在一些奇怪的地方)搜索了readline.so文件,并且做了一个硬链接到ruby寻找readline的地方,并且它有效。不是最佳的,我一定会尝试下次你们推荐的。谢谢!