Não é possível instalar um pacote Ruby: falha ao criar extensão nativa gem

3

Eu instalei o Ruby 2.1.0 e empacotei o pdfbeads no 32bit 12.04 no ano passado, depois do blog link e funcionou. Agora parece que eu instalei o Ruby 2.2.0 em 64 bits 14.04, mas encontrei o problema ao instalar o pdfbeads.

  1. Instalando rvm e ruby:

    Ouvi dizer que o ruby no repositório do Ubuntu não funciona (mas eu não sei se isso ainda se aplica), então eu segui link para instalar rvm e ruby. Eu não tenho certeza se fiz as coisas certas em o seguinte:

    gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
    
    curl -L get.rvm.io | bash -s stable
    

    Originalmente, eu primeiro executei curl -L get.rvm.io | bash -s stable primeiro mas ele me pediu para executar o comando gpg antes dele.

    Em seguida, adiciono uma linha a ~ / .bashrc:

    PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
    

    E algumas linhas para ~ / .bash_profile:

    [[ -s "$HOME/.profile" ]] && source "$HOME/.profile"
    [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
    

    Então eu corri:

    source ~/.rvm/scripts/rvm
    rvm requirements
    rvm autolibs disable
    
    
    $ rvm install 2.2.0
    Already installed ruby-2.2.0.
    To reinstall use:
    
        rvm reinstall ruby-2.2.0
    

    diz-me que já instalei o ruby, depois verifiquei a saída dos comandos anteriores, e descobriu que curl -L get.rvm.io | bash -s stable parece já estar instalado em ruby. Então eu corri:

    rvm --default use 2.2.0
    

    Eu instalei rvm e ruby corretamente? Ou há alguma maneira melhor de fazer isso?

  2. Agora, gostaria de instalar um pacote pdfbeads :

    $  gem install  pdfbeads
    Building native extensions.  This could take a while...
    ERROR:  Error installing pdfbeads:
        ERROR: Failed to build gem native extension.
    
        /home/t/.rvm/rubies/ruby-2.2.0/bin/ruby -r ./siteconf20150322-21902-q15297.rb extconf.rb
    checking for Ruby version >= 1.8.5... yes
    checking for gcc... yes
    checking for Magick-config... no
    checking for pkg-config... yes
    checking for ImageMagick version >= 6.4.9... yes
    Package MagickCore was not found in the pkg-config search path.
    Perhaps you should add the directory containing 'MagickCore.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'MagickCore' found
    Package MagickCore was not found in the pkg-config search path.
    Perhaps you should add the directory containing 'MagickCore.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'MagickCore' found
    Package MagickCore was not found in the pkg-config search path.
    Perhaps you should add the directory containing 'MagickCore.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'MagickCore' found
    Package MagickCore was not found in the pkg-config search path.
    Perhaps you should add the directory containing 'MagickCore.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'MagickCore' found
    checking for stdint.h... yes
    checking for sys/types.h... yes
    checking for wand/MagickWand.h... no
    
    Can't install RMagick 2.13.4. Can't find MagickWand.h.
    *** extconf.rb failed ***
    Could not create Makefile due to some reason, probably lack of necessary
    libraries and/or headers.  Check the mkmf.log file for more details.  You may
    need configuration options.
    
    Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/home/t/.rvm/rubies/ruby-2.2.0/bin/$(RUBY_BASE_NAME)
    
    extconf failed, exit code 1
    
    Gem files will remain installed in /home/t/.rvm/gems/ruby-2.2.0/gems/rmagick-2.13.4 for inspection.
    Results logged to /home/t/.rvm/gems/ruby-2.2.0/extensions/x86_64-linux/2.2.0/rmagick-2.13.4/gem_make.out
    t@ocean:/h/t/./archives$ man gem
    No manual entry for gem
    See 'man 7 undocumented' for help when manual pages are not available.
    

    Eu sigo este link link para sugerir correr

    rvm install 2.2.0-dev
    

    Depois parece que ainda tenho o mesmo erro:

    $  gem install  pdfbeads
    Building native extensions.  This could take a while...
    ERROR:  Error installing pdfbeads:
        ERROR: Failed to build gem native extension.
    
        /home/t/.rvm/rubies/ruby-2.2.0/bin/ruby -r ./siteconf20150322-24037-mauac1.rb extconf.rb
    checking for Ruby version >= 1.8.5... yes
    checking for gcc... yes
    checking for Magick-config... no
    checking for pkg-config... yes
    checking for ImageMagick version >= 6.4.9... yes
    Package MagickCore was not found in the pkg-config search path.
    Perhaps you should add the directory containing 'MagickCore.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'MagickCore' found
    Package MagickCore was not found in the pkg-config search path.
    Perhaps you should add the directory containing 'MagickCore.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'MagickCore' found
    Package MagickCore was not found in the pkg-config search path.
    Perhaps you should add the directory containing 'MagickCore.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'MagickCore' found
    Package MagickCore was not found in the pkg-config search path.
    Perhaps you should add the directory containing 'MagickCore.pc'
    to the PKG_CONFIG_PATH environment variable
    No package 'MagickCore' found
    checking for stdint.h... yes
    checking for sys/types.h... yes
    checking for wand/MagickWand.h... no
    
    Can't install RMagick 2.13.4. Can't find MagickWand.h.
    *** extconf.rb failed ***
    Could not create Makefile due to some reason, probably lack of necessary
    libraries and/or headers.  Check the mkmf.log file for more details.  You may
    need configuration options.
    
    Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/home/t/.rvm/rubies/ruby-2.2.0/bin/$(RUBY_BASE_NAME)
    
    extconf failed, exit code 1
    
    Gem files will remain installed in /home/t/.rvm/gems/ruby-2.2.0/gems/rmagick-2.13.4 for inspection.
    Results logged to /home/t/.rvm/gems/ruby-2.2.0/extensions/x86_64-linux/2.2.0/rmagick-2.13.4/gem_make.out
    

    Gostaria de saber como posso instalar o pacote pdfbeads ?

Obrigado!

    
por Tim 23.03.2015 / 00:35

3 respostas

6

Para verificar se sua versão do ruby está configurada corretamente, você pode usar o seguinte.

$ which ruby
  /path/to/ruby
$ ruby --version
  ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin13.0]

