MacへのcocoapodsインストールでpermissionErrorを解決する手順

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周りのツールをインストールする。

xcode-select --install

いきなり13時間とかぶっ飛んだ時間が表示されるけど、実質20分くらいでインストール完了。

homebrewをインストール

次にhomebrewのインストール。

次のコマンドを実行。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

インストール完了したら、念の為確認。

which brew
/usr/local/bin/brew

ユーザーローカルディレクトリにインストールされましたね。

macが用意していないwgetとbrewとruby-buildをインストール

以下のコマンドを順番に叩けば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

rubyのインストール

そもそも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インストール完了です。

コメントを残す

メールアドレスが公開されることはありません。