Я пытаюсь установить Gitorious на Debian Wheezy. gitorious использует бандлер для автоматической установки.
Когда я запускаю "bundle install" (не только при установке gitorious, например, redmine), я иногда получаю такие ошибки, как:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
~/.rvm/rubies/ruby-2.1.0/bin/ruby extconf.rb
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling houdini_js_e.c
compiling houdini_xml_e.c
compiling houdini_html_u.c
compiling houdini_html_e.c
compiling houdini_uri_u.c
compiling escape_utils.c
escape_utils.c: In function ‘rb_eu_escape_html_as_html_safe’:
escape_utils.c:126:2: error: assignment of read-only member ‘klass’
make: *** [escape_utils.o] Error 1
make failed, exit code 2
Gem files will remain installed in ~/.rvm/gems/ruby-2.1.0/gems/escape_utils-0.3.2 for inspection.
Results logged to ~/.rvm/gems/ruby-2.1.0/extensions/x86_64-linux/2.1.0/escape_utils-0.3.2/gem_make.out
An error occurred while installing escape_utils (0.3.2), and Bundler cannot continue.
Make sure that `gem install escape_utils -v '0.3.2'` succeeds before bundling.
В этом конкретном примере я смог исправить ошибку сборки, изменив источники в данном каталоге. (Я скопировал актуальный источник с github, что устраняет проблему. https://github.com/brianmario/escape_utils/issues/42 ).
Затем я казнил "make && make install && ~ / .rvm / rubies / ruby-2.1.0 / bin / ruby extconf.rb" успешно.
Как я могу продолжить "установку пакета" после исправления гема? Когда я повторно выполняю «установку пакета», гем просто перекомпилируется и перекомпилируется, конечно, с той же ошибкой, полностью отменяя мои изменения.
Что я пробовал до сих пор:
Как правильно продолжить «установку пакета» после таких ошибок?
Примечание. Чтобы получить более конкретный ответ, отправьте сообщение об ошибке. Вы только что упомянули
В этом конкретном примере я смог исправить ошибку сборки, изменив источники в данном каталоге.
Без указания, в чем заключалась ошибка и как вы ее временно исправили.
Проверьте журнал ошибок. Компиляция расширения gem может завершиться ошибкой из-за несовместимости.
Если гем уже установлен в вашей среде, то сборщик не будет пытаться переустановить его. Однако я видел, что вы используете RMV, поэтому проблема повторится, если вы измените версию gemset или Ruby.
Лучшее, что вы можете сделать, - это проверить ошибку. Если вы считаете, что ошибка является ошибкой, отправьте отчет и укажите шаги, которые вы выполнили для ее исправления.
Если ошибка зависит от вашей среды, вам необходимо исправить ее, иначе проблема будет повторяться, как я объяснил.