Macでのflutter開発で必要となるcocoapods。
インストールする時にエラーではまったので、備忘録として残します。
この記事の目次
インストールコマンド実行でpermission eeror
インストールしようと早速コマンド実行。
sudo gem install cocoapods
するとしばらくたってから。。。
Fetching rexml-3.2.5.gem
Fetching nanaimo-0.3.0.gem
Fetching colored2-3.1.2.gem
Fetching claide-1.1.0.gem
Fetching atomos-0.1.3.gem
Fetching ruby-macho-2.5.1.gem
Fetching xcodeproj-1.21.0.gem
Fetching nap-1.1.0.gem
Fetching molinillo-0.8.0.gem
Fetching gh_inspector-1.1.3.gem
Fetching fourflusher-2.3.1.gem
Fetching escape-0.0.4.gem
Fetching cocoapods-try-1.2.0.gem
Fetching netrc-0.11.0.gem
Fetching cocoapods-trunk-1.6.0.gem
Fetching cocoapods-search-1.0.1.gem
Fetching cocoapods-plugins-1.0.0.gem
Fetching cocoapods-downloader-1.6.3.gem
Fetching cocoapods-deintegrate-1.0.5.gem
Fetching ffi-1.15.5.gem
Fetching ethon-0.15.0.gem
Fetching typhoeus-1.4.0.gem
Fetching public_suffix-4.0.7.gem
Fetching fuzzy_match-2.0.4.gem
Fetching concurrent-ruby-1.1.10.gem
Fetching json-2.6.2.gem
Fetching httpclient-2.8.3.gem
Fetching algoliasearch-1.27.5.gem
Fetching addressable-2.8.0.gem
Fetching zeitwerk-2.6.0.gem
Fetching tzinfo-2.0.4.gem
Fetching minitest-5.15.0.gem
Fetching cocoapods-1.11.3.gem
Fetching i18n-1.10.0.gem
Fetching activesupport-6.1.6.gem
Fetching cocoapods-core-1.11.3.gem
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory.
と、エラー発生!
原因を調査
原因はFilePermissionErrorと書いてあるとおり、フォルダへのアクセス権限エラー。
Mac標準でインストールされているrubyはシステムフォルダ(/System/)にあり、一般ユーザーには権限がないため。
システムフォルダにあると開発時に不便なので、標準とは別にrubyインストールしてそっち使おうって事。
参考にしたページはこちらのサイト様。
解決の手順
まずはなにはともあれhomebrewが必要。
今後もプロジェクトごとにrubyのバージョン違いとか発生しそうなら、なおのことインストールすべし。
Rubyなど開発者ツールを色々ダウンロードするにはHomebrewが必要。
ただHomerbrewもすぐにインストールできるわけじゃなく、手順がある。
次のコマンドでまずはもろもろxcode周りのツールをインストールする。
xcode-select --install
いきなり13時間とかぶっ飛んだ時間が表示されるけど、実質20分くらいでインストール完了。
次にhomebrewのインストール。
次のコマンドを実行。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
インストール完了したら、念の為確認。
which brew
/usr/local/bin/brew
ユーザーローカルディレクトリにインストールされましたね。
以下のコマンドを順番に叩けばOK。
brew install wget
brew install rbenv
brew install ruby-build
続いてrbenvでコマンドたたけるようにするため、bashにパスを通す。
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
んで、bashファイルをもう一度読み込ませればrbenvコマンドたたけるようになります。
source ~/.bash_profile
そもそもmacにインストールされているrubyはバージョン2.6.8。
cocoapodsがサポートしているrubyのバージョンが違うので、ruby自体をインストールしてきます。
まずはインストールできるrubyのバージョンを確認。
rbenv install --list
↓結果
2.6.10
2.7.6
3.0.4
3.1.2
jruby-9.3.4.0
mruby-3.0.0
rbx-5.0
truffleruby-22.1.0
truffleruby+graalvm-22.1.0
3.1.2が最新バージョンなので、このrubyをrbenvでインストール。
2.7.6
3.0.4
3.1.2
jruby-9.3.4.0
mruby-3.0.0
rbx-5.0
truffleruby-22.1.0
truffleruby+graalvm-22.1.0
3.1.2が最新バージョンなので、このrubyをインストール。
rbenv install 3.1.2
インストール終わったらrbenvをリフレッシュして、デフォルトで使うrubyのバージョンを今インストールしたのに置き換え。
rbenv rehash
rbenv global 3.1.2
rubyのバージョンが変わったことを確認。
ruby -v
↓結果
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21
うん、切り替わった!
これでcocoapodsのインストールができるはず。。。
sudo gem install cocoapods
permissionエラー出ずに通った!
お疲れ様でした、これでcocoapodsインストール完了です。