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.

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

Дополнительные материалы по CentOS

Рекомендую полезные материалы по CentOS:
Настройки системы
  • Установка
  • Базовая настройка
  • Настройка времени
  • Настройка сети
  • Настройка репозиториев
  • Настройка iptables
Установка CentOS 7 в конфигурации minimal или netinstall с загрузочной флешки или по сети на диск или raid раздел.
Базовая настройка CentOS 7 для работы с любым функционалом. Приведены практические советы по улучшению безопасности и удобства администрирования.
Как установить точное время на сервере CentOS, настроить часовой пояс, синхронизировать время с помощью ntpdate и ntpd и другое.
Подробное описание настройки сети в CentOS 7 - задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др.
Установка репозиториев epel, rpmforge и др. Добавление, удаление, обновление rpm репозиториев в CentOS.
Рассмотрены основные моменты настройки iptables в Centos 7 - установка, добавление правил, проброс портов, nat, логирование и д.р.
Настройка программных комплексов
 
  • Прокси сервер
  • Шлюз
  • Asterisk
  • Asterisk+Freepbx
  • Сервер VPN
  • Web сервер Apache
  • Web сервер Nginx
  • Почтовый сервер
Подробное описание настройки прокси сервера на базе CentOS 7 со связкой squid+AD+sams2, реализован запрет доступа по url и группам пользователей.
Простая и быстрая настройка шлюза на базе CentOS 7 для организации доступа в интернет из локальной сети.
Описание установки и настройки asterisk - популярной современной sip атс. Описан расширенный функционал, покрывающий большинство потребностей стандартного офиса в современной телефонии.
Подробное описание установки voip сервера asterisk и панели управления freepbx на CentOS 7.
Установка и настройка OpenVPN сервера на CentOS для объединения офисов и подключения удаленных пользователей
Настройка web сервера CentOS 7 на базе связки http сервера apache, php и сервера db mysql, или коротко - установка lamp.
Установка и настройка высокопроизводительного web сервера на базе nginx и php fpm. В качестве кэша используется APC.

Описание установки и настройки почтового сервера iRedMail на основе готовой сборки на CentOS 7. Обзор основных возможностей и рекомендации по настройке.

Самостоятельная настройки почтового сервера postfix + dovecot а так же дополнительных полезных модулей для полноценной и удобной работы почты.

Размышления на тему выбора почтового сервера для малых и средних компаний.

Настройка отдельных программ
 
  • Zabbix
  • Phpmyadmin
  • Webmin
  • Ruby
  • Обновление php
  • Vsftpd
  • Bind
  • Unison
  • Observium
  • Syslog-NG
Видео и подробное описание установки и настройки Zabbix 3.2, а также установка агентов на linux и windows и подключение их к мониторингу.
Подробное описание установки и настройки панели управления phpmyadmin на веб сервер apache и nginx под управлением Centos 7.
Подробное описание установки и настройки Webmin на CentOS 7 для удаленного подключения и управления сервером.
Подробное описание установки языка Ruby последней версии на веб сервер под управлением CentOS 7.
Подробное описание установки или обновления php 7 на CentOS 7. Рассмотрен вариант отката обновления и возврата на php 5.6 или 5.4.
Подробное описание с видео установки и настройки ftp сервера vsftpd, примеры с локальными и виртуальные пользователями в mysql.
Настройка DNS сервера BIND (Named) в CentOS 7. Рассмотрены наиболее популярные конфигурации, в том числе подробное логирование.
Установка Unison в CentOS 7 для двухсторонней синхронизации файлов.
Инструкция по установке и настройке сервера мониторинга Observium на CentOS 7. В качестве примера в конце добавлено одно устройство для мониторинга.
Настройка сервера для централизованного сбора логов с удаленных устройств и серверов с помощью программы syslog-ng.
Разное
  • Настройка ssl в Apache
  • Бэкап с помощью rsync
Настройка работы веб сервера apache с виртуальными хостами по протоколу https с использованием бесплатного ssl сертификата.
Подробное описание настройки бэкапа с помощью rsync на примере скрипта инкрементного архива на системе Centos, Debian, Ubuntu, Windows.

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

  1. На текущий момент статья полностью актуальна. Только что установил себе 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

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

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

      • Сергей

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

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

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

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

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

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