3

Ruby on Railsアプリをどこかで無料でホストしようとしていますが、Herokuは私の最後のリソースのように見えます。Linuxで動作するはずであり、gemはエラーなしでインストールされますが、Herokuコマンドを実行すると、いくつかのエラーが発生し、すべてが接続され、失敗した「require」について話します。私はそれをコードで調べました、そしてそれは言います:

require 'readline'  

それだ。

私は見つけて考えることができるlibreadlineのすべてのバリエーションをインストールしようとしましたが、どれも違いはありません。ここに何かアイデアはありますか?

4

3 に答える 3

4

システムにインストールされている Ruby のバージョンが、readline をサポートするようにビルドされていない可能性があります。その場合は、ソースから再インストールして、configurereadline サポート用の正しいパラメーターを選択できます。これは煩わしいだけでなく、自分で手動で更新を維持する必要があることを意味します。

システム 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. Rails と Heroku gem を RVM ruby​​ の下にインストールします

    $ 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 に答える