サーバーにしているMac miniをMac OSX Yosemite → Mac OSX El Capitanにアップグレードしました。
MacPortsを使おうかとインストールしていたのですが、アップグレードで動かなくなったので使えるようにしたときのメモ。
再インストールだったしマイグレーションもする必要がない環境だったので、通常インストールとほぼ同じ手順になりました。

前提

  • Mac OSX : El Capitan
  • MacPorts : 2.3.4
  • Xcode : 7.2.1

Mac OSX El Capitanへのアップグレードが終わって、MacPortsを使おうとしたらエラー。

$ sudo port info php
Error: Current platform "darwin 15" does not match expected platform "darwin 14"
Error: If you upgraded your OS, please follow the migration instructions: https://trac.macports.org/wiki/Migration
OS platform mismatch
    while executing
"mportinit ui_options global_options global_variations"
Error: /opt/local/bin/port: Failed to initialize MacPorts, OS platform mismatch

今回はphpの情報を見ようとしてコマンドを叩いていたけど、他のコマンドでもこのエラーになりました。
OSXとMacPortsのバージョンがあっていないようなので、再インストールしないといけないようです。

Xcodeのインストール

MacPortsを使うために、Xcodeもインストールしないとうまくいかないみたいなので先にXcodeを入れます。
Yosemiteの時どっちも入れていましたが、今回のためにMacPortsもXcodeも再インストールしました。

App StoreでXcodeをインストールします。

Xcode on the Mac App Store

重たいので結構時間がかかります。
インストールできたら、Xcodeを起動して、利用規約に同意しておきます。(インストールの続きみたいなことがありました。)

MacPortsのインストール

以下の情報を参考にさせてもらって、MacPortsを入れ直しました。

■参考サイト
OS X「El Capitan」対応の「MacPorts 2.3.4」 – Qiita

最初Xcodeを再インストールせずにMacPortsを入れてみたのですが、アップグレードコマンドを実行するどXcodeがらみのワーニングが大量に出ていました。
Xcodeを入れ直して、もう一度アップグレードしました。

開発で使っていたら、使っているパッケージのバージョンなどそのままにしておきたいなどあると思います。MacPorts本体だけアップデートして、利用中のパッケージは現状のままにしておくためにはMigration(Migration – MacPorts)の手順に従ってマイグレーションするみたいです。

■参考サイト
OS X El CapitanにアップグレードしたのでMacPortsを入れ直し

MacPortsの基本コマンド

MacPorts本体のアップデート

$ sudo port selfupdate

パッケージのインストール

$ sudo port install パッケージ名

インストールパッケージのアップデート確認

$ port outdated

パッケージの個別アップデート

$ sudo port upgrade パッケージ名

パッケージを全てアップデート

$ sudo port upgrade installed

MacPortsで「PHP+Apache+MySQL」の環境を作ったので、また別の記事に手順はまとめておきます。

おわり