2010-12-08 98 views
38

我收到以下错误:没有这样的文件来加载 - readline的

$script/console 
Loading development environment (Rails 2.2.2) 
/opt/ruby-enterprise-1.8.6-20080709/lib/ruby/1.8/irb/completion.rb:10:in `require': no such file to load -- readline (LoadError) 

我在哪里可以得到的文件,它应该在去哪个目录?

谢谢!

回答

46

readline模块通常是Ruby包本身的一部分。

您是否手动构建Ruby安装?如果是这样,你需要确保libreadline及其头文件已经安装,然后重新编译。

在Debian/Ubuntu的:

apt-get install libreadline-dev 

或者对RHEL/CentOS的,尽量

yum install readline-devel 

更新:

您正在使用的Ubuntu的一个非常古老的版本。如果要继续使用它,请在文本编辑器中打开/etc/apt/sources.list,并将所有出现的archive.ubuntu.com更改为old-releases.ubuntu.com。然后,运行apt-get update并再次尝试上述操作。

虽然我强烈建议您考虑更新安装。 Ubuntu 7.10在一段时间内还没有看到安全更新,因此不推荐在生产环境中使用它。即使它不是生产机器,由于某些库/依赖关系的旧版本,您很可能会遇到更多问题。

+0

关于“apt-get install libreadline-dev”出现以下错误:Err http://archive.ubuntu.com gutsy/main libncurses5-dev 5.6 + 20070716-1ubuntu3 404 Not Found [IP:91.189.88.45 80 ] 无法抓取http://archive.ubuntu.com/ubuntu/pool/main/n/ncurses/libncurses5-dev_5.6+20070716-1ubuntu3_amd64.deb 404找不到[IP:91.189.88.45 80] – Jay 2010-12-08 08:55:46

+0

好吧,我更新了答案。 – 2010-12-08 10:04:36

+0

@Shteef我使用的CentOS版本5.6,并有示例问题。所以我已经尝试yum安装readline-devel作为root.but仍然我得到同样的问题。你有任何想法的朋友吗?和Ruby路径是/ usr/local/bin/ruby​​ – 2011-10-28 11:09:18

31

您需要安装ncurses和readline库。

在Ubunutu你可以做

sudo apt-get install libreadline5-dev libncurses5-dev 

,然后你将不得不重新编译附带的红宝石源

cd <ruby-src-dir>/ext/readline 
ruby extconf.rb 
make 
sudo make install 

如果您正在使用RVM,你可以简单地做的readline

rvm package install readline 

编辑:

在较新版本的RVM,这最后的命令是

rvm pkg install readline 
2

运行命令

rvm requirements 

它显示了这些要求和依赖性。安装并重新安装红宝石上rvm

rvm remove 1.9.2 
rvm install 1.9.2 

它的工作原理!

编辑

如果你不能找到requirements选项更新您的RVM。

rvm update --head # older rvm 

或使用rvm upgrade

6

从这个问题得到缓解这种最简单的方式, 只需添加到您的Gemfile:

gem 'rb-readline' 

然后运行bundle install

0

gem 'rb-readline' 

学分类似的问题/答案也许这是废话答案,但今天从9.5升级的Postgres后,我就遇到了这个问题.3到9.6,以及自制软件升级readline从6.something到7.我最终回滚我的postgres到9.5.3,并解决了这个问题。

相关问题