次世代パッケージ管理システム、pkg(8):FreeBSDのコレ知ってる?(3)(3/3 ページ)
FreeBSD 10-CURRENTに、パッケージのビルドシステムや配布システム、管理システムなどを刷新した次世代パッケージ管理システム「pkg(8)」がマージされた。今回はその機能を紹介する。(編集部)
ソフトのアンインストール、自動削除と全ソフトウェア削除
pkg(8)経由でインストールしたソフトウェアはdeleteサブコマンドで削除できる。
# pkg delete sudo-1.8.5.p2 The following packages will be deinstalled: sudo-1.8.5.p2 The deinstallation will free 2 MB Proceed with deinstalling packages [y/N]: y Deinstalling sudo-1.8.5.p2... done #
このように削除すると、依存関係でインストールされたソフトウェアは削除されずに残ってしまう。autoremoveサブコマンドを使えば、こうしたソフトウェアを自動的に探し出して削除してくれる。
# pkg info gettext-0.18.1.1 GNU gettext package libiconv-1.14 A character set conversion library pkg-1.0.r5_1 New generation package manager #
# pkg autoremove Packages to be autoremoved: gettext-0.18.1.1 libiconv-1.14 The autoremoval will free 15 MB Proceed with autoremoval of packages [y/N]: y Deinstalling gettext-0.18.1.1... done Deinstalling libiconv-1.14... done #
pkg(8)経由でインストールしたソフトウェアをすべて削除するには、deleteサブコマンドに-aを指定する。
# pkg delete -a The following packages will be deinstalled: pkg-1.0.r5_1 sudo-1.8.5.p2 gettext-0.18.1.1 libiconv-1.14 The deinstallation will free 23 MB Proceed with deinstalling packages [y/N]: y Deinstalling pkg-1.0.r5_1... done Deinstalling sudo-1.8.5.p2... done Deinstalling gettext-0.18.1.1... done Deinstalling libiconv-1.14... done #
pkg(8)で操作していて、不整合が発生し問題を解決できない状態になったら、いったんすべて削除してインストールし直せばよい。パッケージそのものはすでにキャッシュされており、再インストールは手軽に実施できる。
ソフトウェアのアップグレード
pkg(8)のリモートリポジトリは、最終的に週に1回程度の頻度でアップグレードされると見られている。
pkg updateでリモートリポジトリを更新したあとにpkg upgradeと実行することで、インストールしたソフトウェアをまとめてアップグレードできる。pkg updateでは先に/usr/local/sbin/pkgをアップグレードするように求められることがある。その場合、/usr/local/sbin/pkgをアップグレードした後で、もう一度pkg updateを実行すればリモートリポジトリが更新される。
pkg(8)において、パッケージセットそのもののサポート期間は短い。週に1回や月に1回程度、pkg update && pkg upgradeを実施して最新のパッケージセットに置き換えていくのが、pkg(8)の主な運用方法になるものと見られる。
セキュリティ情報と統計情報の取得
pkg(8)からインストールしたソフトウェアの数や消費しているディスク容量はstatサブコマンドで取得できる。
# pkg stat Local package database: Installed packages: 439 Disk space occupied: 2430 MB Remote package database(s): Number of repositories: 1 Packages available: 19546 Unique packages: 19546 Total size of packages: 62 GB #
セキュリティ的に問題が報告されているアプリケーションなどはaudioサブコマンドでチェックできる。
# pkg audit chromium-20.0.1132.57 is vulnerable: chromium -- multiple vulnerabilities WWW: http://portaudit.FreeBSD.org/ce84e136-e2f6-11e1-a8ca-00262d5ed8ee.html chromium-20.0.1132.57 is vulnerable: chromium -- multiple vulnerabilities WWW: http://portaudit.FreeBSD.org/60bbe12c-e2c1-11e1-a8ca-00262d5ed8ee.html 1 problem(s) in your installed packages found. #
従来のpkg_*系パッケージからの移行方法
従来のpkg_*系パッケージのメタデータ情報は、pkg2ng(8)コマンドを実行することでpkg(8)形式へ変更できる。しかし、できればいったんpkg_delete -aですべてのパッケージをアンインストールした後で、pkg(8)コマンドを使って同じソフトウェアをインストールする方がよいだろう。
Jail管理
pkg(8)はJail管理がしやすいように、オプションに-jが用意されている。-jにJail名またはJail IDを指定すれば、そのJailを対象として各種操作が実施される。Jail内環境を整備する上でとても有益な機能だ。
現時点での注意点とPorts Collectionの品質
FreeBSD 10-CURRENTにマージされたpkg(8)はアクティブな開発段階にあり、マニュアルに記載されているオプションが動作していなかったり、いくつかの重要なソフトウェアが含まれていない、最新のPorts Collectionと齟齬があるなど、いくつかの課題を抱えている。開発者が試用するには問題のないレベルだが、通常のユーザーが利用するにはまだ荒削りだ。
また、既存のpkg_*系パッケージやPorts Collectionとpkg(8)の管理は完全に独立しているため、pkg(8)でソフトウェアをインストールした後でPorts Collectionからアプリケーションをインストールすると、Ports Collection側の操作がpkg(8)のソフトウェアを上書きするといった不整合が発生することがある。自力解決できるならよいが、自力解決ができない場合には、いまのところ、どちらかだけを使うといったように割り切った方がよいだろう。
最新のパッケージをビルドすることなくすぐにインストールできるのは、素早く環境を構築したい場合にとても便利だ。仮想環境にFreeBSDをインストールしてすぐに動作する環境を作り上げたい場合など便利に利用できる。Jail向けの機能が用意されているのもうれしいところだ。
pkg(8)はPorts Collectionの品質向上にも関与することになると考えられる。Ports Collectionの品質はportsコミッタの力量に左右されるところが大きく、srcコミッタに比べると緩いところがある。
しかし、これが週に1回の頻度でパッケージ化され、問題のあるportはパッケージ化されないといった事態になれば、portsコミッタとしては現在よりも高い品質でコミットを実施する必要が生じてくる。この点においてもpkg(8)は興味深い取り組みといえる。
Copyright © ITmedia, Inc. All Rights Reserved.