ダメでしょ!

プログラミングとか怒られた話とか…

ruby の環境更新(アップデート)の手順まとめ

なんで更新?

利用しているPCは1年半くらい利用しており、ごちゃごちゃしてきていました。
今回、新しいWebサイト開発に着手するに当たり、環境を整理したくなりました。

前提

CUIアプリケーションはhomebrewで管理しています。
(GUIアプリケーションはhomebrew caskで管理していますが、今回の更新は対象としていません。)
rubyはrbenvでバージョン管理しています

HOMEBREWの更新とrbenvのバージョン確認

brew自体のアップデートを行います
$ brew update

brewでインストールしたアプリケーションのアップデートを行います
$ brew upgrade

インストールしたアプリケーションのアップデート後の無駄な内容を綺麗にします
$ brew cleanup

rbenvのバージョンを確認します
$ rbenv --version

rubyの更新と更新バージョンへのグローバル環境指定

rbenvでrubyの最新安定版を検索し、該当のバージョンをインストールします
$ rbenv install $(rbenv install -l | grep -v - | tail -1)

上記コマンドでインストールした最新安定版をrubyのグローバル環境で利用するバージョンに指定します
$ rbenv global $(rbenv install -l | grep -v - | tail -1)

rubyのバージョンを確認します
$ ruby -v

ruby_gemsの更新

ruby_gemsのアップデートを行います
$ gem update --system

ruby_gemsでインストールしているパッケージのアップデートを行います
$ gem update

上記コマンドでアップデートしたパッケージにより不要となった内容を綺麗にします
$ gem cleanup

ruby_gemsでインストールしているパッケージのリストを表示し、バージョンを確認します
$ gem list

おわりに

上記で久しぶりにrubyの環境を更新しました。
たまにしか実施しないため、やるたびにやり方を調査するため、備忘として残しておきます。

テンプレートエンジン hamlとslimの比較

一年くらい前に、railsを利用したとある業務アプリケーションの開発において、テンプレートエンジンを比較してhamlを導入しました。

その際に候補として挙がったのが、hamlとslimでした。

いろいろ比較して結果hamlを導入することに決定し、その業務アプリケーションは開発を行いました。

特に問題なく導入することもでき、楽にviewをかけるようになったので、なにも問題なかったのですが、現在、別のRailsアプリケーションに対して、テンプレートエンジンを導入しようとなりまして、そこで改めて、slimが候補に挙がってきました。

しかしながら、過去にどういう経緯でslimではなく、hamlを選択したのか、記録に残っていなかったため、改めて比較検討することにしました。

改めて、hamlとslimを比較 ( +で hamlit と faml も)

少しばかり調べてみたところ、hamlの性能改善を目的としたgemとして、hamlit と faml というテンプレートエンジンもあるようです。

Slimより高速なHaml実装「Hamlit」をリリースしました - k0kubun's blog

faml と slim、hamlit のパフォーマンスの差 - eagletmt's blog

なので、これらを比較対象として検討します。

私が導入を検討する際にまずすることはrubygemsでのDOWNLOAD数とVERSIONSの確認です。

DOWNLOAD数が多いgemは情報も豊富なことが多いですし、VERSIONSで更新の頻度や最終の更新が確認できます。

これらが芳しくないと、導入した後で後悔が待っています。。

上記は現状、以下の様な数字でした。

([2016/11/7 追記] バージョンの日付に誤りがあったため、2016/11/7現在の数字にアップデートしました。 hamlitがかなりDL数を伸ばしています)

gem名 DOWNLOAD VERSIONS
slim-rails 2,380,844 3.1.1 - August 29, 2016 (11 KB)
haml-rails 7,389,426 0.9.0 - March 11, 2015 (13 KB)
hamlit 250,278 2.7.5 - October 15, 2016 (69 KB)
faml 33,943 0.8.1 - February 27, 2016 (70.5 KB)

harmit と faml については、性能はいいようなのですが、DOWNLOAD数がそこまで多くないため、個人で利用する分には良さそうだったのですが、今回は除外することにしました。

そこで改めて haml と slim を見てみると、実はhamlのほうが、DOWNLOADは多いけど、更新は止まっているみたいです。

さくっと最終更新とDOWNLOAD数で決めちゃえばいいと思っていましたが、もう少し深く調査する必要がありそうです。。。

haml と slim の性能比較

で、性能比較はというと、上に挙げた hamlit と faml の記事でも分かる通り、slimのほうがかなりいい(というか、hamlが遅い?)ということがわかりました。

ここで、slimのほうが良さそうという感じになったのですが、そうなると、なんで以前の検討でhamlを選んだのか。

どうしてもその時hamlを選択した理由がわかりません。。。

とはいえ、改めて調べてみて、特にslimに問題があるわけでもなさそうだったので、今回のプロジェクトには slim を利用したいと思います。

導入してみて気になったことがあれば別に書きます。