プログラミング

初学者がGemのversionを固定しないほうがいい理由

投稿日:

こんにちは、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した時、警告が出るかもしれません。

 

参考サイト

【Rails】Gemfileのバージョン指定の書き方

gemのバージョン指定法(>=,~>,など)について

 

最後に

備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。

-プログラミング
-

Copyright© Nanayaku blog , 2019 All Rights Reserved Powered by AFFINGER5.