MojaveでMacPorts


Mojaveがきた。MacPortsは?

インストールされているものはそのままでも動くかも知れませんが,OSをアップグレードしたら,MacPortsも入れ直しです。Mojave用のbuildbotがコンパイルして,徐々にバイナリが揃ってきています。バイナリがないものは,自分のMacでコンパイルする必要があるので時間がかかります。

Mojaveにアップデートしてしまったら

portコマンドは使えなくなります。Migrationに従って,入れ直しましょう。少し補足します。

  1. Xcodeが更新されているか確認
  2. Command-line Toolsを入れる。
    $ sudo xcode-select --install
  3. MacPortsのソースをダウンロードしてコンパイルしてインストール
  4. restore_ports.tclは現在インストールされているものを再現しようとします。不要なものはアンインストールしておきましょう。依存関係がないものを一気にアンインストールするには$ sudo port -u uninstallとします。
  5. 後はMigrationに従います。ccacheをインストールしていた場合は,先にインストールすると良いでしょう。

gccがコンパイルできない

私の場合はlibgcc7ticket/57196)やlibgcc8がコンパイルできませんでした。
数日後別のマシンでは問題ありませんでしたが,記録として残しておきます。

APFSとの相性が悪いので,1スレッドでコンパイルせよというコメントもありましたが,うまくいきませんでした。

Compiling GCC 8 on macOS Mojaveに従って,システムヘッダをインストールしたら,gcc関連のportsのコンパイルが通りました。

$ open /Library/Developer/CommandLineTools/Packages/

macOS_SDK_headers_for_macOS_10.14.pkgをダブルクリックしてインストールします。

おわりに

restore_ports.tclでうまくいかない場合は,variantなどを見直したり,myports.txtから削除したりして対処しました。個別にインストールしたらうまくいったものもありました。High Sierraで使っていたものは,ほぼ再現できました。

不具合に遭遇したら,ProblemHotlistやMojaveProblemsを確認してくだい。困ったときはメーリングリストで相談してください(英語)。Portfileのバグを発見したり,改善・解決方法が見つかったりしたら,チケットで報告してください。