この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
こんにちは、たろちゃんです。
MacOSXではUnix由来のツールが最初から利用できますが、新しいコマンドやサーバを使いたい時などは自分でインストールをするか、パッケージ管理システムを使う必要があります。僕は元々Finkを使っていたのですが、カスタマイズされたパッケージを使いたいという事から、MacPortsを使うようになりました。
さて、FinkにしてもMacPortsにしてもインストールしたパッケージを最新版に保つ必要があります。なぜならインストール後に不具合やセキュリティホールなどが見つかった場合などにアップデートが必須だからです。
今回はMacPortsを例にとって最新版にアップデートする方法を紹介します。
まずは、MacPorts自身のアップデートを行います。
$ sudo port selfupdate
Password:
MacPorts base version 1.710 installed
Downloaded MacPorts base version 1.710
The MacPorts installation is not outdated so it was not updated
今回はすでに最新版になっていたようですので、MacPorts自身のアップデートは行われませんでした。しかしながら、このコマンドで sync という作業が実行されており、Portsのツリーが更新されます。
次に、アップデートが必要なパッケージがあるかを確認します。
$ port outdated
The following installed ports are outdated:
automake 1.10.2_0 < 1.11_0
git-core 1.6.2.4_0 < 1.6.3.1_0
glib2 2.20.1_0 < 2.20.1_1
gsed 4.1.5_4 < 4.2_0
ImageMagick 6.5.1-0_0 < 6.5.2-4_1
libtheora 1.0_0 < 1.0_0
mysql5 5.0.77_2 < 5.0.81_0
pcre 7.8_3 < 7.9_0
rsync 3.0.5_0 < 3.0.6_0
sqlite3 3.6.13_0 < 3.6.14.1_0
subversion 1.6.1_0 < 1.6.2_0
subversion-perlbindings 1.6.1_0 < 1.6.2_0
vim 7.2.160_0 < 7.2.182_0
ここではautomakeやgit-coreなどが古いパッケージという事になります。
通常のアップデートでは一つもしくは複数のパッケージを選択して行います。
$ sudo port upgrade automake git-core
ですが、以下のコマンドで古いパッケージを一括してアップデートを行う事ができます。
$ sudo port upgrade outdated
Password
---> Fetching automake
---> Attempting to fetch automake-1.11.tar.bz2 from ftp://ftp.dti.ad.jp/pub/GNU/automake
---> Verifying checksum(s) for automake
---> Extracting automake
---> Configuring automake
---> Building automake
---> Staging automake into destroot
---> Deactivating automake @1.10.2_0
---> Installing automake @1.11_0
---> Activating automake @1.11_0
---> Cleaning automake
---> Fetching rsync
...
なお、インストール時に設定したオプションは引き継がれますので、安心してアップデートを行う事ができます。