とりとめも

藻類が学んだり感じたりしたことを未来の自分のために書き留めるところ

CentOS7にRubyを入れたりgitを入れたりした

はじめに

タイトルの通り、CentOS7にRubyを入れたりgitを入れたりしました。

前回の記事yumについて勉強したので、Rubyyum install Rubyで入れられることは分かっていました。
しかしrbenvを使ってインストールする場合には、まずgitを入れる必要があるみたいでした。
というわけで、Rubyを入れるためにrbenvを入れるためにgitを入れたりした流れのメモです。

環境

導入済み

OS:CentOS 7.3.1611(minimal ISO)

入れるもの

入れるRuby:2.3.0
入れるgit:1.8.3.1
入れるrbenv:1.1.0.2-g4f8925a
入れるruby-build:20170201

Rubyの最新バージョンは、この記事書いてる時点では2.4.0(あるいは2.5.0-dev)ですが、Rails Tutorialで使ってるバージョンが2.3.0だった気がするのでそれに合わせてます。

本編の前に

私の前提知識

  • rbenvを使ってMacRubyを入れたことはある
  • gitの使い方はよくわかってない
    • git branchを見よう見まねで打ったことある程度

Rubyyumで入れる場合

以下のコマンドを叩くと、Rubyのパッケージが利用可能であるとわかる。

$ yum list Ruby
(略)
Available Packages
Ruby.x86_64 2.0.0.648-29.e17

ただ、バージョンが少し古い。
なので、以下ではyum install Rubyせずにrbenvを使う方法でRubyをインストールする。

大まかな流れ

以下では、次の流れで作業を進める。

  • gitを入れる
  • gitを使ってrbenvとruby-buildを入れる
  • Rubyの依存パッケージを入れる
  • Rubyを入れる

Ruby導入準備

rbenvを入れるにはgitが必要

私がMacで「rbenv(とRuby build)導入→Ruby導入」したときは、Homebrewを入れてbrew install rbenvした(MacPortsは使ったことないです。。。) しかし、CentOS(というかyum)ではrbenvは入れられない。 前回学んだコマンドを使って確かめてみる。

$ yum list | grep rbenv
$ 

無さそう。yum search rbenvでも同じような結果。

CentOSLINUX)にrbenvを入れるには、gitからクローンを取ってくる(インストールする)必要があるとのこと。

というわけで、まずはgitを入れる。

gitのインストール

これは簡単。 $ yum list git gitのパッケージがAvailableだとわかるので、以下のコマンドを実行。 $ yum install git

インストールできたはず。

rbenvをgit cloneする

続けて、githubリポジトリからrbenvをインストールする。

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

gitはまだよく分かってないので、このコマンドで行なっていることについて自分の理解を以下に整理しておく(gitについて勉強するときに詳しく理解したい)

—–ここから飛ばしていい—–

git cloneはリモートリポジトリをローカルでも扱えるようにするもので、今回の例ではrbenv.gitを~/.rbenvにコピーしたようなもの。

$ cd .rbenv
$ git branch -a

git branch -aはリモートリポジトリも含めてブランチを表示するコマンド。このコマンドの結果から、git周辺の環境(ブランチの情報)も含めてrbenvをローカルに持ってきたことがわかる。 この点で、単なるファイルコピーとは違っている。 ただ、rbenvに必要なファイルは全て持ってきているし、これをもってインストールと言ってしまって問題ないみたい。

—–ここまで飛ばしていい—–

rbenvの利用環境設定

以下の通りrbenvの利用環境を設定する。 (さっき.rbenvにcdしたけど、忘れずにcd ~で戻っておく)

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

一度ログオフして再度ログオンし、以下コマンド。

$ rbenv -v
rbenv 1.1.9-2-g4f8925a

ちゃんと入ってる。

ruby-buildインストール

rbenvからrubyをインストールするために必要なruby-buildも導入する。
こちらもrbenv同様にgitからクローン取得。

$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ cd .rbenv/plugins/ruby-build
$ ./install.sh
$ ruby-build --version
ruby-build 20170201

できた。

これでrbenvとruby-buildが導入できた。
ので、rbenv install <バージョン>Rubyをインストールできる・・・気がするけど、実際にはminimal ISOで導入したCentOS7の場合、Rubyの前提となる依存パッケージが無くてエラーになるらしい。

Rubyの依存パッケージを入れる

必要な依存パッケージは、Rubyをインストールしようとしたときのエラーメッセージに書いてあった。
試しにRubyをインストールしてみると確認できる。(やらなくていい)
$ rbenv install 2.3.0 しばらく待たされた後にエラーが出る。
エラーメッセージの中に、以下の行がある。

install aborted due to missing extensions
`yum install -y openssl-devel readline-devel zlib-devel` to fetch missing dependencies.

素直に従ってみる。

$ yum install -y openssl-devel readline-devel zlib-devel

Complete!と表示されるはず。これでOK

Ruby

rbenvを使ってRubyインストール

$ rbenv install 2.3.0

できたはずなので、確認する。

$ rbenv versions
  2.3.0
$ rbenv global 2.3.0
$ rbenv versions
* 2.3.0 (set by /root/.rbenv/version)
$ Ruby -v
Ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]

できた。

おわりに

Rubyを入れるためにrbenvとruby-buildを入れるためにgitを入れました。

gitの使い方はまだ全然分かっていないので、また別の機会に勉強していきます。

参考にさせて頂きました。