Help us understand the problem. What is going on with this article?

CentOSにrbenv, Rubyをインストールする

はじめに

久しぶりにCentOSへRailsをインストールする機会があったので、rbenv, Rubyインストールの手順をメモしました。

環境
CentOS 7.3.1611

もくじ
1. Git
2. rbenv
3. ruby-build
4. .bash_profile
5. パッケージ
6. ruby
7. エラーと解決方法
8. yumでRubyをインストールする場合の注意点


1. Git

# インストール
$ sudo yum -y install git

# バージョン確認
$ git --version


2. rbenv

# rbenvインストール
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

# ディレクトリ確認
$ ls -d ~/.rbenv


3. ruby-build

# インストール
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

# ディレクトリ確認
$ ls -d ~/.rbenv/plugins/ruby-build


4. .bash_profile

# 設定
$ echo '# rbenv' >> ~/.bash_profile
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

# 確認
$ cat ~/.bash_profile

# 反映
$ exec $SHELL --login


5. パッケージ

# rubyのインストールに必要なパッケージをインストール
$ sudo yum -y install bzip2 gcc openssl-devel readline-devel zlib-devel

# バージョン確認
$ bzip2 --version
$ gcc --version
$ yum list installed | grep openssl-devel
$ yum list installed | grep readline-devel
$ yum list installed | grep zlib-devel


6. ruby

# バージョン確認
$ rbenv --version

# インストールできるrubyのバージョンを確認
$ rbenv install --list

# rubyインストール
$ rbenv install <version>

# 切り替え可能なrubyのバージョンを確認
$ rbenv versions

# rubyのバージョンを切り替え
$ rbenv global <version>

# rubyのバージョンが切り替わったことを確認
$ ruby -v


7. エラーと解決方法

不足してるパッケージがあるとrubyのインストールに失敗するため、エラーログを参考にパッケージをインストールする。

bzip2がインストールさてない場合

エラーログ

BUILD FAILED (CentOS Linux 7 using ruby-build 20170523-29-gdb3e43a)

Inspect or clean up the working tree at /tmp/ruby-build.20170725093106.1536
Results logged to /tmp/ruby-build.20170725093106.1536.log

Last 10 log lines:
/tmp/ruby-build.20170725093106.1536 ~
warning: bzip2 not found; consider installing `bzip2` package
tar (child): bzip2: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

解決方法

# インストール
$ sudo yum -y install bzip2

# バージョン確認
$ bzip2 --version


gccがインストールされてない場合

エラーログ

BUILD FAILED (CentOS Linux 7 using ruby-build 20170523-29-gdb3e43a)

Inspect or clean up the working tree at /tmp/ruby-build.20170725093413.1634
Results logged to /tmp/ruby-build.20170725093413.1634.log

Last 10 log lines:
checking for ruby... false
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/tmp/ruby-build.20170725093413.1634/ruby-2.4.1':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details

解決方法

# インストール
$ sudo yum -y install gcc

# バージョン確認
$ gcc --version


openssl-devel, readline-devel, zlib-devel がインストールされてない場合

エラーログ

BUILD FAILED (CentOS Linux 7 using ruby-build 20170523-29-gdb3e43a)

Inspect or clean up the working tree at /tmp/ruby-build.20170725093816.1958
Results logged to /tmp/ruby-build.20170725093816.1958.log

Last 10 log lines:
The Ruby openssl extension was not compiled.
The Ruby readline extension was not compiled.
The Ruby zlib extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running `yum install -y openssl-devel readline-devel zlib-devel` to fetch missing dependencies.
Configure options used:
  --prefix=/home/xxx/.rbenv/versions/2.4.1
  LDFLAGS=-L/home/xxx/.rbenv/versions/2.4.1/lib 
  CPPFLAGS=-I/home/xxx/.rbenv/versions/2.4.1/include

解決方法

# インストール
$ sudo yum install -y openssl-devel readline-devel zlib-devel

# バージョン確認
$ yum list installed | grep openssl-devel
$ yum list installed | grep readline-devel
$ yum list installed | grep zlib-devel


make がインストールされてない場合

解決方法

# インストール
$ sudo yum install make

※ 本項は @Inp さんにコメント欄で補足いただき追記させていただきました


8. yumでRubyをインストールする場合の注意点

yumでもrubyをインストールできるが、少し古いバージョンがインストールされるため注意が必要

執筆時点ではインストールされるのがruby 2.0.0p648となっており、Rails 5が要求するバージョン(2.2.2以上)を満たせない

# インストールされるバージョンを確認
$ yum list installed | grep ruby.x86_64

# インストール
$ sudo yum install -y ruby

# バージョン確認
$ ruby -v
NaokiIshimura
Ruby on Rails Engineer.
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away