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.3/ruby-2.3.1.tar.gz --no-check-certificate

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

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

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

# ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [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.

One comment

  1. Zerox

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

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

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