MacPortsのまとめ

毎回使おうとするたびに「コマンド何だっけ?」→googleとなるので、まとめる。

よく使うコマンド

レポジトリから最新情報を取得(-vで詳細出力)
sudo port -v selfupdate
ソフトウェアがMacPortsでインストール可能か確認
port search php5
ソフトウェアの詳細情報を確認
port info php5
インストールオプションの詳細を確認
port variants php5
インストールする(+でインストールオプションの指定)
sudo port -v install php5 +apache2 +mysql5
ビルドに失敗したら
sudo port clean php5

で作業ディレクトリをクリアする

以下、勉強メモ

参考:MacPorts Guide

MacPortsって何?
  • オープンソースのソフトウェアのコンパイル、インストール、管理が簡単に出来るシステム
  • 一つのコマンドでダウンロード、コンパイル、アプリケーションとライブラリのインストールが行なえる
  • 依存するソフトウェアも一緒にインストールしてくれる
  • アンインストールやアップグレードも出来る
  • インストールされたソフトウェアは、OSやベンダーのソフトウェアと衝突しない。(/opt/local/にインストールされる)
  • Mac OSXで開発されている。BSDUnixなOSで使える
selfupdate : 自己更新

portツリーの更新(MacPortsポートレポジトリの内容と同期させる)
このときMacPorts本体も最新にアップグレードされる。

sudo port -v selfupdate

vオプションで詳しく出力(verboseのv)。もっと詳しく知りたい場合は-dオプション(debugのd)。

  • sudoを忘れないようにする!

※syncはportツリーの更新のみ行ない、MacPortsの更新はしない。Mac OSX以外のOSでselfupdateの代わりに使用する。OSXの場合はselfupdateが推奨される。

search : ポートの検索。

部分文字列でもマッチする

port search vim 
info : ポートの説明やメンテナー等の表示
port info vim
variants : バリアント(インストール時のオプション)の表示
port variants vim
install : インストールする
sudo port -v install vim

sudoを忘れないようにする!-vオプションで詳しく出力
バリアントを指定するには、

sudo port install fetchmail +ssl
uninstall : アンインストールする
port uninstall vim

ただしそのポートが他のポートから依存されている場合は、削除されない。

clean : ビルドに使われるファイルの削除
  • --work 作業ファイルの削除(オプションを省いたときのデフォルト)
  • --dist 配布ファイルの削除(tarball等)
  • --archive archiveファイルの削除
  • --all 上の三つを削除
port clean --all vim
installed : インストール済みポートのバージョン、バリアント、状態を表示
port installed vim

ポート名を省略するとインストールしたもの全て表示

contents : インストールされたポートの各ファイルのパスを表示
port contents vim
deps : そのポートが依存するポートを表示
port deps vim
dependents : そのポートに依存しているポートを表示
port dependents openssl
outdated : アップデート可能なポートを表示
port outdated

※selfupdate後に使用しなければ意味がない

upgrade : ポートとその依存ファイルをアップグレードする。
sudo upgrade vim

古いバージョンはアンインストールされず、非アクティブ化される。
古いバージョンをアンインストールするには、-uオプションを付ける。

MacPortsのポートファイルとは

  • ポートの名称、バージョン、説明、メンテナの名前、配布元、依存、バリアント、configure引数、と言ったものが書かれている
  • TCLというスクリプト言語が使われている
フェイズ:
  1. Fetch
  2. Extract
  3. Patch パッチファイル(diff等で作成されたもの)の適用
  4. Configure
  5. Build ※一般で言うmakeのこと
  6. Destroot ※一般で言うmake installのこと