Debianに関する世界観3(Deb/Dpkg)です。
Debianのパッケージ管理システム。低レベルなDebパッケージのインストール管理を行う。
以下を参照のこと。
パッケージをインストールするには以下のコマンドを使う。
dpkg -i [パッケージファイル名]
削除するには以下のようにする。
dpkg -r [パッケージ名]
パッケージの情報を表示するには以下のようにする。
dpkg -p [パッケージ名]
そのパッケージによってインストールされたファイル一覧の表示は以下のようにする。
dpkg -L [パッケージ名]
また、Debアーカイブの情報を表示するには-I、Debアーカイブの中身のファイルを表示するには-cを用いる。
dpkg -I [パッケージファイル名] dpkg -c [パッケージファイル名]
また、-lでパターンを指定した場合、パターンに一致するパッケージの一覧が表示できる。何も指定しない場合はインストールされているすべてのパッケージ一覧が表示できる。
dpkg -l [パターン]
そのほかにもたくさんのコマンドがあるので、debファイルを扱うdpkgコマンドの使い方を簡単解説 - エンジニアの入り口を参照のこと。
controlファイルはRPMで言うspecファイルに相当する。
以下を参照のこと。
.dsc、.orig.tar.gz、.debian.tar.gz (または .diff.gz) の3つのファイルで構成される。
以下を参照のこと。
Debian公式ではないが、PureOS(GNU推奨のディストリビューション)のようなDebian派生ディストリビューションのリポジトリでは、
(1) .dscファイル
(2) .orig.tar.gzファイル(オリジナルのtarball)
(3) .debian.tar.xzファイル(あるいはdiffか)
(4) バイナリのamd64.debファイル
(5) バイナリのarm64.debファイル
(6) PGP署名
などがリポジトリで配布されている。
サードパーティが再配布をしているのは、Windowsから見ると無駄に思えるかもしれないが、ディストリビューションとして簡単にインストールできる形で配布されていて、最初から利用可能なのは結構嬉しい。Windowsでも同じようにオープンソースでパッケージを再配布してほしいぐらいだ。(Windowsのフリーソフトは、ダウンロードやインストールの過程で地雷を踏むのが怖い。)
Debianのパッケージはコマンド一つで簡単に最新版にアップデートできるが、これは結構怖い(いつ動かなくなるか分からない)ので注意が必要。特にDebianはstableではなくtestingやsidを使っている人が結構多いので、そういう場合はメインOSとして使う以外に遊び・実験用としてもう一つOSを入れることをおすすめする。(Debianの場合はまだマシである。メインマシンでUbuntuやFedoraなんか使っていると、もうありえないだけである。)
基本的には、
# apt install build-essential
で開発環境(gcc, makeなど)をインストールをして、
$ apt source [パッケージ名] # apt build-dep [パッケージ名]
でソースパッケージとビルドするための関連ツールをインストールする。
パッケージのビルドには、dpkg-buildpackageあるいはdebuild(devscriptsパッケージに含まれる)を使う。
$ dpkg-buildpackage -us -uc
あるいは、
$ debuild -b -us -uc
でビルド。署名に関しての作業を省略する場合は-us -ucオプションを付ける。
ソースディレクトリ内に「debian」というディレクトリがあり、この中にパッケージ作成のためのレシピが書いてある。
ファイル名 | 意味 |
---|---|
rules | makeの書式で、ビルドやインストールの方法を記述する |
control | パッケージの分類・情報と説明文、依存関係など |
changelog | パッケージのリリースごとの変更履歴 |
copyright | パッケージの著作権とライセンス |
パッケージの作成:
$ debuild -us -uc
詳しくは以下のページを参照のこと(上記は以下のページからの引用です)。
Debパッケージの設定をしてくれるツール。
debconfはDebianでパッケージの設定をするツール。パッケージ管理システムに統合されている。全てのパッケージで、最初の設定をdebconfで行う。
ncursesのCUI(TUI)の形式の他、GTK+のインターフェースも存在する。
インストールした後で、もう一度設定をやり直したい場合は、
dpkg-reconfigure [パッケージ名]
と実行する。
ncursesも参照のこと。
Red Hat系のLinuxでは、システムのさまざまな設定をするためのGUIのフロントエンドとして、system-config-*というツール群が提供されているが、Debianではパッケージ管理システムにdebconfとして設定機構が統合されている。
debconfでは、パッケージがインストールされた時に、ディストリビューションのインストールと同じインターフェースで、対話的に設定を行うことができる。
初心者にとっては、設定ファイルの配置や記法を覚える必要がないというメリットがあるが、設定した内容がシステムのどこにどのように反映されるのかが分からないというデメリットがあるため、Arch Linuxではこのような設定のためのフロントエンドは用意されていない。
2023.08.17
ソースからのインストールを参照のこと。
Linuxアーカイブ・同期・デバイス処理を参照のこと。