当我尝试在 Ubuntu 10.04(64 位)上安装 ruby 1.9.2 时,执行以下步骤后出现以下错误:
- 安装依赖项
- ./configure 创建 make 文件
- 制作
- 进行安装
- 清洁
- 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 时都使用相同的选项即可。