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

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

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

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Администратор Linux» в OTUS. Курс не для новичков, для поступления нужно пройти .

Самый простой способ установки 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» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Проверьте себя на вступительном тесте и смотрите программу детальнее по .

Помогла статья? Есть возможность отблагодарить автора

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

  1. Zerox

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

  2. Аватар

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

  3. Аватар

    После такой переустановки 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

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

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

Ваш e-mail не будет опубликован.

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