web-dev-qa-db-ja.com

debパッケージをudebに変換する方法

preseed/early_commandを使用してsquid-deb-proxy-clientをインストールする方法 に続いて、squid-deb-proxy-clientパッケージのudebが必要です。 Debian wiki を読むと、通常のdebをudebに変換するのは簡単なはずです。しかし、私のためにそれを行うツールは見つかりませんでした。

依存関係をudebsに変換する必要があると思うので、手動で変換したくないので、私の質問は次のとおりです。

通常のdebパッケージをudebsに便利に変換する方法は?

2
Frederick Nord

まず、file.debdpkg -xを使用して、extractの内容をdpkg -eにする必要があります。

次に、debhelperを使用してfile.udebを作成する必要があります。

Debhelperfile.udebの特別なプロパティを知っており、ビルド時にデフォルトで正しいことを行います。

2016年6月1日編集:

Dpkg-debは、Debianパッケージアーカイブ(.deb)操作ツールです。

dpkg-deb -x, --extract archive directory

パッケージアーカイブから指定されたディレクトリにファイルシステムツリーを抽出します。

以下に示すように、foo.debパッケージからファイルを抽出するには、dpkg-deb -xを使用します。

dpkg-deb -x foo.deb /some-dir/debian
ls /some-dir/debian
foo

Debhelperは、Debianパッケージの構築を支援するために使用されます。

パッケージを構築するさまざまな一般的な側面を自動化するために、debian/rulesで使用される、簡単に理解できるツールのコレクションを提供します。

Debhelperを使用する典型的なdebian/rulesファイルは、いくつかのdebhelperコマンドを順番に呼び出します。

Debhelperを使用するルールファイルの例:/ usr/share/doc/debhelper/examples /

Debhelperを使用して新しいDebianパッケージを作成するには、サンプルルールファイルの1つをコピーして、手動で編集します。

デフォルトでは、すべてのdebhelperプログラムは、パッケージ内のファイルのツリーを組み立てるために使用される一時ディレクトリが/ some-dir/debian/packageであると想定しています。

Debhelperでudebを作成するには、「Package-Type:udeb」をdebian/controlのパッケージのスタンザに追加します。

Debhelperは、生成されたパッケージファイルの末尾を.udebにし、ドキュメントをudebにインストールせず、preinst、postrm、prerm、configスクリプトなどをスキップすることで、debian-installerポリシーに準拠するudebの作成を試みます。

ソース

2
kyodake