CentOS7にRubyを入れたりgitを入れたりした
はじめに
タイトルの通り、CentOS7にRubyを入れたりgitを入れたりしました。
前回の記事でyumについて勉強したので、Rubyをyum 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だった気がするのでそれに合わせてます。
本編の前に
私の前提知識
Rubyをyumで入れる場合
以下のコマンドを叩くと、Rubyのパッケージが利用可能であるとわかる。
$ yum list Ruby (略) Available Packages Ruby.x86_64 2.0.0.648-29.e17
ただ、バージョンが少し古い。
なので、以下ではyum install Ruby
せずにrbenvを使う方法でRubyをインストールする。
大まかな流れ
以下では、次の流れで作業を進める。
Ruby導入準備
rbenvを入れるにはgitが必要
私がMacで「rbenv(とRuby build)導入→Ruby導入」したときは、Homebrewを入れてbrew install rbenv
した(MacPortsは使ったことないです。。。)
しかし、CentOS(というかyum)ではrbenvは入れられない。
前回学んだコマンドを使って確かめてみる。
$ yum list | grep rbenv $
無さそう。yum search rbenv
でも同じような結果。
CentOS(LINUX)に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の使い方はまだ全然分かっていないので、また別の機会に勉強していきます。