検索
連載

次世代パッケージ管理システム、pkg(8)FreeBSDのコレ知ってる?(3)(3/3 ページ)

FreeBSD 10-CURRENTに、パッケージのビルドシステムや配布システム、管理システムなどを刷新した次世代パッケージ管理システム「pkg(8)」がマージされた。今回はその機能を紹介する。(編集部)

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

ソフトのアンインストール、自動削除と全ソフトウェア削除

 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)は興味深い取り組みといえる。

著者プロフィール

後藤大地

BSDコンサルティング株式会社 取締役、オングス代表取締役。@ITへの寄稿、MYCOMジャーナルにおけるニュース執筆のほか、アプリケーション開発やシステム構築、『改訂第二版 FreeBSDビギナーズバイブル』『D言語パーフェクトガイド』『UNIX本格マスター 基礎編〜Linux&FreeBSDを使いこなすための第一歩〜』など著書多数。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る