新しいMacにするとM1チップと呼ばれる新しいCPUが入っています。
こちらの記事では、CocoaPodsのインストールを試みたがpermissionsエラーになってしまっている人向けの記事です。手っ取り早く先に進みたい方にお役立ちいただけます。
手っ取り早くCocoaPodsをインストールして先を急ぎたい人向けの対応方法です。
私の環境の前提条件
- MacOS Monterey
- チップApple M1 Pro
- 以前のMacからタイムマシーンで環境構築
この状態から、cocoapodsのインストールを試みました。
エラー内容
下記を実行してCocoaPodsをインストールしようとしました。
$ sudo gem install -n /usr/local/bin cocoapods
すると下記のエラーが出てしまいました。
You don’t have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory.
書き込み権限が無いよというもの。
原因調査と対応方法
原因としては、以前までのintel製のメモリとM1チップ(Arm製)のアーキテクチャ特性のせいで動くものと動かないものがあります。
M1チップはIntel製ではなく、Arm製のアーキテクチャを採用した。
そのため、ターミナルからのコマンドがArm製準拠になるイメージです。
対応方法
本来であれば、Arm用のHomebrewがあるので、そこからインストールし直して、全てArm準拠の環境を作り上げるのがあるべきです。
でもそんな構築には時間が取られそうで困る!
そう言った場合には、ターミナルを右クリックで、Rosetta2と呼ばれるアーキテクチャ変換技術を利用しましょう!
手っ取り早く、Armでも動くように変換してくれます。
Finderのターミナルアイコンを右クリック>情報を見るを選択してください。
Rosettaを使用して開く選択してください。
ターミナルを再起動後、再度gem installを実行すれば問題ないはずです。
Arm向けの環境を構築しようとすると、HomebrewやrbenvなどからArm準拠にしていかなければなので手間です。
私も調査する中で、そっち系の記事を多くみて、再構築しようか悩みました。
とは言え時間もないですし、現状別に変換で困らないので一旦Rosetta頼みで乗り切りました。
M1でCocoaPodsをインストールまとめ
タイムマシーンで以前の環境をそのまま持ってきた方で、環境を構築し直すのが面倒の方はさっくりRosettaの変換に頼ってしまうのもありだと思います。
もちろん内容によっては根本的にArm準拠が必要なシチュエーションもあると思いますので、理想は再構築がいいように思います。
ターミナルを、Arm用、旧Intel用に準備しておくということもできるようなので、別の機会にやってみようと思います。
キャンペーン中!インストール不要の企業データベース検索サイト【BIZMAPS】
コメント