MacPortsの使い方まとめ

2011年10月22日

macbookair

MacPorts の使い方をまとめました

目次

  1. MacPortsをインストールする
  2. MacPortsをアップデートする
  3. インストールしたいパッケージを検索する
  4. パッケージの依存関係を表示する
  5. パッケージの詳細を表示する
  6. パッケージをインストールする
  7. インストールされているパッケージを表示する
  8. パッケージを削除する
  9. アップデート可能なパッケージの一覧を表示する
  10. パッケージを個別でアップデートする
  11. アップデート可能なパッケージをすべて更新する
  12. パッケージを無効にする
  13. パッケージを有効にする
  14. オプションをつけてパッケージをインストールする
  15. オプションをつけてインストールしたパッケージを変更する

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

-技術ブログ
-