Ruby 1.9.2 和 Rails 3 无法打开 Rails 控制台
- 2024-11-13 08:36:00
- admin 原创
- 23
问题描述:
[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 上运行良好,我从未见过这样的错误。
有什么想法吗?
解决方案 1:
显然,ubuntu 和 ruby 并不总是能像它们应该的那样捕获依赖关系。
从第一个 google 搜索结果开始(是的,在查看第一个结果之前,我点击了第二个 stack-overflow。)
导航到 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
解决方案 2:
对于使用 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/
解决方案 3:
如果您想要通过其他方式解决该问题,请这样做。
sudo apt-get install libreadline6
然后在你的 gem 文件中添加:
gem 'rb-readline'
然后
bundle install
一切就绪了。
解决方案 4:
我建议使用rvm(Ruby 版本管理器)来管理不同版本的 Ruby 并在它们之间切换。它也能很好地为您编译各个版本。您甚至可以创建每个目录的 .rvmrc 文件来告诉 rvm 在哪个目录中使用哪个版本的 ruby(以及使用每个项目的 gem 集,如果您愿意的话!)
解决方案 5:
首先卸载您拥有的每个 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 包。
解决方案 6:
使用 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
解决方案 7:
添加 Gemfile
gem 'rb-readline'
进而bundle install
对我有用
解决方案 8:
解决方法是进入你编译的源文件夹ruby => ext => readline
ruby extconf.rb
make
sudo make install
解决方案 9:
如果您使用的是 RVM,则可以重新制作 readline。这为我解决了这个问题。说明如下:
没有要加载的文件 - readline(加载错误)
解决方案 10:
使用 rvm remove 删除所有已安装的 ruby。执行“which ruby”如果仍然得到某些东西,则需要重新安装 rvm,然后使用 rvm 安装 ruby。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件