portupgrade


Last Update: 2005/01/04
64376 th Visitor

portupgradeのインストール

portsは非常に便利なシステムですが、アプリケーションのアップグレードに関しては弱い部分があります。
それを補ってくれるのがportupgradeです。
portupgradeはportsを管理することが可能で、どのアプリケーションが新しくなっているかを調べたりアプリケーションをアップグレードできます。
また、portsのインストールをより簡単に行うことが可能です。

portupgradeのインストールはportsから行います。

> cd /usr/ports/sysutils/portupgrade
> su
# make install clean

これでインストールは完了です。
このときOpenSSLのバージョンがFreeBSDのベースシステムとportsで異なる場合に(多くはportsの方が新しい)「OpenSSLをアップグレードするかどちらのOpenSSLを使うか明示してください」というエラーメッセージが表示されます。
この場合はシステムを更新(最新のreleaseに更新する)するか、portsを選択(make WITH_OPENSSL_PORT=yes install clean)をしてください。

portupgradeをインストールすることによって、portsdb、pkgdb、portinstall、portupgrade、pkg_deinstall、portversion、portsclean、portcvsweb が使用可能になります。

詳細は以下を参照してもらえば良いですが、具体的な使い方としてはcvsupでportsを最新にした後にportsdb、その後portversionで新しくなっているpackageをリストアップしportupgradeでアップグレード、最後にportcleanで掃除するといった流れです。

# cvsup -g /etc/ports-supfile
# portsdb -Uu
# portversion -v

とし、アップグレードしたいものを

# portupgrade -r hogehoge

とすれば良いでしょう。

portsdb

インストールが完了しコマンドを使えるようにしたら、最初にportsdbを実行します。
portsdbはportupgradeで使うportsのINDEXファイルを更新したり、そのINDEXを元にバイナリデータベースを作成、更新するツールです。

# portsdb -Uu

実行すると-UでINDEXを更新、-uでINDEX.dbとINDEX.rboというデータベースを更新します。
初回のportsdbはかなり時間がかかりますので、お茶の用意をお勧めします。
portupgradeのコマンドはportsdbで作成した情報を元に行われますので、cvsupでportsを最新にしたときに portsdb -Uu も実行するようにしてください。

portinstall

portinstallはportsをより楽にインストールするためのツールです。
通常portsからアプリケーションをインストールする際には、

# cd /usr/ports/japanese/ne
# make install clean

などとする必要がありますが、portinstallはこの作業を

# portinstall japanese/ne

あるいは

# portinstall ja-ne

と簡略化することが可能です。
またpackageが手元に存在する場合は、packageが/usr/ports/packages/Allに置いてあれば

# portinstall -P japanese/ne

のように-Pオプションを付けることによってpackageが存在すればpackageから、無ければportsからインストールしてくれます。
また-PPオプションを指定すると、packageが見つからない場合に何もしないようになります。

portinstallの詳細を表示させるには-v、ログファイルに記録するには-Lオプションを使います。

# portinstall -vL /var/log/ports japanese/ne

とすると詳細を表示し、/var/log/portsに記録されます。

pkg_deinstall

pkg_deinstallはアプリケーションを削除するためのツールです。
似たようなコマンドにインストール済みのpackageを削除するpkg_deleteがありますが、pkg_deinstallはこれの高機能版でワイルドカード指定や依存関係を解決してくれるといった機能をもっています。

目的のpackageを削除するには

# pkg_deinstall ja-ne

のようにします。
また、削除したいpackageに依存するものも全て削除したい場合は

# pkg_deinstall -r ja-Canna

portupgrade

portupgradeはportsをアップグレードするためのツールです。
対象のports単体をアップグレードすることも可能ですが、対象のportsに依存しているports、対象のportsが依存しているportsもオプションを指定することによってアップグレードすることが可能です。
また同じアプリケーションで違うバージョンが2つインストールされていたりといった不整合も修正してくれます。

portupgradeの一番単純な使い方は、

# portupgrade jvim3

のようにアップグレードしたいportsを指定することです。
このとき、-mオプションを指定するとmake時のオプションを指定することができます。

# portupgrade jvim3 -m '-DWITHOUT_X11'

portupgradeはports間の依存関係も解決してアップグレードできます。
例えばXFree86に依存している全てのpackageをアップグレードしたい場合

# portupgrade -r XFree86

のように-rオプションを指定します。
逆にXFree86が依存している全てのpackageをアップグレードしたい場合は

# portupgrade -R XFree86

と-Rオプションを指定します。
アップグレードを行うときに自動で行わず、実施前に問い合わせるようにするには

# portupgrade -i XFree86

のように-iオプションを指定します。
また、-pオプションを指定するとアップグレードと同時にpackageも作成してくれます。

バージョンが同じでも強制的にインストールし直すことも可能です。

# portupgrade -f XFree86

上記のように-fオプションを指定することによってバージョンが同じでもビルドし直されます。
アップグレードさせるときに、指定したpackageをアップグレード対象から外すことも可能です。
その場合-xオプションを指定し、対象から外したいpackageを指定します。

# portupgrade -rx XFree86 kterm

例ではXFree86に依存する全てのpackageをアップグレードするが、ktermはアップグレード対象から外すという意味になります。

全てのpackageを一気にアップグレードすることも可能です。

# portupgrade -a

portupgradeはportinstallと同様に、ログ(-L)や詳細表示(-v)も可能です。

# portupgrade -vL /var/log/ports XFree86

その他にもpackageの置き換えや、アップグレードに必要なファイルのみをダウンロードすると言った様々なオプションがあります。詳しくはマニュアルを参照してください。

portversion

portversionはpkg_versionの高機能版です。
portversionはportsdbで作成されたデータベースを元にアップグレード可能なpackageをリストアップします。

# portversion -v

とすると、packageごとに「=」「<」「>」のようにインストールしてあるpackageと最新のportsのバージョンを比べてくれます。
現在インストールされているpackageを基準にすると、「=」が同じ、「<」が古い(アップグレード対象)、「>」が新しい(通常は出ない)のような感じです。

これだけだと高速な以外はpkg_versionと大差ないのですが、オプションに-cを指定することによって古いバージョンをリストアップし、その結果をportupgradeすることが可能です。

# portversion -v

portclean

portcleanはportsを使ってインストールしたときに消し忘れたゴミを削除するためのツールです。

# portclean -C

を実行すると、portsのmake時に使われる作業ディレクトリ(/usr/ports/*/*/work/)を全て削除してくれます。
また古いバージョンのportsのソースコードなどを消したい時は、

# portclean -D

としてやると、/usr/ports/distfiles/の中で最新のportsでは使われないファイルを全て削除します。
また/usr/ports/packages/にある旧バージョンのpackageを削除したい場合は

# portclean -P

を実行します。


FreeBSDのインストール


もどるにゅ

トップにもどるにゅ