Home » Linux » CentOS » Установка Ruby на CentOS 7

Установка Ruby на CentOS 7

Понадобилось установить Ruby на сервер с CentOS 7 для выполнения некоторых скриптов. Из стандартных репозиториев устанавливалась очень старая версия, которая мне не подходила. Пришлось собирать последнюю из исходников. Как обычно, не обошлось без подводных камней, о которых расскажу.

Теоретический курс по основам сетевых технологий. Позволит системным администраторам упорядочить и восполнить пробелы в знаниях. Цена очень доступная, есть бесплатный доступ. Все подробности по . Можно пройти тест на знание сетей, бесплатно и без регистрации.

Самый простой способ установки Ruby на CentOS 7 это установке через yum:

# yum -y install ruby
# ruby -v
ruby 2.0.0p598 (2014-11-13) [x86_64-linux]

На момент написания статьи у меня поставилась версия 2.0.0. Мне она не подходила, так как при установке гема whois я получал сообщение, что версия слишком старая:

ERROR: Error installing whois:
activesupport requires Ruby version >= 2.2.2.

Пришлось удалить установленную версию и искать способ поставить более свежую. Способов на самом деле несколько:

  1. Установить из исходников.
  2. Воспользоваться сторонним репозиторием.
  3. Установить с помощью менеджера управлением пакетами ruby - RVM или rbenv.

Мне первый способ показался самым простым, решил воспользоваться им. Если вы уже установили старую версию через yum, то перед дальнейшими действиями удалите ее:

# yum remove ruby

Устанавливаем необходимые зависимости для сборки и установки ruby:

# yum install -y zlib zlib-devel openssl-devel
# yum groupinstall -y "Development Tools"

Скачиваем последнюю стабильную версию ruby:

# cd /usr/src
# wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.gz --no-check-certificate
Не забудьте указать последнюю стабильную версию, которая будет на момент вашей установки. У меня указана последняя версия на момент проверки статьи 15.08.2018.

Распаковываем ее и собираем:

# tar -xzvf ruby-*
# cd ruby-*
# ./configure
# make
# make install

Проверяем установленную версию:

# ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

Обновляем Rubygems и уже установленные гемы:

# gem update --system
# gem update

Теперь можно приступить к установке интересующего меня гема whois и whois-parser:

# gem install whois
# gem install whois-parser

Установка ruby на CentOS 7

Без проблем установилась нужная версия. Расскажу об ошибках с которыми столкнулся для тех, кто придет сюда из поиска по этим ошибкам. Сначала я получил вот такую ошибку после установки ruby, когда пытался обновить rubygems:

ERROR: Loading command: install (LoadError)
       cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
       undefined method `invoke_with_build_args' for nil:NilClass

При этом, пакет zlib у меня уже стоял. Оказалось, этого не достаточно, нужно было еще установить zlib-devel. Установка этого пакета и пересборка из исходников помогла.

Потом столкнулся с другой ошибкой:

ERROR: While executing gem ... (Gem::Exception)
       Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

Здесь сразу стало понятно, что не хватает openssl-devel. Установил этот пакет, снова пересобрал из исходников ruby и установил. После этого ошибок больше не было.

На этом все, последняя версия Ruby 2.3.1 установлена на CentOS 7. Расскажу, зачем я его установил на сервер - для настройки мониторинга времени делегирования домена в zabbix.

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте . Стоимость обучения весьма демократична, хорошая возможность получить новые знания в актуальной на сегодняшний день предметной области. Особенности курсов:
  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

6 комментариев

  1. Аватар
    Сергей

    После такой переустановки ruby у меня вообще накрылось все. До выключения - перестал работа проводник Dolphi. А при включении компьютера - вообще не запускается оболочка. При выполнении команды yum remove ruby у меня было 2 зависимости. Возможно из-за этого. Или не знаю по какой другой причине. Но факт в том, что не могу теперь запустить Centos 7. Только без графичекой оболочки.

    Ошибки, которые возникают:
    [sdb] No Caching mode page found
    [sdb] Assuming drive cache: write throught
    kdf: error getting iommu info. Is the iommu enabled?

    Самое интересное, что в режиме без графической оболочки сам руби не работает.
    # ruby -v
    Выдает ответ, что команда ruby не найдена.
    kdf: Error initializing iommuv2 for device 1002:1313
    kdf: device 1002:1313 NOT added due errors

    • Zerox

      Мой сайт полностью посвещен администрированию серверов. Я ничего и никогда не проверяю с графическими оболочками. И вообще не работаю с ними. Так что ничего подсказать не могу.

      Перечисленные ошибки, кстати, к руби вообще никакого отношения не имеют.

      • Аватар
        Сергей

        Если Вы точно знаете, что у Ruby они отношения не имеют, то, наверное, Вы знаете, к чему имеют? Можете подсказать?

        То, что есть в интернете, совершенно не подходит: зачастую там говорят об ошибках установки или обновления. Или про биос. И вроде бы фигурирет Radeon AMD. Если переустановить графические драйвера это может помочь?

        • Zerox

          Эти ошибки относятся к диску, имя которого фигурирует. А вообще, это все хорошо гуглится. Что поможет - не знаю. Надо внимательно разбираться на месте.

  2. Аватар

    Спасибо Большое.
    Актуально.
    Уже версия 2.5.1

  3. Zerox

    На текущий момент статья полностью актуальна. Только что установил себе ruby по ней.

Добавить комментарий

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.