No seu caso, parece que o ruby está bem configurado. O RVM é apenas uma ferramenta para ajudar você a gerenciar seus rubis. Você saberá se não gostar disso.

Existem pistas de porque a instalação da gem falhou. Particularmente,

checking for Ruby version >= 1.8.5... yes
checking for gcc... yes
checking for Magick-config... no                   <------   There's your problem
checking for pkg-config... yes
checking for ImageMagick version >= 6.4.9... yes

Você está faltando uma biblioteca que é necessária para a gem construir com sucesso. Esta solução sugere que está disponível nos repositórios. Então, você deve poder instalá-lo com:

sudo apt-get install libmagickwand-dev

Uma vez feito isso, você poderá instalar a gema.

gem install  pdfbeads

Nota: Eu não testei esta solução, e o leitor mais prudente pode notar que eu nem estou mais usando o Ubuntu aqui. Deixe um comentário se isso não resolver você.

    
por Kasisnu 23.03.2015 / 09:37
2

Tente isso. Funcionou para mim:

sudo apt-get install ruby-dev
sudo gem install pdfbeads

Referência: link

    
por zarroc 28.10.2016 / 17:32
1

Eu também recentemente deparei com essa questão recentemente com o RVM.

Eu tentei instalar o Compass e ele falhou nos binários nativos com uma recente instalação limpa do Ubuntu.

A solução foi reinstalar a versão Ruby (2.3.0) usando um sinalizador adicional depois de --disable-binary, o que significa que você não instala os binários pré-compilados que vêm com o RVM. Isso significa que seus binários nativos são compilados em sua máquina. Isso levará algum tempo para ser concluído.

Então, se você está com esse problema, tente:

rvm reinstall --disable-binary 2.2.0

Certifique-se de atualizar a versão do ruby para a versão em que você está tendo o problema

    
por Andrew Duckworth 03.03.2016 / 11:19

Tags