[gkaykck@main myApplication]$ Rails console
/usr/local/lib/Ruby/1.9.1/irb/completion.rb:9:in `require': no such file to load -- readline (LoadError)
from /usr/local/lib/Ruby/1.9.1/irb/completion.rb:9:in `<top (required)>'
from /usr/local/lib/Ruby/gems/1.9.1/gems/railties-3.0.3/lib/Rails/commands/console.rb:3:in `require'
from /usr/local/lib/Ruby/gems/1.9.1/gems/railties-3.0.3/lib/Rails/commands/console.rb:3:in `<top (required)>'
from /usr/local/lib/Ruby/gems/1.9.1/gems/railties-3.0.3/lib/Rails/commands.rb:20:in `require'
from /usr/local/lib/Ruby/gems/1.9.1/gems/railties-3.0.3/lib/Rails/commands.rb:20:in `<top (required)>'
from script/Rails:6:in `require'
from script/Rails:6:in `<main>'
Rails 3 on Ruby 1.9.2p136、これは大丈夫だと思います。しかし、起動できませんRails consoleアプリはRuby 1.8.7で問題なく動作し、このようなエラーを見たことはありません。
それが何であるかについてのアイデアはありますか?
どうやらubuntuとRubyは常に依存関係をキャッチする必要はありません。
first google hit から(ええ、最初の結果をチェックアウトする前に、#2の場所でこのスタックオーバーフローをクリックしました。)
Rubyソースに移動し、次のように入力します。
Sudo apt-get install libreadline5-dev
cd ext/readline
Ruby extconf.rb
make
Sudo make install
したがって、別のディストリビューションを使用している場合は、何らかの方法でreadline(ソース/パッケージ)をインストールしてから、ソースからextconfでmake/installを実行してください。もちろん、gkaykckが提案したことを試しましたが、私のシステムにはまだreadlineがありませんでした。
$ Ruby extconf.rb
checking for tgetnum() in -lncurses... no
checking for tgetnum() in -ltermcap... no
checking for tgetnum() in -lcurses... no
checking for readline/readline.h... no
checking for editline/readline.h... no
RVMを使用する人のためのレシピ:
rvm pkg install readline
rvm remove 1.9.3
rvm install 1.9.3 --with-readline-dir=$rvm_path/usr
この問題の別の解決策が必要な場合は、これを実行してください。
Sudo apt-get install libreadline6
次に、gemファイルに以下を追加します。
gem 'rb-readline'
その後
bundle install
そして、あなたはすべて準備ができているはずです。
まず、すべてのRubyバージョンをアンインストールします。
その後、rvm要件を表示します。
rvm requirements
次のようなものが得られます:
Requirements for Linux ( DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=11.10
DISTRIB_CODENAME=oneiric
DISTRIB_DESCRIPTION="Ubuntu 11.10" )
NOTE: 'Ruby' represents Matz's Ruby Interpreter (MRI) (1.8.X, 1.9.X)
This is the *original* / standard Ruby Language Interpreter
'ree' represents Ruby Enterprise Edition
'rbx' represents Rubinius
bash >= 4.1 required curl is required git is required (>= 1.7 for
Ruby-head) patch is required (for 1.8 rubies and some Ruby-head's).
To install rbx and/or Ruby 1.9 head (MRI) (eg. 1.9.2-head), then you
must install and use rvm 1.8.7 first.
Additional Dependencies:
# For Ruby / Ruby HEAD (MRI, Rubinius, & REE), install the following:
Ruby: /usr/bin/apt-get install build-essential openssl libreadline6
libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev
libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev
ncurses-dev automake libtool bison Subversion
# For JRuby, install the following:
jruby: /usr/bin/apt-get install curl g++ openjdk-6-jre-headless
jruby-head: /usr/bin/apt-get install ant openjdk-6-jdk
# For IronRuby, install the following:
ironruby: /usr/bin/apt-get install curl mono-2.0-devel
Apt-getを使用してすべての依存関係をインストールします。
その後のインストールRuby 1.8.7。このバージョンは、Ruby 1.9.xを使用する場合に必要です。
これでRuby 1.9.3をインストールできます:
rvm pkg install readline
rvm remove 1.9.3
rvm install 1.9.3 --with-readline-dir=$rvm_path/usr
Apt-getを使用してインストールした場合は、rvm経由でreadlineパッケージをインストールする必要さえないことに注意してください。
rvm(Ruby Version Manager) を使用してRubyの異なるバージョンを管理し、バージョンを切り替えることをお勧めします。さまざまなバージョンをコンパイルするのはかなりうまくいきます。また、ディレクトリごとに.rvmrcファイルを作成して、どのバージョンのRubyをどのディレクトリで使用するかをrvmに指示することもできます(必要に応じて、プロジェクトごとのgemセットを使用してください!)
CentOS 6の場合:
Rubyインストールディレクトリから作業していることを思い出してください。私にとっては:
/opt/Ruby-1.9.3-p194/ext/readline
次の出力が表示される場合、readlineはインストールされていません。
$ Ruby extconf.rb
checking for tgetnum() in -lncurses... no
checking for tgetnum() in -ltermcap... no
checking for tgetnum() in -lcurses... no
checking for readline/readline.h... no
checking for editline/readline.h... no
RPMでインストールするには:
yum install readline-devel
次に、それをビルドします。
Ruby extconf.rb
make
Sudo make install
解決策は、コンパイルしたソースフォルダに移動することですRuby => ext => readlineより
Ruby extconf.rb
make
Sudo make install
Gemfileに追加する
gem 'rb-readline'
その後 bundle install
私のためにトリックをしました
RVMを使用している場合は、readlineを再作成できます。これで問題が解決しました。ここでの手順:
rvm removeを使用してすべてを削除するRubyインストールされています。それでも何かが表示される場合は、 "Ruby"を実行して、rvmを再インストールしてからRuby rvmを使用してインストールする必要があります。