rbenvとruby環境の構築手順
はじめに
WindowsのWindows Subsystem for LinuxでUbuntuを使いはじめ、その中にrbenvとruby環境を構築したのでその手順をメモします。
前提と手順概要
まずは、rubyのバージョン管理およびディレクトリ毎に異なるバージョンのrubyをインストールできるrbenv
をインストールします。そのあと、rbenv
を使ってrubyをインストールします。
以降の作業はUbuntuで行いました。UbuntuであればWindows Subsystem for Linux、仮想マシン、純粋なUbuntuのいずれでも同じ手順になります。思っていた以上に簡単に構築できました。
参考サイト
以下の公式サイトの手順ほぼそのままでいけました。 GitHub - rbenv/rbenv: Groom your app’s Ruby environment
準備
作業開始前に、事前にUbuntuにいくつかパッケージをインストールしておく必要があります。
$ sudo apt update
$ sudo apt install build-essentail
$ sudo apt install -y libssl-dev libreadline-dev zlib1g-dev
rbenvのインストール
自分のホームディレクトリに移動し、rbenv
を~./rbenv
にgit clone
します。URLはhttps://github.com/rbenv/rbenv.git
です。
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
Cloning into '/home/vagrant/.rbenv'...
remote: Counting objects: 2714, done.
remote: Total 2714 (delta 0), reused 0 (delta 0), pack-reused 2714
Receiving objects: 100% (2714/2714), 506.25 KiB | 172.00 KiB/s, done.
Resolving deltas: 100% (1700/1700), done.
Checking connectivity... done.
以下のコマンドでrbenv
のパスを通します。なお、Ubuntuの場合は以下のように
にパスを書き込んでいます。
CentOS等では、書き込み先が/.bashrc/.bashrc
ではなく~/.bash_profile
になりますのでご注意ください。
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
続いてrbenv init
を実行。以下のように表示されます。
$ ~/.rbenv/bin/rbenv init
# Load rbenv automatically by appending
# the following to ~/.bashrc:
eval "$(rbenv init -)"
上記で指示される通り、以下を実行。
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
その後、ターミナルを再起動します。Windows Subsystem for Linux を使っている場合は、単純にWindows Subsystem for Linux のコマンドプロンプトを閉じて再度開けばOKです。
もしくは、$ source ~/.bashrc
で再読込してもいけると思います。
次に、rbenv install
コマンドでRubyを簡単にインストールできるようにするために、ruby-biuld
をインストールします。
ruby-buildのインストール
手順は公式サイト(GitHub - rbenv/ruby-build: Compile and install Ruby)に従いました。
まず、ruby-build
のインストール先となるplugin
ディレクトリを以下のコマンドで作成します。
以下は$(rbenv root)
でrbenvのルートディレクトリ(/home/username/.rbenv
)が得られるので、それを利用してmkdir
のp
オプションも使って、単純にrbenv
のルートにplugins
ディレクトリを作成しているだけになります。試しにターミナル上でrbenv root
と実行すれば/home/username/.rbenv
というように結果が表示されると思います。
mkdir
のp
オプションは、必要に応じて中間のディレクトリもまとめて作成してくれます。
$ mkdir -p "$(rbenv root)"/plugins
あとは作成したplugins
ディレクトリにruby-build
をクローンするだけです。
$ git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
Cloning into '/home/vagrant/.rbenv/plugins/ruby-build'...
remote: Counting objects: 8816, done.
remote: Compressing objects: 100% (45/45), done.
remote: Total 8816 (delta 225), reused 237 (delta 207), pack-reused 8556
Receiving objects: 100% (8816/8816), 1.83 MiB | 394.00 KiB/s, done.
Resolving deltas: 100% (5658/5658), done.
Checking connectivity... done.
これでrbenv install
が使えるようになりました。
rbenvを使ってrubyをインストール
まずインストール可能なrubyの候補一覧を表示してみます。
$ rbenv install -l
大量に表示されますが、表示されるもののうち、2.5.1
のように数値だけ表示されているものがrubyのバージョンになります。
2018年5月27日時点では、2.5.1
が最新となるため、以下のようにインストールします。少々時間がかかります。
$ rbenv install 2.5.1
Downloading ruby-2.5.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.bz2
Installing ruby-2.5.1...
Installed ruby-2.5.1 to /home/vagrant/.rbenv/versions/2.5.1
Installed ruby-2.5.1 to /home/vagrant/.rbenv/versions/2.5.1
と表示されればインストール完了です。
あとはrbenv global
でデフォルトで使いたいrubyのバージョンを指定します。
$ rbenv global 2.5.1
また、rbenv local
で特定のディレクトリ毎で使いたいrubyのバージョンを指定します。
$ cd workdir
$ rbenv local 2.5.1 # workdirではRuby 2.5.1 を使用
最後に設定を反映させるためにrbenv rehash
$ rbenv rehash
rubyのバージョンを確認
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
以上で完了です。
なお、環境が適切かどうかを確認できるrbenv-doctor
というものがあるので、実行してみると以下のように表示されると思います。
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /home/vagrant/.rbenv/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: /home/vagrant/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20180424-3-g16ac342)
Counting installed Ruby versions: 1 versions
Checking RubyGems settings: OK
Auditing installed plugins: OK
遭遇したエラー
rubyインストール時にBUILD FAILED
以下のようにrbenv install
でrubyをインストールしようとしたところ、BUILD FAILED (Ubuntu 16.04 using ruby-build 20180329-3-g4dac7b1)
と表示されました。
$ rbenv install 2.5.1
Downloading ruby-2.5.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.bz2
Installing ruby-2.5.1...
BUILD FAILED (Ubuntu 16.04 using ruby-build 20180329-3-g4dac7b1)
Inspect or clean up the working tree at /tmp/ruby-build.20180420152344.23570
Results logged to /tmp/ruby-build.20180420152344.23570.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 `apt-get install -y libssl-dev libreadline-dev zlib1g-dev` to fetch missing dependencies.
Configure options used:
--prefix=/home/vagrant/.rbenv/versions/2.5.1
LDFLAGS=-L/home/vagrant/.rbenv/versions/2.5.1/lib
CPPFLAGS=-I/home/vagrant/.rbenv/versions/2.5.1/include
これは、冒頭で書いた以下のパッケージがインストールされていないためです。上記のエラーメッセージの中にもインストールするよう指示が書いてあるので親切ですね。 指示通りに以下インストールで解決できます。
$ sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev
Checking rbenv install support: bash: line 114: command not found
rbenv-doctor
を実行時にChecking `rbenv install' support: bash: line 114: : command not found
と表示されました。これはruby-build
がまだインストールされていないために表示されます。ですので、もう一度ruby-build
がインストールされているか確認してみると良いと思います。
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /home/vagrant/.rbenv/bin/rbenv
Checking for rbenv shims in PATH: OK
Checking `rbenv install' support: bash: line 114: : command not found
()
Counting installed Ruby versions: none
There aren't any Ruby versions installed under `/home/vagrant/.rbenv/versions'.
You can install Ruby versions like so: rbenv install 2.2.4
Checking RubyGems settings: OK
Auditing installed plugins: OK
Checking for rbenv shims in PATH: not found
こちらもrbenv-doctor
を実行時にChecking for rbenv shims in PATH: not found
と表示されました。これはrbenv
のパスが通っていないことが原因です。もう一度.bashrc
にeval "$(rbenv init -)"
が追記されているか確認してみるといいかもしれません。私は、Ubuntuで間違えて.bash_profile
にパスを追記していたために表示されていました。echo 'eval "$(rbenv init -)"' >> ~/.bashrc
を実行して解決します。
$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
Checking for `rbenv' in PATH: /home/vagrant/.rbenv/bin/rbenv
Checking for rbenv shims in PATH: not found
The directory `/home/vagrant/.rbenv/shims' must be present in PATH for rbenv to work.
Please run `rbenv init' and follow the instructions.
Checking `rbenv install' support: bash: line 114: : command not found
()
Counting installed Ruby versions: none
There aren't any Ruby versions installed under `/home/vagrant/.rbenv/versions'.
You can install Ruby versions like so: rbenv install 2.2.4
Checking RubyGems settings: OK
Auditing installed plugins: OK
まとめ
rbenvを使うことで簡単にruby環境を構築できました。当然かもしれませんが、Windows Subsystem for Linuxでも仮想マシンでも全く同様の手順でいけました。
関連記事
- 公開日:2018/05/30 更新日:2018/05/30
ブラウザの操作を自動化できるSeleniumをWSLからRubyで使う
フォーム送信や繰り返し行う必要があるブラウザ操作を自動化できるSeleniumをWindows Subsystem for Linux のUbuntuからRubyを用いて使用するための手順をメモします。
- 公開日:2018/05/06 更新日:2018/05/06
RubyでGoogleスプレッドシートを読み込み・書き込みする
Googleスプレッドシートを自分で作成したRubyコードから読み込んだり、書き込んだりするためのコードについてまとめます。
- 公開日:2016/01/10 更新日:2016/01/10
Railsでwickedpdfを使ってPDF出力する
Ruby on RailsでPDF出力させるのに便利なgemはたくさんありますが、htmlをそのままPDF化してくれる「wickedpdf」が一番お手軽で楽でした。wickedpdfの導入手順と使用方法をメモします。
- 公開日:2015/07/06 更新日:2015/07/06
Ruby on Railsでパンくずリストを表示するGem gretelの使い方メモ
Ruby on Railsで作成したWebアプリにパンくずリストを表示したい時に便利なのがgretelというgemです。gretelを使うと、gretelの設定ファイルとviewファイルに記述を追加するだけでパンくずリストを簡単に表示できます。使い方をメモします。