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

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

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

Если у вас есть желание освоить Linux с нуля, не имея базовых знаний, рекомендую познакомиться с онлайн-курсом Administrator Linux.Basic в OTUS. Курс для новичков, для тех, кто хочет войти в профессию администратора Linux. Подробности по .

Самый простой способ установки 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.

Онлайн курс по Linux

Если у вас есть желание освоить операционную систему Linux, не имея подходящего опыта, рекомендую познакомиться с онлайн-курсом Administrator Linux. Basic в OTUS. Курс для новичков, адаптирован для тех, кто только начинает изучение Linux. Обучение длится 4 месяца. Что даст вам этот курс:
  • Вы получите навыки администрирования Linux (структура Linux, основные команды, работа с файлами и ПО).
  • Вы рассмотрите следующий стек технологий: Zabbix, Prometheus, TCP/IP, nginx, Apache, MySQL, Bash, Docker, Git, nosql, grfana, ELK.
  • Умение настраивать веб-сервера, базы данных (mysql и nosql) и работа с сетью.
  • Мониторинг и логирование на базе Zabbix, Prometheus, Grafana и ELK.
  • Научитесь командной работе с помощью Git и Docker.
Смотрите подробнее программу по .

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

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

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

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 не будет опубликован.

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