Продолжить установку Bundler
Я пытаюсь установить Gitorious на Debian Wheezy. Gitorious использует упаковщик для автоматической установки.
Когда я запускаю "комплектную установку" (не только при установке 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".
Как я могу продолжить "установку комплекта" после исправления ошибки? Когда я повторяю "установку пакета", гем просто перезагружается и перекомпилируется, с той же ошибкой, конечно, полностью отбрасывая мои изменения.
Что я пробовал до сих пор:
- Создайте кеш с помощью "bundle package" и выполните "bundle install --local"
- Скопируйте скомпилированный камень в каталог gitorious.
- Выполнение "gem install" на фиксированных источниках.
Как правильно продолжить "установку пакета" после таких ошибок?
1 ответ
Примечание: для более конкретного ответа вы должны опубликовать сообщение об ошибке. Вы только что упомянули
В этом конкретном примере я смог исправить ошибку сборки, изменив исходные коды в данном каталоге.
Не уточняя, в чем была ошибка и как вы ее временно исправили.
Проверьте журнал ошибок. Компиляция расширения gem может потерпеть неудачу из-за некоторых несовместимостей.
Если гем уже установлен в вашей среде, то упаковщик не будет пытаться переустановить его. Однако я видел, что вы используете RMV, поэтому проблема повторится, если вы измените версию gemset или Ruby.
Лучшее, что вы можете сделать, это проверить ошибку. Если вы считаете, что ошибка является ошибкой, подайте отчет и укажите действия, которые вы предприняли, чтобы исправить ее.
Если ошибка зависит от вашей среды, то вам нужно исправить ее, или проблема снова появится, как я объяснил.