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(統合開発環境)」の略称。開発ツールをひとまとめにしたソフトウェア
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」
http://techlife.cookpad.com/entry/2015/09/19/080000
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
みんなもやってみよう!
ハマった時はハマった時で、何かしらの知見は得られるはず
ご清聴ありがとう
ございました
Made with Slides.com