Mojaveがきた。MacPortsは?
インストールされているものはそのままでも動くかも知れませんが,OSをアップグレードしたら,MacPortsも入れ直しです。Mojave用のbuildbotがコンパイルして,徐々にバイナリが揃ってきています。バイナリがないものは,自分のMacでコンパイルする必要があるので時間がかかります。
MacPortsのMojave用バイナリの提供には最低ひと月はかかるとのこと。それまでは自分のMacでコンパイルするので時間がかかる https://t.co/FP1115Np0l
— Takeshi Enomoto (@takeshi_enomoto) 2018年9月30日
Mojaveにアップデートしてしまったら
port
コマンドは使えなくなります。Migrationに従って,入れ直しましょう。少し補足します。
- Xcodeが更新されているか確認
- Command-line Toolsを入れる。
$ sudo xcode-select --install
- MacPortsのソースをダウンロードしてコンパイルしてインストール
-
restore_ports.tcl
は現在インストールされているものを再現しようとします。不要なものはアンインストールしておきましょう。依存関係がないものを一気にアンインストールするには$ sudo port -u uninstall
とします。 - 後はMigrationに従います。ccacheをインストールしていた場合は,先にインストールすると良いでしょう。
gccがコンパイルできない
私の場合はlibgcc7
(ticket/57196)やlibgcc8
がコンパイルできませんでした。
数日後別のマシンでは問題ありませんでしたが,記録として残しておきます。
aquatermやlibgcc8でエラーが出た。システムヘッダの場所の変更が原因とのこと。/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkgを入れたらlibgcc8のコンパイルはいけそう https://t.co/5EDHURTSy2
— Takeshi Enomoto (@takeshi_enomoto) 2018年9月30日
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のバグを発見したり,改善・解決方法が見つかったりしたら,チケットで報告してください。