#目的
iOSのアプリを複数人で開発するときにbundlerでCocoaPodsのバージョンを管理していると思います。
僕は普段個人でアプリ開発をやっていて複数人で開発するのは初めてなので、rbenvとbundlerをインストールしていたのですが、bundlerをインストールする際に以下のようなエラーが出て解決するのにだいぶ時間がかかってしまいました。
$ gem install bundler
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.
$ bundler -v
Traceback (most recent call last):
2: from /usr/bin/bundler:23:in `<main>'
1: from /Library/Ruby/Site/2.6.0/rubygems.rb:303:in `activate_bin_path'
/Library/Ruby/Site/2.6.0/rubygems.rb:284:in `find_spec_for_exe': Could not find 'bundler' (2.0.2) required by your /Users/ユーザー名/フォルダ名/Gemfile.lock. (Gem::GemNotFoundException)
To update to the latest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:2.0.2`
とりあえず、このコマンド打てばきっと解決するよ〜ってのを残しておこうと思います!
もし似たようなエラーが出ている方がいたら参考にしてください!
(ターミナルあまり使わないからかなり焦った。笑)
HomeBrewやrbenvのインストールがまだの人はこちらを参考にしてください!
[MacにHomeBrew,rbenv,bundlerをインストールする]
(https://qiita.com/shinkuFencer/items/3679cfd966f6a61ccd1b)
#原因
このエラーの原因はrubyが指定しているパスが違うからのようです!
実際にパスを調べると
$ which ruby
/usr/bin/ruby
/usr/bin
の配下に出ると思います。
しかし、本当は/Users/ユーザー名/.rbenv/shims
の配下にいる必要があります。
なのでパスを指定することで解決します。
#解決方法
rbenvにパスを通す必要があるので設定ファイルの/.bash_profile
にパスを指定する処理を書きます。
処理を書くときに/.bash_profile
のviエディタを開いて
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
を書き加えるのですが、僕はviエディタの使い方がいまいち分かっていないので
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
ターミナル上に一つずつechoコマンドで書きました。
viエディタも使えるようにしたほうが良いと思いますが、ひとまずこれをコピペしてください!笑
次に以下のコマンドでシェルを再起動します。
$ exec $SHELL -l
これでrubyのパスを調べてみると
/Users/ユーザー名/.rbenv/shims/ruby
となっていると思うので、パスの指定は成功です!
あとは、以下のようにインストール、rebenvをリフレッシュをするだけです。
$ gem install bundler
$ rbenv rehash
以上でエラーは解決したので、CocoaPodsのインストールを行ってください!
インストールの仕方はこちらの記事を参考にしてください!
[bundler で cocoapods そのもののバージョン管理をする]
(https://qiita.com/shinkuFencer/items/821501cd0c5c460c1fea)
#参考にした記事
[rbenv+ruby-buildを使ってMacにRubyの環境を構築する]
(https://qiita.com/1000ch/items/a61e65fe82d8bdea840e)
[シェルを再起動させる簡単な方法]
(https://qiita.com/yusabana/items/c4de582c6f85a42817d8)
#さいごに
個人でアプリ開発していると自分だけがわかっていればいいから、と思って環境構築なんてあまり詳しくやってこなかったので躓いて解決するのにだいぶ時間がかかってしまいました。
もし同じところで困っている人の役に立てたら幸いです!
もし間違っているところなどありましたら教えていただけると嬉しいです!