主に自分のため、もしくはRubyに全然触ったこと無いiOS開発ユーザーが
そのまま端末のgemをガンガン入れて行かないようにして欲しいと願って作成したメモです。
iOSアプリを開発する方は下記の記事もご一読いただけると余計な心配事が減るかもしれません。
bundler で cocoapods そのもののバージョン管理をする - Qiita
Homebrewをインストールする
OSX向けのパッケージマネージャのHomeBrewを入れます。
ホームページに行くと丁寧にコマンドが書いてあるので
コピーして実行します。
http://brew.sh/index_ja.html
入ったかどうかを確かめます。
$ brew --version
0.9.5 (git revision 8328; last commit 2015-11-19)
rbenvをインストールする
MacにはデフォルトでRubyが入っているのですが
気軽にバージョンアップ等ができないので
複数バージョンを管理することができるrbenvを入れます。
$ brew install rbenv ruby-build
インストールできると rbenv
で叩けます
$ rbenv --version
rbenv 0.4.0
利用したいバージョンのRubyを落とします。
まずは利用可能なrubyのリストを確認します
$ rbenv install -l
Available versions:
1.8.6-p383
1.8.6-p420
1.8.7-p249
1.8.7-p302
1.8.7-p358
1.8.7-p370
1.8.7-p371
1.8.7-p374
(中略)
rbx-2.5.7
rbx-2.5.8
ree-1.8.7-2011.03
ree-1.8.7-2011.12
ree-1.8.7-2012.01
ree-1.8.7-2012.02
topaz-dev
上のリストの中から入れたいバージョンを指定して
インストールします。
$ rbenv install 2.1.0
インストールしたRubyは以下のコマンドでわかります。
※なおsystemはMacに最初から入っているRubyです。
$ rbenv versions
* system (set by /usr/local/var/rbenv/version)
2.1.0
global
でRubyのバージョンを切り替えられます。
システム全体で適用されるので、一部プロジェクトに適応したい場合は
local
で変更して下さい。
$ ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
$ rbenv global 2.1.0
$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin15.0]
$ rbenv versions
system
* 2.1.0 (set by /usr/local/var/rbenv/version)
これでRubyのいろいろなバージョンを使えるようになりました。
bundlerをインストールして使う
Rubyのプラグイン、Gemは普通に使うとグローバルに入ってしまいます。
それを防ぐために特定ディレクトリに入れる仕組みがbundlerです。
今回はcocoapodsのインストールを例に記載します。
bundler自体もGemなので、Bundlerだけはグローバルにインストールします。
$ gem install bundler
なお新しいgemを入れたらrbenvでrehashしてください。
行わないとパスが通っていなかったりします。
$ rbenv rehash
$ bundler -v
Bundler version 1.12.4
bundlerの設定ファイルを作成します。
$ bundler init
Gemfile
というファイルができるので
入れたいGemを記述します。今回はcocoapodsを追記します。
# frozen_string_literal: true
# A sample Gemfile
source "https://rubygems.org"
gem 'cocoapods' , '0.39.0'
※詳しい書き方は「gemfile - リファレンス - - Railsドキュメント」参照
Gemfile
に書いた内容をインストールします。
インストール先のディレクトリとしては
メジャーな vendor/bundle
を指定します。
$ bundle install --path vendor/bundle
実際に利用するときは頭に bundle exec
をつけて実行します。
cocoapodの場合は pod ほげほげ
で実行するので
以下の様な形で利用します。
$ bundle exec pod --version
0.39.0