Readline 默认不编译 - 导致‘require’:没有这样的文件可以加载 -- readline

Readline 默认不编译 - 导致‘require’:没有这样的文件可以加载 -- readline

当我尝试在 Ubuntu 10.04(64 位)上安装 ruby​​ 1.9.2 时,执行以下步骤后出现以下错误:

  1. 安装依赖项
  2. ./configure 创建 make 文件
  3. 制作
  4. 进行安装
  5. 清洁
  6. ruby -ropenssl -rzlib -rreadline -e "puts :Hello" (如果一切顺利,这应该输出‘hello’)。,

我没有输出 hello,而是得到了这个:

需要:没有这样的文件可以加载--readline`

在网上搜索后,我找到了这个解决方案:Blockquote

如果您从源代码编译了 Ruby,则在执行脚本/控制台时可能会出现此错误:

/usr/local/lib/ruby/1.8/irb/completion.rb:10:in `require': 没有要加载的文件 -- readline (LoadError) 修复此问题的一种方法是编译 readline,它与 Ruby 源代码一起分发:

cd /opt/src/ruby-1.8.5-p2/ext/readline

ruby extconf.rb

制作

安装

这对我来说完全有效。我的问题是,为什么 ruby​​ 一开始不编译它?我忘记了某种配置选项吗?

答案1

Ruby 没有自动包含 readline 支持的原因很可能是因为你没有在系统上安装 libreadline 及其开发文件。当你运行。/配置它会对你的系统进行盘点,并利用这些数据来创建一个“最佳”Makefile

获取 libreadline 及其开发文件的最简单方法是安装包libreadline-dev

答案2

许多(事实上,大多数)库和编程语言默认不编译 readline(PHP 是另一个例子)。您需要在 configure 脚本中手动配置它或使用此方法。只需确保每次编译 Ruby 时都使用相同的选项即可。

相关内容