Я впервые использую rails3 (я использую rails2 в течение многих лет) внутри rvm.Пытаясь запустить консоль, я получаю эту ошибку:
require': no such file to load -- readline
Я погуглил, и это, кажется, распространенная проблема.Кажется, что большинство решений включают 1) установку следующего: sudo apt-get install libncurses5-dev libreadline5-dev
2) переход в папку gem для readline, запуск ruby extconf.rb
, который генерирует make-файл 3) выполнение make
и make install
Теперь,У меня не было readline установлен в моем rvm, поэтому я попытался установить его.Но не могу понять, что такое драгоценный камень: gem install readline
не дает никаких результатов.Единственный, кого я нашел, был gem install rdp-rb-readline
.Я установил две библиотеки dev, установил гем rdp-rb-readline, зашел в следующую папку гемов и запустил ruby extconf.rb
.Это действительно генерирует make-файл.Но я не могу make
это или make install
: я получаю эти ошибки:
max-laptop:readline$ make
cc -I. -I. -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: In function ‘readline_readline’:
readline.c:82: error: ‘rb_io_t’ undeclared (first use in this function)
readline.c:82: error: (Each undeclared identifier is reported only once
readline.c:82: error: for each function it appears in.)
readline.c:82: error: ‘ofp’ undeclared (first use in this function)
readline.c:82: error: ‘ifp’ undeclared (first use in this function)
make: *** [readline.o] Error 1
Вид застрял сейчас.Я пропускаю что-то еще фундаментальное, что мне нужно сделать необходимые библиотеки / драгоценный камень / что-то еще?
Благодарен за любой совет - макс.
РЕШЕНИЕ: Я на самом деле только что решил - я удалил rdp-rb-readline gem, затем сделал gem install rb-readline
, затем добавил gem 'rb-readline'
в Gemfile моего приложения.Я думаю, просто нужно было знать, где искать материал для чтения, если он не был в обычном месте.Мне не нужно было ничего делать с extconf.rb, что хорошо, потому что в геме rb-readline его нет.
Я оставил это в конце своего вопроса, потому что а) кто-то ещеможет лучше понять проблему, чем мой метод проб и ошибок, и б) в случае, если у кого-то есть такая же проблема.