Не удается установить пакет Ruby: не удалось собрать собственное расширение gem

Я установил ruby ​​2.1.0 и пакет pdfbeads на 32bit 12.04 в прошлом году после блога https://railssavvy.wordpress.com/2012/06/02/install_ruby_and_rails/, и это сработало. Теперь кажется, что я установил ruby ​​2.2.0 на 64bit 14.04, но столкнулся с проблемой при установке pdfbeads.

  1. Установка rvm и ruby:

    Я слышал, что ruby ​​в репозитории Ubuntu не работает (но я не знаю, применимо ли это по-прежнему), поэтому я следовал https://railssavvy.wordpress.com/2012/06/02/install_ruby_and_rails/ для установки rvm и ruby. Я не уверен, правильно ли я поступил в следующем:

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

    Я изначально первый раз побежал curl -L get.rvm.io | bash -s stable во-первых, но он попросил меня запустить gpg Команда перед этим.

    Затем я добавляю строку в ~ /.bashrc:

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

    И пару строк в ~ /.bash_profile:

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

    Затем я побежал:

    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
    

    он говорит мне, что я уже установил ruby, затем я проверил вывод предыдущих команд и обнаружил, что curl -L get.rvm.io | bash -s stable кажется уже установлен ruby. Затем я побежал:

    rvm --default use 2.2.0
    

    Правильно ли я установил rvm и ruby? Или есть какой-то лучший способ сделать это?

  2. Теперь я хотел бы установить пакет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.
    

    Я перехожу по этой ссылке /questions/694368/mozhno-ustanovit-rails-na-ubuntu-1404-s-ruby-213/694380#694380 предложение запустить

    rvm install 2.2.0-dev
    

    После того, как кажется, что у меня все еще та же ошибка:

    $  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
    

    Интересно, как я могу установить pdfbeads пакет?

Спасибо!

5 ответов

Решение

Чтобы проверить, правильно ли установлена ​​ваша версия ruby, вы можете использовать следующее.

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

В вашем случае это выглядит так ruby настроен нормально. Rvm - это всего лишь инструмент, который поможет вам управлять рубинами. Вы узнаете, если вам это не нравится.

Есть подсказки, почему установка драгоценного камня не удалась. В частности,

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

Вам не хватает библиотеки, необходимой для успешного построения гема. Это решение предполагает, что оно доступно в репозиториях. Итак, вы должны быть в состоянии установить его с:

sudo apt-get install libmagickwand-dev

Как только это будет сделано, вы сможете установить драгоценный камень.

gem install  pdfbeads

Примечание: я не тестировал это решение, и более благоразумный читатель может заметить, что я здесь больше не пользуюсь ubuntu. Оставьте комментарий, если это не поможет вам разобраться.

Попробуй это. Это сработало для меня:

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

Ссылка: https://stackoverflow.com/a/26161563/2433023

Я также недавно сталкивался с этой проблемой недавно с RVM.

Я попытался установить Compass, и он потерпел неудачу на родных двоичных файлах с недавней чистой установкой Ubuntu.

Решением было переустановить версию Ruby (2.3.0) с использованием дополнительного флага после --disable-binary, что означает, что вы не устанавливаете предварительно скомпилированные двоичные файлы, которые поставляются с RVM. Это означает, что ваши собственные двоичные файлы скомпилированы на вашем компьютере. Это займет некоторое время, чтобы завершить.

Итак, если у вас возникла эта проблема, попробуйте:

rvm reinstall --disable-binary 2.2.0

Обязательно обновите версию ruby ​​до любой версии, с которой у вас возникла проблема.

Для WSL (подсистема Windows для Linux) вам нужно установить build-essential пакет:

sudo apt install build-essential

Когда я бегу sudo apt install build-essentialтогда снова работает

Ubuntu 18.04, Ruby 2.5.1p57.

Другие вопросы по тегам