こんにちは、Nanayakuです。
今回は、自分がtech boostの成果物を作成するための開発環境の構築をする時、Gemをがっちり決めて構築したせいで、やり直すはめになった失敗談を紹介します。
こんな方におすすめ
- これから開発環境を構築しようとしている初学者
- Gemのバージョンってどんな意味があるのって人
目次
Gemのバージョン指定方法
Gemのバージョンの指定方法は、Gemfileで下記のように「~>」や「>=」で指定します。
gem 'rails', '~> 5.1.6'
gem 'pg', '>= 0.18', '< 2.0'
基本的な文法
gem 'gem名', 'バージョン', 'オプション'
gem 'rails', '~> 5.1.6'
gem 'bootsnap', require: false
バージョンを指定する記号
・バージョン指定なし
gem 'rails'・・・最新のバージョン
・記号なし
gem 'rails', '5.1.6'・・・指定したバージョンで固定
・~>
gem 'rails', '~>5.1.6'・・・5.16~5.19までの間なら使用可能
・>=
gem 'rails', '>=5.1.6'・・・5.16以上のバージョンでなければ使用できない
・>= , <
gem 'rails', '>=5.1.6', '5.6'・・・5.16以上、5.6未満のバージョンでなければ使用できない
今回(Develop TermでHerokuにアップするためにrails+postgresqlの環境構築)、私は何となくrailsのversionを5.1.6でやろうと固定で指定しました。
そして、githubにpushするとシステムの脆弱性でアラートが出ました。
githubはパッチが出ている「rails 5.1.6.2」にアップグレートしろと警告して、やむなくGemfileを「gem 'rails', '~>5.1.6'」に書き換え、bundle installしてgithubにpushしなおしました。
まとめ
初学者はgemのversionを固定する指定方法はしないようにしましょう。
ginhubにpushした時、警告が出るかもしれません。
参考サイト
最後に
備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。