Debian系ディストリビューションとUbuntu
Debian自体は歴史のあるディストリビューションです。「Red Hat Enterprise」や「Cent OS」といったRed Hat系のディストリビューションとともに、サーバOSとしても多々使用されます。Debian系に属するディストリビューションはたくさんありますが、今回使用する「Ubuntu」は比較的新しいディストリビューションです。Ubuntuはユーザデスクトップ環境に注力しており、どちらかというとクライアントOSとして使われることが多いです。最近成長の著しい、Debian系の代表格です。
Red Hat系とDebian系のパッケージ管理ツールの違い
Red Hat系とDebian系で、インストール時のコマンドが異なるのはなぜでしょうか? それは、前回出てきたパッケージ管理ツールが異なるからです。Red Hat系で使用されていたパッケージ管理ツールは「RPM」でしたが、Debian系では「dpkg」が使われています。dpkgの扱いを簡便にするツールに「APT」(Advanced Packaging Tool)があります。RPMの操作を簡単にするツールとして「YUM」がありましたが、その関係と似ています。
Red Hat系とDebian系のパッケージ管理ツールを比較してみると、次表のようになります。
ディストリビューション | Red Hat系 | Debian系 |
---|---|---|
パッケージ管理ツールとそのコマンド |
RPM(rpm コマンド) |
dpkg(dpkg コマンド) |
パッケージ管理ツールを簡単に扱うためのツールとそのコマンド |
YUM(yum コマンド) |
APT(apt-get コマンド、aptitude コマンド) |
このことを頭に留めておくと、それぞれのツール/コマンドがごちゃごちゃにならなくて済みます。
ちなみに、Debian系でもパッケージ管理ツールを使わず、ソースコードからインストールすることはもちろん可能です。ソースコードからインストールする手順を学習したい方は前回で説明していますので、そちらをご覧ください。
dpkgコマンドによるインストール済みパッケージの確認と削除
それではまず、dpkgの使い方を見ていきましょう。今回も「CUPS」という印刷システムパッケージ(以下、単にCUPSと呼びます)をインストールしながら説明を進めます。
最初に次のコマンドで、CUPSがインストール済みであるかどうかを確認します。
# dpkg -l cups ……省略…… ||/ 名前 バージョン アーキテクチャ 説明 +++-==================================-======================-======================-========================================================================= ii cups 1.7.2-0ubuntu1.7 i386 Common UNIX Printing System(tm) - PPD/driver support, web interface
dpkg -l cups
の「cups」を別のパッケージ名にすると、そのパッケージがインストールされているかどうかを確認できます。パッケージ名を指定しないと、全てのパッケージの状況が表示されます。
# dpkg -l
また、dpkg -l cups
でも出力される結果の行数が多すぎるので、grep
コマンドで絞り込むとよいでしょう。
# dpkg -l | grep cups ii bluez-cups 4.101-0ubuntu13.1 i386 Bluetooth printer driver for CUPS ii cups 1.7.2-0ubuntu1.7 i386 Common UNIX Printing System(tm) - PPD/driver support, web interface ii cups-browsed 1.0.52-0ubuntu1.7 i386 OpenPrinting CUPS Filters - cups-browsed ……以下略……
「cups」という文字列を含むパッケージが全て表示されますが、CUPS本体は2行目の「cups……」です。
結果の先頭にある2文字は、パッケージの状態(1文字目が実行しようとしている(いた)内容、2文字目が現在の状態)を意味します。それぞれの文字には以下のような意味があります。
1文字目 | 意味 |
---|---|
U | 不明(unknown) |
I | インストール(install) |
R | 削除(remove) |
P | 完全削除(purge) |
H | 保持(hold) |
2文字目 | 意味 |
---|---|
N | 無(not-installed) |
I | インストール済み(installed) |
C | 設定(config file) |
U | 展開(unpacked) |
F | 設定失敗(failed) |
H | 半インストール(half installed) |
W | トリガ待ち(wait) |
T | トリガ保留(trigger) |
dpkg -l cups
の結果を見ると、先頭が「ii」となっています。ここから、「インストールを実行していて、ちゃんとインストールがされている」状態、要はCUPSはすでにインストールされているということが分かります。
今回はインストールするコマンドを実行したいので、先にCUPSをアンインストールしましょう。アンインストールする際にはdpkg
コマンドでオプションr
(remove)を使用します。rpm
コマンドのオプションe
(erase)とは異なるので注意しましょう。
# dpkg -r cups
この結果はどうなるでしょうか? rpm
コマンドの場合を思い出してみてください。依存関係のエラーが表示されていました。dpkg
コマンドの場合も同様です。次のようなエラーが表示されます。
dpkg: 依存関係の問題により、cups の削除ができません: hplip は以下に依存 (depends) します: cups (>= 1.1.20). printer-driver-splix は以下に依存 (depends) します: cups (>= 1.5.0-3~). ……以下略……
このようにRPMと同様、dpkgでも依存関係を保ったパッケージの操作はできません。RPMの場合、この依存性の管理を「YUM」というツールに任せることで、パッケージ管理を簡単に行えるようになりました。dpkgにも、RPMにとってのYUMに相当するツールがあります。APTです。