portupgrade-devel

portsを扱うためのツール群です。

portsの扱いを簡略化したり、データベースにてバージョンアップが必要なソフトの表示などをしてくれます。

全く同じコマンドを持つportupgradeとportupgrade-develが有りますが、FreeBSD10.0以降に標準搭載された パッケージ管理ソフトpkgとデータベースが干渉しあわないと言う理由で、ここではportupgrade-develを使用します。

☆ インストール

cd /usr/ports/ports-mgmt/portupgrade-devel
make config-recursive
make install clean && rehash

☆ コマンドの扱い

複数コマンドが使用可能になり、それぞれ役割を持った名前なので、覚えるのはそれ程難しくはないはず。
実際に使い始めると、ワンパターン化するので、何処かにメモを残しておくかスクリプト化しておくと良いかもしれない。

portsdb
独自のデータベースを作成・更新するためのコマンド。
二つのコマンドオプションを紹介するが、データベースが作られるまでの過程が違うだけで、どちらもほぼ同じ物が作成される。

portsdb -Uu

膨大な時間が掛かる上に、PCが非力だったり、通信環境が貧弱だったりするとエラーが出ることがある。
一度このオプションでデータベースを作成した後は『portsdb -u』でデータベースが更新出来る。こちらは非常に短時間で更新作業は終了す る。

下記で紹介している『portversion』 で『>』の状態が表示された時、再び『portsdb -Uu』で データを作り直す必要はあるが・・・。

portsdb -Fu

このコマンドを使用する前に、portsを更新しておく必要が有る。それをしないと意味が無い。
ports側の更新頻度が激しいと、データが反映されないなんて事があるらしい。ハッキリとこれが原因だとは言えないが、実際に私は、データが反映されないと言う 事態には遭遇している。

短所長所はあるが、データの更新は必ず必要になるので、どちらか都合が良いと思った方を選んで使えば良い。

portversion
データベースの情報と、インストールされているプログラムのバージョンを比較して、表示するコマンド。
『-v』オプションを使えば、プログラム名と同時にバージョンが表示される。

portversion -v

左にインストールされているプログラム。右にデータベースにあるプログラム。真ん中にある記号により状態が判断できる。

  • =』バージョンが同じ
  • <』データベースのプログラムが最新
  • >』データベースよりもインストールされたプログラムが最新

で表示される。

データベースよりもインストールされたプログラムが最新』と言う事はあり得ない訳で、そうした時には『portsdb -Uu』コ マンドでデータベースを更新する。
(『portsdb -Fu』を使うなら、その前にportsを最新の状態にして おく)

『<』のみ表示させたい場合は

portversion | grep "<"

複数のサイトで見かけるこのコマンドは、ほぼ全て『-v』オプション付きで紹介されているが、Windows版PuTTY上からプログラムのアップ グレード操作をする場合、バージョンが表示されていると邪魔だったりするんで、私の場合は『-v』オプションは抜 いていたりします。
(Windows版PuTTYを使用している場合、マウスクリックしながら文字を選択する事でコ ピーができ、右クリックで貼り付けられる。プログラムを複数 追加するには便利)

portupgrade
プログラムをアップデートするコマンド。
portversion で『<』 のプログラムが出たら使います。

portupgradeプログラム名

プログラム名は、スペースを挟むことで複数指定可能。
(Windows版PuTTYを使用している場合、マウスクリックしながら文字を選択する事でコ ピーができ、右クリックで貼り付けられる。プログラムを複数 追加するには便利)

更新に何ら注意を必要とするプログラムが無いなら『-a』オプションを使うことで更新すべきプログラムを全てアップデートさせる事が出来る。

portupgrade -a

このコマンドに対して、ネット上では複数のオプションが紹介されているので、興味があれば確認してみると良い。

pkgdb
依存関係の修復。

pkgdb -aF

依存関係に問題があると、各種コマンドが動作しなくなるとか云々。
経験が無いのでよく分からんし、特に時間が掛かるわけではないので、使ってる。

portsclean
インストールやアップグレード時に出た、様々なファイルを削除する。

portsclean -CDLP

面倒くさがりなので、該当ファイルの有る無しに関わらず一通りのオプションを付けて実行しています。この設定を、crontab等で定期的に実行するのが手間が省けて良いと思う。
(1~3ヶ月に一回くらいか?)

pkg_deinstall
プログラムをアンインストールするコマンド。
pkg_delete コマンドの上位版と紹介されていることが多く、オプションにより依存関係全てを同時にアンインストールする事も出来る。

pkg_deinstall プログラム名

依存関係のあるプログラムは、よく確認してからアンインストールする必要がある。

  • 『-r』指定したプログラムを必要としているプログラムも削除。(依存関係)
  • 『-i』実際にアンインストールするかどうかの再確認『y/n』

portinstall
複数回オプション選択画面が表示されるようなパッケージだったら・・・とか考えると、どうしてもportsからインストールしちゃうんだよな・・・。

portinstall プログラム名

一応・・・
プログラム名が分かっているなら『portupgrade -N プログラム名』としても新規インストールが可能。

ports_glob
プログラム名が分かっていれば、portsのディレクトリを確認することが出来る。

ports_glob apache22

なんて打ち込むと

www/apache22

なんて回答が帰ってくる。

検索する文字に『*』を含めて検索することも可能。
『apache*』としても、現状では同じ回答が帰ってくる。

その回答の使い方としては

cd /usr/ports/www/apache22

とか

portinstall www/apache22

みたいに利用する。

pkg_which
使った事が無い
ファイルがどのプログラムによって作成したものか調査できるらしい。

使い方は

pkg_which ファイル名

portsでインストールしたプログラムが、初期に作成するファイルのみしか調査できないので、使いドコロが今ひとつわからんのだが・・・

 

◆追記

FreeBSD10で正式に導入されたpkgコマンドの『pkg autoremove』は結構良いコマンドオプションなんだが、それを使った後に『portupgrade -a』とかでプログラムの更新をしようとすると『ビルドするのに必要なプログラムがインストールされていない』みたいなメッセージが表示される事が有る。そうした場合、足りないログラムをインストールした後に更新作業を継続するよりも、更新の必要なプログラムのportsで『make reinstall clean』をしてしまった方が、手っ取り早くインストールを完了することが出来ます。

 

役に立ちましたか?
  • 役に立った (0)
  • 少しだけ (0)
  • これじゃない! (0)