Posted at

OS X El Capitan にアップデートした際に MacPorts を動くようにする

More than 3 years have passed since last update.

sudo port selfupdate でエラーが発生する

$ sudo port selfupdate

Error: Current platform "darwin 15" does not match expected platform "darwin 14"
Error: If you upgraded your OS, please follow the migration instructions:
OS platform mismatch
while executing
"mportinit ui_options global_options global_variations"
Error: /opt/local/bin/port: Failed to initialize MacPorts, OS platform mismatch



Migration – MacPorts

Xcode の最新版インストール

Xcode and the Xcode Command Line Tools のインストール

$ xcode-select --install

xcode-select: note: install requested for command line developer tools

Xcode license に同意する

$ sudo xcodebuild -license

Enter -> space space space ... -> agree


$ xcode-select --install

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

MacPorts の最新版インストール

MacPorts のインストール

下記の OS X 10.11 El Capitan を選択。

The MacPorts Project -- Download & Installation


$ sudo port selfupdate

---> Updating MacPorts base sources using rsync
MacPorts base version 2.3.4 installed,
MacPorts base version 2.3.4 downloaded.
---> Updating the ports tree
---> MacPorts base is already the latest version

The ports tree has been updated. To upgrade your installed ports, you should run
port upgrade outdated


$ sudo port upgrade outdated のように実行するとパッケージがアップグレードされても古いバージョンが残ってしまうが、$ sudo port -u upgrade outdated のように -u のオプションを付けて実行すると古いバージョンが残らない。


古い deactive されたバージョンを削除したい場合は $ sudo port uninstall inactive を実行。

$ sudo port upgrade outdated

Error: dyld-headers is obsolete; please uninstall it.
Error: org.macports.configure for port dyld-headers returned: obsolete port
Please see the log file for port dyld-headers for details:
Error: Unable to upgrade port: 1
To report a bug, follow the instructions in the guide:

( 自分の場合は ) 上記のエラーが出たので指示通り dyld-headers をアンインストールする。

$ sudo port uninstall dyld-headers

---> Deactivating dyld-headers @239.3_0
---> Cleaning dyld-headers
---> Uninstalling dyld-headers @239.3_0
---> Cleaning dyld-headers


$ sudo port upgrade outdated

---> Updating database of binaries
---> Scanning binaries for linking errors
---> No broken files found.

ports が全てアップデートされているか確認

$ port outdated

No installed ports are outdated.