Continue a instalação do empacotador

1

Estou tentando instalar o Gitorious no Debian Wheezy. usa utilizador bundler para instalação automatizada.

Quando executo o "bundle install" (não apenas quando estou instalando o gitorious, também o redmine, por exemplo) às vezes recebo erros como:

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.

Neste exemplo específico, consegui corrigir o erro de compilação alterando as origens no diretório fornecido. (Eu copiei a fonte atualizada do github, que corrige o problema link ).

Em seguida, executei "make & make install & ~ / .rvm / rubies / ruby-2.1.0 / bin / ruby extconf.rb" com êxito.

Como posso continuar minha "instalação do pacote" depois de corrigir a joia? Quando eu re-executar "bundle install" a gem é simplesmente refetched e recompilada, com o mesmo erro, é claro, descartando minhas alterações completamente.

O que eu tentei até agora:

  • Gerando cache com "pacote configurável" e execute "bundle install --local"
  • Copie a gema compilada para o diretório gitorioso.
  • Execução de "gem install" nas fontes fixas.

Qual é a maneira correta de continuar com uma "instalação por pacote" após esses erros?

    
por Dreamcooled 18.01.2014 / 12:49

1 resposta

0

Nota: para uma resposta mais específica, você deve postar a mensagem de erro. Você acabou de mencionar

In this specific example I was able to fix the build error by changing the sources in the given directory.

Sem especificar qual foi o erro e como você o corrigiu temporariamente.

Verifique o log de erros. A compilação da extensão gem pode falhar devido a algumas incompatibilidades.

Se a gem já estiver instalada em seu ambiente, o bundler não tentará reinstalá-la. No entanto, eu vi você usar o RMV, portanto, o problema acontecerá novamente se você alterar a versão do gemset ou do Ruby.

O melhor que você pode fazer é inspecionar o erro. Se você acha que o erro é um bug, envie um relatório para o arquivo e forneça as etapas seguidas para corrigi-lo.

Se o erro depender do seu ambiente, você precisará corrigi-lo ou o problema será representado novamente conforme explicado.

    
por 18.01.2014 / 13:29