web-dev-qa-db-fra.com

Impossible d'installer un package Ruby: échec de la création de l'extension native gem

J'ai installé Ruby 2.1.0 et le package pdfbeads sur 32bit 12.04 l'année dernière après le blog https://railssavvy.wordpress.com/2012/06/02/install_Ruby_and_Rails/ , et ça a marché. Maintenant, il semble que j'ai installé Ruby 2.2.0 sur 64bit 14.04, mais que le problème soit rencontré lors de l'installation de pdfbeads.

  1. Installation de Rvm et Ruby:

    J'ai entendu le Ruby dans le référentiel Ubuntu ne fonctionnant pas (mais je ne sais pas si cela s'applique toujours), j'ai donc suivi https://railssavvy.wordpress.com/2012/06/). 02/install_Ruby_and_Rails / pour installer rvm et Ruby. Je ne suis pas sûr d'avoir bien fait les choses suivantes:

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

    A l'origine, j'avais d'abord exécuté curl -L get.rvm.io | bash -s stable, mais il m'a demandé d'exécuter la commande gpgavant celle-ci.

    Ensuite, j'ajoute une ligne à ~/.bashrc:

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

    Et quelques lignes vers ~/.bash_profile:

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

    Puis j'ai couru:

    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
    

    il me dit que j'ai déjà installé Ruby, puis j'ai vérifié le résultat des commandes précédentes et constaté que curl -L get.rvm.io | bash -s stable semble déjà avoir été installé, Ruby. Puis j'ai couru:

    rvm --default use 2.2.0
    

    Est-ce que j'ai installé correctement rvm et Ruby? Ou y a-t-il une meilleure façon de le faire?

  2. Maintenant, je voudrais installer un paquet pdfbeadsname __ :

    $  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.
    

    Je suis ce lien https://askubuntu.com/a/528798/1471 suggestion de lancer

    rvm install 2.2.0-dev
    

    Après, il me semble que j'ai toujours la même erreur:

    $  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
    

    Je me demande comment je peux installer le package pdfbeadsname__?

Merci!

3
Tim

Pour vérifier si votre version de Ruby est correctement configurée, vous pouvez utiliser ce qui suit.

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

Dans votre cas, il semble que Ruby est bien configuré. Rvm est juste un outil pour vous aider à gérer vos rubis. Vous saurez si vous ne l'aimez pas.

Il existe des indices sur la raison pour laquelle l'installation de la gemme a échoué. Particulièrement,

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

Il vous manque une bibliothèque nécessaire à la création de la gemme. Cette solution suggère sa disponibilité dans le dépôt. Donc, vous devriez pouvoir l'installer avec:

Sudo apt-get install libmagickwand-dev

Une fois que cela est fait, vous devriez pouvoir installer la gemme.

gem install  pdfbeads

Remarque: je n'ai pas testé cette solution et le lecteur plus prudent pourrait remarquer que je n'utilise même plus Ubuntu ici. Laissez un commentaire si cela ne vous règle pas.

6
Kasisnu

Essaye ça. Cela a fonctionné pour moi:

Sudo apt-get install Ruby-dev
Sudo gem install pdfbeads

Référence: https://stackoverflow.com/a/26161563/243302

2
zarroc

J'ai aussi récemment rencontré ce problème récemment avec RVM.

J'ai essayé d'installer Compass et cela a échoué sur les fichiers binaires natifs avec une installation récente d'Ubuntu.

La solution consistait à réinstaller la version Ruby (2.3.0) à l'aide de l'indicateur supplémentaire suivant --disable-binary, ce qui signifie que vous n'installez pas les fichiers binaires précompilés fournis avec RVM. Cela signifie que vos fichiers binaires natifs sont compilés sur votre ordinateur. Cela prendra du temps à compléter.

Donc, si vous rencontrez ce problème, essayez:

rvm reinstall --disable-binary 2.2.0

Assurez-vous de mettre à jour la version Ruby vers la version avec laquelle vous rencontrez le problème.

1
Andrew Duckworth

Quand je lance Sudo apt install build-essential, alors cela fonctionne à nouveau.

Ubuntu 18.04, Ruby 2.5.1p57.

0
vuhung3990

Pour WSL (Windows Subsystem for Linux), vous devez installer le package build-essential:

Sudo apt install build-essential
0
Dmitry S.