簡體   English   中英

Ruby 1.9.2和Rails 3無法打開rails控制台

[英]Ruby 1.9.2 and Rails 3 cannot open rails console

[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>'

我在ruby 1.9.2p136上安裝了rails 3,我猜是好的。 但我無法啟動rails控制台,它給了我復制的錯誤。 應用程序與ruby 1.8.7配合得很好,我從來沒有看到過像這樣的錯誤。

任何想法可能是什么?

顯然,ubuntu和ruby並不總是像他們應該那樣捕獲依賴關系。

從第一次google點擊 (是的,我在點擊第一個結果之前點擊了這個堆棧溢出到位#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

有關它的詳細信息,請訪問https://rvm.io/packages/readline/

如果您想要解決此問題,請執行此操作。

sudo apt-get install libreadline6

然后在你的gem文件中添加:

gem 'rb-readline'

然后

bundle install

你應該全力以赴。

我建議使用rvm(Ruby Version Manager)來管理不同版本的Ruby並在它們之間切換。 它也可以很好地為您編譯各種版本。 您甚至可以創建每個目錄的.rvmrc文件來告訴rvm在哪個目錄中使用哪個版本的ruby(如果需要,還可以使用每個項目的gem集!)

首先卸載你擁有的每個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安裝了readline軟件包,則甚至不需要通過rvm安裝readline軟件包。

使用CentOS 6:

請記住,我們正在使用ruby install目錄,對我而言:

  /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

添加Gemfile

gem 'rb-readline'

然后bundle install

為我做了訣竅

解決方法是去你編譯的源文件夾ruby => ext => readline

ruby extconf.rb
make
sudo make install

如果您正在使用RVM,則可以重新制作readline。 這為我解決了這個問題。 說明:

沒有這樣的文件加載 - readline(加載錯誤)

使用rvm remove刪除所有安裝的ruby。 做一個“紅寶石”,如果你仍然得到一些東西,你需要重新安裝rvm然后使用rvm安裝ruby。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM