やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

ついにrbenvでRubyインストールできた

前回なんてなかった。

現状の確認

$ ruby
bash: /usr/bin/ruby: そのようなファイルやディレクトリはありません
$ rbenv
プログラム 'rbenv' はまだインストールされていません。 次のように入力することでインストールできます:
sudo apt-get install rbenv

/home/mint/.rbenvとその配下はそのまま残っていた。

  • apt-getでは絶対Rubyをインストールしない。削除しようとするとrbenvまで消されるから

計画

  • rbenvをインストールする sudo apt-get install rbenv
  • Ruby 2.4.0をインストールする rbenv install 2.4.0 (2時間+フリーズ対策で全アプリ終了)

なんだ、簡単じゃないか。今までに比べれば。多分必要だったライブラリ一式は残っている……と思いたい。

sudo apt-get install rbenv

$ sudo apt-get install rbenv
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libreadline6-dev libtinfo-dev
これを削除するには 'apt-get autoremove' を利用してください。
以下の特別パッケージがインストールされます:
  libruby1.9.1 ruby ruby1.9.1
提案パッケージ:
  ri ruby-dev ruby1.9.1-examples ri1.9.1 graphviz ruby1.9.1-dev ruby-switch
以下のパッケージが新たにインストールされます:
  libruby1.9.1 rbenv ruby ruby1.9.1
アップグレード: 0 個、新規インストール: 4 個、削除: 0 個、保留: 12 個。
2,742 kB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 13.3 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
以前に未選択のパッケージ ruby を選択しています。
(データベースを読み込んでいます ... 現在 184259 個のファイルとディレクトリがインストールされています。)
.../ruby_1%3a1.9.3.4_all.deb を展開する準備をしています ...
ruby (1:1.9.3.4) を展開しています...
以前に未選択のパッケージ ruby1.9.1 を選択しています。
.../ruby1.9.1_1.9.3.484-2ubuntu1.2_i386.deb を展開する準備をしています ...
ruby1.9.1 (1.9.3.484-2ubuntu1.2) を展開しています...
以前に未選択のパッケージ libruby1.9.1 を選択しています。
.../libruby1.9.1_1.9.3.484-2ubuntu1.2_i386.deb を展開する準備をしています ...
libruby1.9.1 (1.9.3.484-2ubuntu1.2) を展開しています...
以前に未選択のパッケージ rbenv を選択しています。
.../rbenv_0.4.0+debian1-2_all.deb を展開する準備をしています ...
rbenv (0.4.0+debian1-2) を展開しています...
man-db (2.6.7.1-1ubuntu1) のトリガを処理しています ...
ruby (1:1.9.3.4) を設定しています ...
ruby1.9.1 (1.9.3.484-2ubuntu1.2) を設定しています ...
libruby1.9.1 (1.9.3.484-2ubuntu1.2) を設定しています ...
rbenv (0.4.0+debian1-2) を設定しています ...
libc-bin (2.19-0ubuntu6.9) のトリガを処理しています ...

確認

rbenv

$ rbenv
rbenv 0.4.0
...
$ rbenv -v
rbenv 0.4.0

とりあえず、rbenvはインストールできた。

Ruby2.4.0

 $ rbenv versions
  system
* 2.4.0 (set by /home/mint/.rbenv/version)

あれ?2.4.0があるぞ?インストールされたまま?前回の削除ログにもないから生存していたらしい。

$ rbenv which ruby
/home/mint/.rbenv/versions/2.4.0/bin/ruby
$ rbenv version
2.4.0 (set by /home/mint/.rbenv/version)

パスが出てきた。移動してみるとbin/配下にrubyファイルがあった。Rubyコマンド本体と思われる。叩いてみる。

~/.rbenv/versions/2.4.0/bin $ ruby --version
ruby 1.9.3p484 (2013-11-22 revision 43786) [i686-linux]

なぜか1.9.3になる。たぶん参照設定があるのだろう。そのへんの仕組みがさっぱりわからないがLinuxの常識なのだろう。

$ ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [i686-linux]

やはりrubyからのバージョン参照は1.9.3。どうやっても2.4.0にならない。これじゃ2.4.0を使えない。

バージョン指定を試みる

$ echo $RBENV_VERSION

何も出ない。

$ export RBENV_VERSION=2.4.0
mint@mint-CF-T5AW1AXS ~ $ echo $RBENV_VERSION
2.4.0
$ ruby --version
ruby 1.9.3p484 (2013-11-22 revision 43786) [i686-linux]

やはりダメ。

$ rbenv global
2.4.0
$ rbenv local
rbenv: no local version configured for this directory

rbenvでRubyのバージョンを指定する方法 - Qiita

参考にした。感謝。

とにかくRuby2.4.0のインストールはできている。

バージョン指定できない

rbenvでバージョンがうまく切り替わらなかった時にやったこと - Qiita

上記を参考にした。感謝。

$ which ruby
/usr/bin/ruby

私の環境でもこうなった。参考先は無知な私には難しい。 おそらく私の環境では/home/{user}/.rbenv/shims/rubyであるべきらしい。

$ rbenv init
# Load rbenv automatically by adding
# the following to ~/.bash_profile:

eval "$(rbenv init -)"

/home/{user}/.bash_profileファイルなど存在しない。例によって自分で作る。そしてeval "$(rbenv init -)"と空行を入れて保存。ターミナルを再起動して以下コマンドを確認。

$ ruby --version
ruby 1.9.3p484 (2013-11-22 revision 43786) [i686-linux]

変化なし。

$ source ~/.bash_profile
$ which ruby
/home/mint/.rbenv/shims/ruby
$ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [i686-linux]
$ ruby --version
ruby 2.4.0p0 (2016-12-24 revision 57164) [i686-linux]

できた。ついにできた。ターミナルを起動したら必ずsource ~/.bash_profileを実行する必要があるらしい。

.bashrc

/home/{user}/.bashファイルを以下のようにしたが起動時に実行されなかった。

[[ -d ~/.rbenv  ]] && \
  export PATH=${HOME}/.rbenv/bin:${PATH} && \
  eval "$(rbenv init -)"

source ~/.bash_profile
source ${HOME}/.bash_profile

よくわかっていない。毎回source ~/.bash_profileを実行するなんて忘れてしまう。

まあ、もういいや。はやくRuby地獄から解放されたい。

まとめ

  1. ターミナル起動
  2. source ~/.bash_profileを実行する
  3. ruby -vを実行する
  4. 2.4.0がでるはず

これまでの地獄をふりかえる

じつに16記事分の失敗ログ。

http://ytyaru.hatenablog.com/entry/2017/05/09/000000
http://ytyaru.hatenablog.com/entry/2017/05/10/000000
http://ytyaru.hatenablog.com/entry/2017/05/11/000000
Server Error
Server Error
http://ytyaru.hatenablog.com/entry/2017/05/14/000000
http://ytyaru.hatenablog.com/entry/2017/05/15/000000
http://ytyaru.hatenablog.com/entry/2017/05/16/000000
http://ytyaru.hatenablog.com/entry/2017/05/17/000000
http://ytyaru.hatenablog.com/entry/2017/05/18/000000
http://ytyaru.hatenablog.com/entry/2017/05/19/000000
http://ytyaru.hatenablog.com/entry/2017/05/20/000000
http://ytyaru.hatenablog.com/entry/2017/05/21/000000
http://ytyaru.hatenablog.com/entry/2017/05/22/000000
http://ytyaru.hatenablog.com/entry/2017/05/23/000000

所感

おめでとう私。ここまでこぎつけた。超えらい。ところで、すっかり忘れているけど肝心のhatenablogはインストールできるの?