マジで急に使えなくなりました。
ピンポイントのエラー解消法はいろんな記事に載っているのですが、綺麗に直ったものが意外となかったので、同じ現象が起きた人用にまとめたいと思います。
開発環境(前提条件)
・Xcode14.0
・Swift5
・CocoaPods
エラー内容
Pods にアップデートあるかなーと思ってドキワクで pod update を試したところ、急に以下のようなエラーを吐かれてしまいました。
1 2 3 |
/Library/Ruby/Site/2.6.0/rubygems.rb:265:in `find_spec_for_exe': can't find gem cocoapods (>= 0.a) with executable pod (Gem::GemNotFoundException) from /Library/Ruby/Site/2.6.0/rubygems.rb:284:in `activate_bin_path' from /usr/local/bin/pod:23:in `<main>' |
1週間前まで使えてたのに…と思い、試しに pod install を行ったところ、同じエラー内容が発生。
ビビり散らかしてテキトーにバージョンを確認したところ…
1 2 3 4 5 6 |
% pod --version /* 上記コマンドを実行すると... */ /Library/Ruby/Site/2.6.0/rubygems.rb:265:in `find_spec_for_exe': can't find gem cocoapods (>= 0.a) with executable pod (Gem::GemNotFoundException) from /Library/Ruby/Site/2.6.0/rubygems.rb:284:in `activate_bin_path' from /usr/local/bin/pod:23:in `<main>' |
うひょー (ノ^o^)ノ
同じエラーだし、なぜか pod が使えんくなってます。
身に覚えがないし怖くなったんで、無いんならインストールすりゃええんじゃ!と思い、
sudo gem install cocoapods を行ってやったところ
1 2 3 4 5 6 7 8 |
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. /Library/Ruby/Site/2.6.0/rubygems/installer.rb:712:in `verify_gem_home' /Library/Ruby/Site/2.6.0/rubygems/installer.rb:902:in `pre_install_checks' . . . /usr/bin/gem:21:in `<main>' |
詰む詰む。└( ^ω^ )」
修正方法
エラー内容には You don’t have write permissions for the xxxxx と書かれているので、「あなたには xxxxx へのアクセス権ないよ」言われてます。
先週はいつも通りアップデートできていたので、いつ剥奪されたんや…って感じです。笑
そこ追求するほど探究心ないので、僕は修正できる方法を載せますが、有識者や経験者の方いたらぜひ教えてください。
一度アンインストールをする
最初は gem をアンインストールしていなかったのですが、僕は当記事のエラーを解決するために時間を要したので、一度スッキリさせようと思って以下のコマンドを実行しました。
1 2 3 |
% sudo gem uninstall --all /* yNで答える形式 */ |
このあとに同じ手順を行うと解決できたので、ネットをぐるぐる巡っている人は試してみるのもいいと思います。
もちろん自己責任で。
rbenv をインストール
インストールできるバージョンを調べて、使いたいバージョンを指定してインストールします。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
% rbenv install -l /* 上記コマンドで以下のようなバージョンが表示されます */ 2.6.10 2.7.6 3.0.4 3.1.2 jruby-9.3.8.0 mruby-3.1.0 picoruby-3.0.0 rbx-5.0 truffleruby-22.2.0 truffleruby+graalvm-22.2.0 |
僕は執筆時の最新バージョンである 3.1.2 使います。
以下のコマンドを順に入力してください。
1 2 3 4 5 |
% rbenv install 3.1.2 % rbenv global 3.1.2 % rbenv rehash |
どういう処理か調べながら作業を行なっていますが、2行目の rbenv global は、システム全体で使用する Ruby のバージョンを指定するためのコマンドで、最後の rbenv rehash は、こちらの記事によると「明示的に記載しなくても gem install のタイミングで行われる」とのこと。
先ほども言いましたが、僕は当記事のエラーを解決するために時間を要したので、念の為に手動でも行いました。
パスを通す
パスを通して、設定されたか確認します。
1 2 3 4 5 6 7 8 |
% export PATH="$HOME/.rbenv/versions/3.1.2/bin:$PATH" % rbenv versions /* 上記コマンドで設定されているバージョンを確認できます */ system * 3.1.2 (set by /Users/@@@@@/.rbenv/version) |
パスの @@@@@ はユーザー名が表記されています。
最終確認
シェルを再起動後に ruby と gem のパスを確認し、以下のように表示されていたら OK です。
1 2 3 4 5 6 7 |
% which ruby /Users/@@@@@/.rbenv/versions/3.1.2/bin/ruby % which gem /Users/@@@@@/.rbenv/versions/3.1.2/bin/gem |
これで gem install cocoapods を行うことで、CocoaPods がインストールできるようになってるはずです。
さいごに
解決するまでに半日以上は使いました。笑
つーかアクセス権はいつの間に剥奪されたんじゃ…
コメント