MacPorts の使い方をまとめました
目次
- MacPortsをインストールする
- MacPortsをアップデートする
- インストールしたいパッケージを検索する
- パッケージの依存関係を表示する
- パッケージの詳細を表示する
- パッケージをインストールする
- インストールされているパッケージを表示する
- パッケージを削除する
- アップデート可能なパッケージの一覧を表示する
- パッケージを個別でアップデートする
- アップデート可能なパッケージをすべて更新する
- パッケージを無効にする
- パッケージを有効にする
- オプションをつけてパッケージをインストールする
- オプションをつけてインストールしたパッケージを変更する
MacPortsをインストールする
MacPortsはapt-getやyumのようなパッケージ管理ツールです。インストールするにはXcodeが必要です。事前にインストールをしておきます。
MacPortsをダウンロード
下記から最新版をダウンロード。最新版は一番下にあります。本記事作成時点の最新版は「MacPorts-2.0.3.tar.gz」です。
http://distfiles.macports.org/MacPorts/
MacPortsのインストール
ダウンロードしたアーカイブを解凍すると「install.sh」があるので実行します。
$ sudo sh install.sh
MacPortsは/opt/local/以下にインストールされます。ホームディレクトリの.bash_profileに下記のように記述してパスを通します。
$ vi ~/.bash_profile
PATH=/opt/local/bin:/opt/local/sbin:$PATH
MANPATH=/opt/local/man:$MANPATH
export PATH
export MANPATH
MacPortsをアップデートする
$ sudo port selfupdate
MacPorts本体の更新とパッケージリストの更新を同時に行います。MacPortsを使う前に実行する癖をつけるといいです。
インストールしたいパッケージを検索する
$ sudo port search パッケージ名
パッケージ名をあいまい検索することができます。例えば、PHPのAPCを探す場合、私は下記のように探します。
$ sudo port search apc
-(略)-
php5-apc @3.1.9 (php, devel)
-(略)-
たくさん表示されることが多いので出力をgrepしたりします。
パッケージの依存関係を表示する
$ sudo port deps パッケージ名
port search して表示されたパッケージ名を指定します。依存関係のあるパッケージは勝手にインストールされます。
パッケージの詳細を表示する
$ sudo port info パッケージ名
port search して表示されたパッケージ名を指定します。様々な情報をまとめて確認することができます。
パッケージをインストールする
$ sudo port install パッケージ名
port search して表示されたパッケージ名を指定します。
インストールされているパッケージを表示する
$ sudo port installed (パッケージ名)
portからインストールされたパッケージの一覧が表示されます。オプションの有無や有効無効も確認できます。パッケージ名を指定するとそのパッケージのみ表示されます。
パッケージを削除する
$ sudo port uninstall パッケージ名
依存関係があって削除できない場合は削除されません。先に依存関係のあるパッケージを削除してください。
アップデート可能なパッケージの一覧を表示する
$ sudo port outdated
パッケージを個別でアップデートする
$ sudo port -u upgrade パッケージ名
port outdatedで表示されたパッケージ名を指定します。-uオプションをつけると古いバージョンを自動で削除します。
アップデート可能なパッケージをすべて更新する
$ sudo port -u upgrade installed
-uオプションをつけると古いバージョンを自動で削除します。
パッケージを無効にする
$ sudo port deactivate パッケージ名
port installedした時に(active)が表示されていなければ無効になっています。パッケージをアップデートしたとき、-uオプションを付けなければ古いバージョンは無効になって残ります。
パッケージを有効にする
$ sudo port activate パッケージ名
port installedした時に(active)が表示されていなければ無効になっています。
オプションをつけてパッケージをインストールする
configureの時にオプションを指定するように、パッケージにオプションあるときはインストール時に指定することができます。
パッケージのもつオプションを表示する
$ sudo port variants パッケージ名
オプションをつけてインストールする
$ sudo port variants パッケージ名 +オプション名 +オプション名
php5の例
下記の例では、php5にapache2とpearのvariantsを追加しています。
$ sudo port variants php5
(略)
[+]apache2: Add Apache 2.2 web server module
* conflicts with apache no_web
(略)
pear: Add PEAR
(略)
$ sudo port install php5 +apache2 +pear
オプションをつけてインストールしたパッケージを変更する
variantsをつけてインストールしたパッケージにて、variantsを変更したい場合は下記の方法で変更できます。
ビルドしたディレクトリを削除する
$ sudo port clean パッケージ名
別オプションを指定して、パッケージをインストール
$ sudo port install パッケージ名 +オプション名 +オプション名
同じパッケージが別オプションでインストールされていることを確認
$ sudo port installed パッケージ名
パッケージを一時的に無効にする
$ sudo port deactivate パッケージ名
新しくビルドしたパッケージを有効にする
$ sudo port activate 新しいパッケージ名とオプションの組み合わせ
port installedで表示されるものを指定する。
古いパッケージとオプションの組み合わせを削除する
$ sudo port uninstall 古いパッケージ名とオプションの組み合わせ
port installedで表示されるものを指定する。
php5での例
+apache2 +pear オプションでインストールされている状態で、+apache2 オプションのみで再ビルドしたいときの例です。
$ sudo port clean php5
---> Cleaning php5
$ sudo port install php5 +apache2
$ sudo port installed php5
The following ports are currently installed:
php5 @5.3.8_0+apache2+pear
php5 @5.3.8_0+apache2 (active)
$ sudo port deactivate php5
$ sudo port activate php5 @5.3.8_0+apache2
$ sudo port uninstall php5 @5.3.8_0+apache2+pear