ウェブサイト検索

Debian/Ubuntu用のDEBパッケージの作成方法


Linux上のほとんどのソフトウェアは、パッケージとして配布されています。Debianベースのディストリビューション用のDEBパッケージを作成するのは、思っているほど難しくありません。

DEBパッケージは、アプリケーションのコンパイル済みバージョン、ソースコード、設定ファイル、画像、インストールコマンドなど、すべてのファイルを含むアーカイブです。UbuntuやKali LinuxなどのDebianベースのオペレーティングシステムにおけるDEBファイルは、Windowsで見られるEXEファイルに相当します。

ここでは、DebianベースのLinuxディストリビューション用に独自のDEBパッケージを開発する方法を説明します。

ステップ1:必要なパッケージのインストール

Debianパッケージを準備するにはいくつかのプログラムが必要です。まず、これらのユーティリティをシステムにインストールしてください。

sudo apt install build-essential binutils lintian debhelper dh-make devscripts

ステップ2:パッケージの選択

プログラムのDebianパッケージ(DEB)を作成する前に、いくつかのポイントを考慮する必要があります:

  • 作成しようとしているパッケージがすでにDebianリポジトリに存在するかどうか確認してください。

    apt-  -
  • パッケージ化するプログラムのライセンスの種類を確認してください。一般的にGNU/GPLライセンスを使用する文化があります。
  • プログラムがシステムにセキュリティ上の問題を引き起こさないことを確認してください。
  • プログラムの著者に連絡してください。このプログラムをDebianリポジトリに追加するためにDebian開発者に通知してください。

ステップ3:パッケージの準備を始める

まず、混乱を避けるために、自分のホームディレクトリの下に新しいディレクトリを作成してください。

cd /home
mkdir package
cd package

次に、このディレクトリの下にパッケージ化するプログラムのソースコードを含むtarアーカイブを抽出します。デモンストレーションとして、rsyslogアーカイブを使用します。

tar -zxvf rsyslog-6.3.6.tar.gz

cdコマンドを使用して新しく作成されたディレクトリに移動します:

cd rsyslog-6.3.6

通常、プログラムのソースコードにはINSTALLとREADMEのファイルが付属しています。プログラムが何であるか、どのように機能するかを知っていても、これらのファイルを読むために少し時間を費やすことはあなたにとって有益です。

システムにそのようなアーカイブを簡単にインストールできるようなコマンドとして./configure makeやmake installがあります。しかし、./configureオプションには知っておくべきいくつかのパラメータがあります。そういった情報を得るために./configure --helpコマンドを使用できます。

ステップ4: 開発者情報の追加

DEBパッケージを作成する前に、パッケージ名とバージョン番号に注意してください。また、パッケージを作成する際には、パッケージ情報を追加する必要があります。そのために、以下のコマンドを使用して情報をエクスポートしなければなりません。

export DEBEMAIL="your@mail.com"
export DEBFULLNAME="Name Lastname"

その後、魔法のコマンドdh_makeを使用します。

dh_make

dh_makeコマンドを発行した後、パッケージの種類を選択し、Enterを押す必要があります。

このステップに従うと、親ディレクトリに「.orig」拡張子の付いたディレクトリがあることに気付くでしょう。これがうまくいかない場合は、dh_make コマンドを --createorig パラメータ付きで実行してみてください。

ls
Output
rsyslog-6.3.6 rsyslog_6.3.6.orig.tar.xz rsyslog-6.3.6.tar.gz

現在の作業ディレクトリに新しい「Debian」という名前のディレクトリも見えます。これらのディレクトリとファイルは、プログラムに関するすべてのDebianパッケージ関連情報を保持しています。

ステップ5:パッケージ関連のDebianファイル

Debianディレクトリにあるファイルについて、次の情報を知っておく必要があります。

1. コントロールファイル

制御ファイルはパッケージに関連するさまざまな情報を提供します。

  • 出典: プログラムの名前を指定する行
  • セクション: ライセンスに従って、プログラムが属するセクションを決定する行
  • メンテイナー: パッケージを用意した人の情報を含む行
  • ビルド依存関係: 依存関係はこの行に記載されています
  • 依存関係次第: この行は非常に重要です。あなたのパッケージの依存関係をこの値で指定します。
  • 説明: パッケージに関する情報を入力できる欄

2. 著作権ファイル

このファイルにはプログラムのライセンスに関する情報が含まれています。そのデフォルトの内容は次のとおりです。

3. チェンジログファイル

このファイルはあなたのプログラムのログブックの地図のようなものです。プログラムのソースとは独立して何かを行った場合や、バグを修正した場合は、このファイルに追加することができます。

4. ルールファイル

ルールファイルは、あなたのDebianパッケージのMakefileのようなものです。dpkgで準備されたDebianパッケージをインストールする際、このファイルの情報が基本として使用されます。

もちろん、このファイルのパラメータはあなたのご自由に変更できます。

5. ディレクトリ内の他のファイル

以下のファイルの機能を知っておくと役立つかもしれません:

  • README.Debian: 読み取りファイル
  • conffiles.ex: プログラムをインストールする際に古い設定ファイルを保持したい場合は、このファイルを使用してください
  • cron.d.ex: このファイルを使って cron 操作を実行できます。
  • dirs: このファイルを使用して、インストール中にインストールされるべきではないが、後で作成されるべきディレクトリを指定してください。
  • ドキュメント: プログラムに関連するドキュメントがある場合は、このファイルで指定してください。
  • emacsen*.ex: インストール中にプログラムがEmacsファイルを必要とする場合は、このファイルで指定してください。
  • init.d.ex: システム起動時にプログラムを実行したい場合は、このファイルを使用してください

次のステージに進むには、必要ないと思うファイルを削除してください。それからファイルの拡張子を変更し、末尾の ".ex" を取り除いてください。".ex" (例) は、これはサンプルファイルであることを示します。

ステップ6:パッケージの構築

ここまで来たなら、プログラムのためにDebianパッケージを準備することができます。これには、次のコマンドを実行してください:

dpkg-buildpackage

もう一つ重要な問題は、維持管理者としてエクスポートするメールアドレスのためにGPGを作成することです。

export DEBEMAIL="example@mail.com"

dpkgはパッケージを作成する際にあなたのGPG情報を探します。gpg --list-keysコマンドでリスト表示できます。

もしdpkg-buildpackageフェーズで問題が発生した場合は、次のコマンドを試してみてください:

dpkg-buildpackage -nc -i

このコマンドはエラーを引き起こす可能性のある部分を無視します。

すべてがうまくいけば、あなたのプログラムのDebianパッケージはインストールできるようになり、次のディレクトリに保存されます。以下のコマンドを使用すると、パッケージをインストール、テスト、レビューできます。

dpkg -i package-name

誰でもLinuxでパッケージを作成できます

DEBパッケージシステムは、DebianがGNU/Linuxのリーダーとして際立つための最も基本的な要素の一つです。Debianは大規模なシステムであり、貢献者が自分自身のパッケージを作成できる能力を持つことは非常に重要です。

GNU/Linuxに不慣れな方にとっては、これは混乱を招くかもしれません。しかし、見るとおり、Debianパッケージを準備することはあなたが思っているよりも簡単です。もちろん、Debianパッケージの構築には時間と労力が必要です。

しかし、だからといって、インストールしたいプログラムのために手動でパッケージを作成する必要はありません。インターネット上には、無料でDEBパッケージをダウンロードできるいくつかのウェブサイトがあります。

関連記事: