ruby

FUKUDA Hiroshi

(2019.8.22)

yumにSCL(RED HAT SOFTWARE COLLECTIONS)リポジトリを導入して,ruby 2.4をインストールして使う。

(環境) CentOS 7.x

(以下プロンプトが#ならroot,$なら普通のユーザー)

Rubyのインストール

# yum install ruby

これでインストールされるのはruby 1.8

# ruby -v

で確認する。

Ruby 2.4のインストール

yumにSCLリポジトリを入れてから,ruby 2.4をインストールする。

# yum install rh-ruby24 rh-ruby24-ruby-devel

Ruby 2.4を使う

ruby 2.4を使うには,ログイン時スクリプト

# vi /etc/profile.d/rh-ruby24.sh

#!/bin/bash

source /opt/rh/rh-ruby24/enable

export X_SCLS="`scl enable rh-ruby24 'echo $X_SCLS'`"

を作る。再ログインして

# ruby -v

と打ってrubyのバージョンを確認する。(この環境は抜けることはできない。)

(参考)古いrubyも使いたい場合は/etc/profile.d/rh-ruby24.shを作らずに,sclコマンドを使って

$ scl enable rh-ruby24 bash

と打つ。この環境を抜けるにはexit。

Ruby 2.4(rh-ruby24)をcgiで使う

cgiスクリプトで利用するには,共有ライブラリのパスを設定するファイル

vi /etc/ld.so.conf.d/rh-ruby.conf

/opt/rh/rh-ruby24/root/usr/lib64

を作り,

# ldconfig

と打ってパスを設定する。そして,スクリプトの冒頭(shebang)を

#!/opt/rh/rh-ruby24/root/usr/bin/ruby

とする(/opt/rh/rh-ruby24/root/usr/bin/rubyはruby 2.4へのパス)。

(例)

[fukuda@www ~]$ cat public_html/cgi-bin/hello2.cgi

#!/opt/rh/rh-ruby24/root/usr/bin/ruby

print "Content-type: text/html\n"

print "\n"

print "<html>"

print "ruby ", RUBY_VERSION

print "</html>"