dpkgコマンドはdebian系のパッケージを管理するためのコマンドだ。Redhat系のrpmに相当する。
このページではdpkgコマンドについて使い方をご紹介していこう。
目次
dpkgコマンドとは?
「dpkg」とはdebianのパッケージである「deb」ファイルを取り扱うコマンドである。名前の由来は「Debian Package」の略とされている。
Debianのパッケージ管理システムは他のディストリビューションに比べて最も高度な部類だ。
dpkg単体でもパッケージのインストールやアンインストールは一応に可能だが、実際にはパッケージの操作及び統合管理は「apt」系のコマンド「apt-get」や「aptitude」などで行なわれる。これにより依存関係の解決が行われ、必要なパッケージが自動的に導入される。
つまりdpkgはdebファイルを使用するときの基礎コマンドであり、丁度Redhat系列でいうところの「rpm」コマンドに相当する。rpmパッケージと比較するとdebパッケージは少々複雑な作りをしている。
基礎的なオプションがRPMと比べるといくらか多いが、それだけ厳格に管理できる証だろう。
debパッケージ
名前の規則
以下のようにパッケージがある。パッケージには名前の付け方に規則性がある。例えば
unzip_6.0-16+deb8u2_amd64.deb
unzipパッケージを例に挙げる。各項目は以下のとおりだ。
- unzip:パッケージネーム
- 6.0:バージョン番号
- 16+deb8u2:リビジョン番号
- amd64:アーキテクチャ
- deb:拡張子
dpkgコマンド
dpkgを使用するとdebパッケージを操作できる。
オプションの数だけでいえばrpmよりも若干複雑でありパワフルである。なおソースから自分でアプリケーションをビルドして使用するのも手段の一つだが、依存関係やアンインストールが雑になりがちである。
debianの場合パッケージ数は膨大であり、大概のアプリケーションはそろっているはずだ。特に事情がないかぎりdebianのパッケージを利用するようにしよう。
dpkgの主要なアクション
全てではないが主要なアクションを紹介する。パッケージの削除とインストール、主にシステム全体に変更を加える動作以外は、一般ユーザでも実行可能となっている。
パッケージをインストール
# dpkg -i <アーカイブ名>
パッケージを削除する。
# dpkg -r <パッケージ名>
パッケージを設定ファイル含め完全に削除する。
# dpkg -P <パッケージ名>
パターンにマッチするパッケージを一覧表示、なにも指定しないとインストールされているパッケージ一覧が表示される。
$ dpkg -l もしくはパターン
パターンを指定した場合、以下のようになる。
パッケージの情報を表示
$ dpkg -p <パッケージ名>
システムにパッケージによってインストールされたファイル一覧を表示する。
$ dpkg -L <パッケージ名>
debアーカイブの情報を参照する。
$ dpkg -I <アーカイブ名>
debアーカイブの中身のファイルを表示する。
$ dpkg -c <アーカイブ名>
指定した文字列がマッチするファイルを含んだパッケージを表示する
$ dpkg -S 文字列
dpkgの主な基本オプション
上記にあるアクションだけで大体のことはこなせるがその他付属できるオプションが幾つかあるので紹介する。
古いバージョンのパッケージでも強制的にインストールを行なう。
--force-downgrade
古いバージョンのパッケージのインストールを強制的に拒否する。
--no-force-downgrade
依存関係を無視して実行。
--force-depends
依存関係を評価するときにバージョン関係は無視する。
--force-depends-version
他のパッケージと競合してもインストール強制実行する。
--force-conflicts
制御ファイルのチェックをしない。
--nocheck
実際にはインストールを行わず確認のみを行う。
--no-act
システムにインストール済みのパッケージが新しい場合はインストールをしない。
-G
同バージョンがインストール済みの場合は,再インストールしない。
-E
アクションとショートオプションは同時に指定できる。例えば
# dpkg -iE bash_4.3-11+b1_amd64.deb
とすると既にbash_4.3-11+b1_amd64.debがインストールされている場合操作がスキップされる。
dpkg-reconfigureについて
dpkg-reconfigureを使用すると、既にインストールされたdebパッケージの状態を再設定できる。設定の初期化などもこのコマンドで可能だ
# dpkg-reconfigure apache2
などとする。forceオプションを設定すると、多少設定状態が破損している場合でも強制実行することが出来る
# dpkg-reconfigure --force apach
まとめ
dpkgコマンドは、少々使い勝手が悪い部分もあり、できる限りapt系コマンドを使いたいところだ。しかし、すべてにおいてaptが使えるわけではなく、dpkgコマンドが活躍する場面もあるだろう。一通りの使い方は押さえておこう。
コメント