Upgrade your Rails
Ruby / Ruby on Rails ビギナーズ勉強会 第12回
2016/4/10
宇都宮 諒(@ryo511)
自己紹介
- 宇都宮 諒(うつのみや りょう)
- Twitter, Facebook等では「ryo511」
- Webアプリケーションエンジニア
- 業務で主に使ってる言語はPHP, JavaScript, C#
- IDEが好き
- PhpStorm, Visual Studio, RubyMine等
- ※IDEは「Integrated Development Environment(統合開発環境)」の略称。開発ツールをひとまとめにしたソフトウェア
- PhpStorm, Visual Studio, RubyMine等
Railsアプリのバージョン
- フレームワークのバージョンは固定されるものではない
- バグの修正は日常茶飯事
- 脆弱性が見つかってバージョンアップが必要になることも
- つい最近(2016/3/11)も、Railsの脆弱性が発見された
- CVE-2016-0753
- Rubyの脆弱性が見つかることも
- CVE-2015-7551(2015年12月)
- 学習環境はバージョン固定でもいいが、本番環境は適切にバージョンアップを行う必要がある
どのバージョンまで上げれば?
- 「公式サポートが続いていること」
- 「脆弱性が発見されていないこと」
- 以上の条件を満たすバージョンまで上げるべき
- Ruby: 2.1.8/2.2.4/2.3.0
- Rails: 4.1.14.1+/4.2.5.1+/5.0.0.beta1.1+
Railsのライブラリ管理
- Rubygems(gem)
- Ruby組み込みのライブラリ管理システム
- Bundler
- プロジェクト単位でライブラリの依存関係を管理
- Gemfile
- Bundlerが使用する設定ファイル
- バージョン番号の指定も可能
- 「gem 'rails', '4.1.5'」でRails 4.1.5を指定できる
- Gemfile.lock
- プロジェクトにインストールされているバージョンを保存するファイル
bundlerのコマンド
- bundle install
- Gemfile.lockに書いてあるバージョンをインストール
- Gemfile.lockに無ければ新規インストール
- 本番デプロイではこれを使う
- bundle update
- Gemfileに書いてある制限の範囲内で、最新のバージョンをインストール
- Gemfie.lockが更新される
- バージョンアップ時に使う
バージョンアップ手順
- gitのブランチを切って作業する
- Gemfileを修正する
- gem 'rails', '4.2.2' → gem 'rails'
- バージョン指定がない => 最新安定版が入る
- 「bundle update」を実行する
- 壊れてないか確認(bundle exec rake test + 手動確認)
- 大丈夫そうならmerge & push
- 以上!
- マイナーバージョンアップならコードは無変更でいけることが多い?
せっかくなのでRuby 2.3を…
- 「最新の Ruby が一番いい Ruby」
- rvmの場合
- rvm get head # rvmを最新版に更新
- rvm install 2.3.0 # 2.3.0をインストール
- Gemfile修正
- ruby '2.3.0'
- bundle update
- 大丈夫そうなら本番デプロイ(git push heroku)
俺のRailsバージョンアップがこんなに簡単なはずが(ry
- Railsのバージョンアップは大変とよく聞くけど…
- Rails Tutorialアプリで、↓のバージョンアップは簡単
- Ruby 2.1.5 => 2.3.0
- Rails 4.2.2 => 4.2.6
- みんなもやってみよう!
- ハマった時はハマった時で、何かしらの知見は得られるはず
ご清聴ありがとう
ございました
Upgrade your Rails
By Ryo Utsunomiya
Upgrade your Rails
Ruby / Ruby on Rails ビギナーズ 第12回
- 1,907