ZaLinux.ru

Как установить конкретную версию Ruby gem?

Некоторые программы корректно работают только когда пакет, который является для них зависимостью, имеет определённую версию. Отсюда возникает вопрос, как я могу установить определённую версию gem с помощью инструмента командной строки?

Всё очень просто — используйте флаг -v:

gem install nokogiri -v 1.10.9

В этом примере устанавливается пакет nokogiri версии 1.10.9.

Если, как и я, вы ранее установили более позднюю версию своего gem, вы должны удалить более позднюю версию, например:

gem uninstall fog

Программа спросит, какую версию удалить, если у вас их несколько.

Для опции -v длинным вариантом является --version.

Вы также можете использовать компараторы версий, такие как >= или ~>

gem install rails -v '~> 0.14.0'

Или даже с более новыми версиями gem:

gem install rails:0.14.4 rubyzip:'< 1'
…
Successfully installed rails-0.14.4
Successfully installed rubyzip-0.9.9

Итак, общий вид команды для установки:

gem install ПАКЕТ -v ВЕРСИЯ

Для удаления общий вид команды:

gem uninstall ПАКЕТ -v ВЕРСИЯ

Ошибка «ERROR: Failed to build gem native extension.» (РЕШЕНО)

При установке с помощью gem вы можете столкнуться с ошибкой:

gem install nokogiri -v 1.10.9
Fetching mini_portile2-2.4.0.gem
Fetching nokogiri-1.10.9.gem
Successfully installed mini_portile2-2.4.0
Building native extensions. This could take a while...
ERROR:  Error installing nokogiri:
	ERROR: Failed to build gem native extension.

    current directory: /var/lib/gems/2.7.0/gems/nokogiri-1.10.9/ext/nokogiri
/usr/bin/ruby2.7 -I /usr/lib/ruby/vendor_ruby -r ./siteconf20210129-188888-195u5tn.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

You might have to install separate package for the ruby development
environment, ruby-dev or ruby-devel for example.

extconf failed, exit code 1

Gem files will remain installed in /var/lib/gems/2.7.0/gems/nokogiri-1.10.9 for inspection.
Results logged to /var/lib/gems/2.7.0/extensions/x86_64-linux/2.7.0/nokogiri-1.10.9/gem_make.out

Подсказка дана в самой ошибке, а именно: «You might have to install separate package for the ruby development environment, ruby-dev or ruby-devel for example». То есть необходимо установить пакет разработчика с заголовками ruby. В Debian, Linux Mint, Kali Linux, Ubuntu и их производных это делается командой:

sudo apt install ruby-dev

Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *