はじめに
こんばんは。今日もぼちぼち元気にプログラミングを頑張っています。
昨日というか未明に1日いちQiitaをやろうと決めて早18時間ですか。時間というのは流れるのが本当に早いですね。
今回の記事で書くこと
- Rubyのバージョンを上げるたびに何をしたらいいのかをググっていた今日までの自分へ捧げるやることリストのようなもの。
バージョンをあげるということの大切さ
なぜバージョンがあがったのか?を考える
ここは皆さん共通認識であるかと思うのですが、一番はセキュリティ(脆弱性)との戦いを私達はしているということです。
バージョンがあがった背景をコードを読んだり、変更箇所のlogをみたりすると学べることが沢山あります。
バージョンがあがるということはよりよいものになろうとしている変化の一つ。その恩恵にあやかりたい。
さらに、新しい書き方をできるようになったり、自分たちが抱えているプロジェクトを常に綺麗な最善な形に保つための工夫を凝らすためにはバージョンをあげていくということは頑張ってついていきたいところだなぁと思っています。
Ruby2.5.1からRuby2.5.3へあげる道のり
自分はrbenvによってrubyのバージョンを管理してもらっています。
なので、今回も以下のように進めようと思いました。
$ rbenv install --l
↓ # この流れを期待していた。
$ rbenv install <version>
ですが、探しても探してもRuby2.5.3が見つからない。
あれ?どうして?リリースされてるはず。。
rbenvが古いのかな?ruby-buildが古いのかな?
とHomebrewを使ってupdateするも、rbenvは最新ですと言われ、
依然として見つからないまま。
ruby-buildに何かあるはずだ。と公式にすがる。
https://github.com/rbenv/ruby-build#upgrading
そうすると ruby-build
を直接pullしてくる方法が書いてあるのを発見。
homebrew経由でうまく行かなかっただけで、これならいけるかも、と実行してみる。
$ cd "$(rbenv root)"/plugins/ruby-build && git pull
そうすると、無事2.5.3が見つかり、無事にインストールできた。
$ rbenv install --l
$ rbenv install <version>
プロジェクトのrubyバージョンを設定。
$ rbenv local 2.5.3
念の為、version確認。
$ ruby --version
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin17]
その後やること
$ bundle install
rbenv: bundle: command not found
The `bundle' command exists in these Ruby versions:
2.2.3
2.3.7
2.4.2
2.4.4
2.5.0
2.5.1
ので、bundlerをいれる。
$ gem install bundler
railsもいません。
$ rails
rbenv: rails: command not found
The `rails' command exists in these Ruby versions:
2.2.3
2.3.7
2.4.2
2.4.4
2.5.0
2.5.1
ので、railsをいれる。
$ gem install rails
よし、ローカルサーバーを立ち上げてみる。
$ rails s
Could not find rake-12.3.1 in any of the sources
Run `bundle install` to install missing gems.
rakeもバージョンが上がったものはないです。
gemをinstallしてください。と言われる。
$ bundle install
これで、新しいRubyのバージョンで開発を進めることができます!
Happy coding! ˘ω˘)˘ω˘)˘ω˘)
追記(11月5日更新)
自分がこの記事をかいたときには理解できていなかったのですが、
コメントいただいたみなさんとのやりとりで正しい原因を理解することができたので、
残しておきます。
homebrew-core
での ruby-build
のupdateというのは10月20日に完了していました。 (コミットが完了している。)
なのに、今回自分がbrew経由でupdateすることができなかったのは、homebrew自体が最新のものでなかったことが原因ということです。自分がこの事象にあたった日時から見てこれが原因だと思います。
こまめにパッケージマネージャの管理はしていかないとなと強く思いました。
正しい理解になるようとコメントくださった皆さん、本当にありがとうございました。