ruby-on-rails - Rails3 和 readline 问题

标签 ruby-on-rails ruby ruby-on-rails-3 rvm readline

我第一次在 rvm 中使用 rails3(多年来我一直在使用 rails2)。尝试启动控制台时,出现此错误:

require': 没有要加载的文件 -- readline

我用谷歌搜索了一下,这似乎是一个常见问题。大多数解决方案似乎涉及 1) 安装以下内容:sudo apt-get install libncurses5-dev libreadline5-dev 2) 转到 readline 的 gem 文件夹,运行生成 makefile 的 ruby extconf.rb 3) 执行makemake install

现在,我的 rvm 中没有安装 readline,所以我尝试安装它。但无法弄清楚 gem 是什么:gem install readline 没有给出任何结果。我找到的唯一一个是 gem install rdp-rb-readline。我安装了两个开发库,安装了 rdp-rb-readline gem,转到后续的 gem 文件夹,然后运行 ​​ruby extconf.rb。这确实生成了一个 makefile。但我不能制作它或制作安装:我得到这些错误:

max-laptop:readline$ 使 抄送-我。 -我。 -I/usr/lib/ruby/1.8/i486-linux -I. -DHAVE_READLINE_READLINE_H -DHAVE_READLINE_HISTORY_H -DHAVE_RL_FILENAME_COMPLETION_FUNCTION -DHAVE_RL_USERNAME_COMPLETION_FUNCTION -DHAVE_RL_COMPLETION_MATCHES -DHAVE_RL_DEPREP_TERM_FUNCTION -DHAVE_RL_COMPLETION_APPEND_CHARACTER -DHAVE_RL_BASIC_WORD_BREAK_CHARACTERS -DHAVE_RL_COMPLETER_WORD_BREAK_CHARACTERS -DHAVE_RL_BASIC_QUOTE_CHARACTERS -DHAVE_RL_COMPLETER_QUOTE_CHARACTERS -DHAVE_RL_FILENAME_QUOTE_CHARACTERS -DHAVE_RL_ATTEMPTED_COMPLETION_OVER -DHAVE_RL_LIBRARY_VERSION -DHAVE_RL_EVENT_HOOK -DHAVE_RL_CLEANUP_AFTER_SIGNAL -DHAVE_RL_CLEAR_SIGNALS -DHAVE_RL_VI_EDITING_MODE -DHAVE_RL_EMACS_EDITING_MODE -DHAVE_REPLACE_HISTORY_ENTRY -DHAVE_REMOVE_HISTORY -fPIC -fno-strict-aliasing -g -g -O2 -fPIC -c readline.c readline.c:在函数“readline_readline”中: readline.c:82: error: ‘rb_io_t’ undeclared (首次在此函数中使用) readline.c:82: error: (每个未声明的标识符只报告一次 readline.c:82: 错误:对于它出现的每个函数。) readline.c:82: error: ‘ofp’ undeclared (首次在此函数中使用) readline.c:82: 错误:‘ifp’未声明(首次在此函数中使用) make: *** [readline.o] 错误 1

现在有点卡住了。我是否缺少制作所需的库/gem/其他东西所需的其他基础知识?

感谢任何建议 - max

解决方案: 我实际上刚刚解决了这个问题 - 我卸载了 rdp-rb-readline gem,然后 gem install rb-readline,然后将 gem 'rb-readline' 添加到我应用程序的 Gemfile .我想它只需要知道如果它不在通常的地方,去哪里寻找 readline 的东西。我不需要对 extconf.rb 做任何事情,这很好,因为 rb-readline gem 没有。

我将其留在问题的末尾,因为 a) 其他人可能比我的试错法更了解问题,并且 b) 以防其他人遇到同样的问题。

最佳答案

如果您使用的是 rvm,您可以随时使用包安装工具来修复您的操作系统可能存在的任何问题。 Ruby 经常使用与您安装的库略有不同的库:

rvm package install readline

rvm 安装程序针对特定的已知工作版本的 readline 应用了多个补丁,应该可以正常构建。此 readline 包不会影响您的系统安装,并且仅用于基于 rvm 的构建。

关于ruby-on-rails - Rails3 和 readline 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5487507/

相关文章:

ruby-on-rails - Rails 表单预览页面

ruby - 网络聊天程序!! (需要一点帮助)

ruby - ruby 方法有什么区别

ruby - 发现 Ruby 语法错误 : NameError: undefined local variable or method ` '

ruby - Rails 3 - 测试 Controller 的 GET 方法 - 尝试使用 JSON 并出现 406 错误

mysql - 两个模型的序列号相同,Rails 应用程序

ruby-on-rails - Rails 时区问题

ruby-on-rails - Javan 每当 Gem 将输出作为本地邮件发送给我时

mysql - 如何在 Ruby on Rails 3 中对 MySQL 表的列定义 "unique"约束?

ruby-on-rails - 从 Rails 2.3.x 移植到 3.x?