【MacPorts】Permission deniedでインストール失敗した時の復旧手順(/opt/local権限修正)
結論
MacPortsで以下のエラーが出た場合:
Permission denied
Failed to fetch archive
👉 /opt/local の所有権が壊れているのが原因
以下で復旧できます:
sudo chown -R root:admin /opt/local
sudo chmod -R g+w /opt/local
発生したエラー
Error: Failed to fetch archive
Permission denied
例:
Failed to open file /opt/local/var/macports/incoming/... for writing: Permission denied
原因
MacPortsは /opt/local 配下を使いますが、
- sudoなしで実行
- 所有権の不整合
- Apple Silicon環境
などで書き込み権限が壊れることがあります。
確認方法
ls -ld /opt/local
ls -ld /opt/local/var/macports/incoming
👉 所有者がバラバラならアウト
復旧手順
① 所有権修復
sudo chown -R root:admin /opt/local
② 書き込み権限修正
sudo chmod -R g+w /opt/local
③ キャッシュフォルダ確認
sudo mkdir -p /opt/local/var/macports/incoming
sudo chmod 775 /opt/local/var/macports/incoming
④ MacPorts更新
sudo port selfupdate
⑤ 再インストール
sudo port clean --all 対象パッケージ
sudo port install 対象パッケージ
診断(おすすめ)
port diagnose
👉 問題を一覧表示できる
注意点
found dylibs in /usr/local/lib
👉 これはMacPortsと競合する可能性あり
ハマりポイント
- sudoなしでport実行
- /opt/localの所有権崩壊
- /usr/local/libとの競合
- Apple Siliconでの環境差
まとめ
👉 MacPortsでPermission deniedが出たら
sudo chown -R root:admin /opt/local
👉 まずこれを疑う