DEBファイルを手動で作成したい。インストールするデータを含むフォルダーと、インストール後に実行されるスクリプトを提供したいだけです。
これは可能ですか?
DEBファイルを手動で作成したい。インストールするデータを含むフォルダーと、インストール後に実行されるスクリプトを提供したいだけです。
これは可能ですか?
回答:
ソースパッケージを作成することをお勧めします。build-essential、debhelper、dh-makeをインストールします。インストールするファイルがあるディレクトリに移動し(ディレクトリ名は、Myapp V4.2を初めてパッケージ化する場合などの形式$PACKAGE-$VERSION
である必要がありmyapp-4.2-1
ます)、実行しdh_make --createorig
ます。質問に答える。Debhelperはdebian
、いくつかの必須ファイルとオプションファイルのテンプレートの両方と呼ばれるサブディレクトリにファイルを生成することにより、パッケージの構築に必要な基本インフラストラクチャを作成します。これらのファイルの一部を変更する必要がある場合があります。
debian/rules
して、ビルドが必要なものをビルドし、適切な場所にファイルをインストールします。いくつかのファイルをコピーするだけで、コンパイルdebian/install
する必要がない場合は、ファイルを編集して、どのファイルをどこにインストールする必要があるかを指定してください。debian/copyright
して、パッケージに関するライセンス情報と最新バージョンの入手先に関する情報を追加します(関連する場合)。debian/changelog
して、ITPへの参照を削除します(Debianプロジェクトで作業している場合にのみ関連します)。名前debian/postinst.ex
を変更しdebian/postinst
、インストール後のコマンドをそこに追加します。後でパッケージを更新する場合は、実行debchange -i
してchangelogエントリを追加するか、Emacsでファイルを編集します(dpkg-dev-elがインストールされている場合)。実行dpkg-buildpackage -rfakeroot -us -uc
して.deb
パッケージをビルドします(-us -uc
PGPキーでパッケージに署名する場合は削除します)。
ソースパッケージからビルドせずに直接バイナリパッケージを作成することにした場合、プロセスを容易にするツールがそれほど多くないため、それほど簡単ではありません。debパッケージの形式に関する基本的な知識が必要です。Debianポリシーマニュアル、特にchで説明されています。3(バイナリパッケージの形式)、ch。5(制御ファイル)、ch。6(インストールスクリプト)および付録B(バイナリパッケージ操作)。
パッケージが期待されるファイル/usr/share/doc/copyright
(パッケージの内容のライセンス、およびパッケージの最新バージョンの場所を/usr/share/doc/changelog.Debian.gz
含む)および(debパッケージの変更ログを含む)をインストールすることを確認します。パッケージを社内でのみ使用する場合は、これらは必要ありませんが、持っている方が良いでしょう。
Debianツールを利用できる場合は、を使用dpkg-deb
してパッケージを構築します。インストールするデータを含むディレクトリにDEBIAN
、制御ファイルとメンテナースクリプトを含むトップレベルで呼び出されるディレクトリを追加します。
$ ls mypackage-42
DEBIAN etc usr var
$ dpkg-deb -b mypackage-42
Debianツールをお持ちでない場合は、パッケージ化data.tar.gz
するファイルのアーカイブを作成し、制御ファイルの別のアーカイブcontrol.tar.gz
(サブディレクトリなし)を作成し、テキストファイルを呼び出してテキストを保存debian-binary
します2.0
。
cd mypackage-42
tar czf ../data.tar.gz [a-z]*
cd DEBIAN
tar czf ../../control.tar.gz *
cd ../..
echo 2.0 > debian-binary
ar r mypackage-42.deb debian-binary control.tar.gz data.tar.gz
あなたは少なくとも必要な制御ファイルのフィールドを持つPackage
、Maintainer
、Priority
、Architecture
、Installed-Size
、Version
、、必要な依存関係の宣言を。
インストール後に実行されるスクリプトが呼び出されpostinst
ます。必ず実行可能にしてください。それは一緒に行きcontrol
ます。
別のディストリビューションのバイナリパッケージが既にある場合は、alienを使用して変換できます。
dch -i
。
ar
そうでtar
はないことは何ですか?
dh_make --createorig
使用する名前と電子メールを変更する場合は、事前に変更する必要がexport DEBEMAIL="me@example.com"
ありexport DEBFULLNAME="Firstname Lastname"
ます。
まず、ビルドフォルダーとファイルのアーカイブを作成する必要があります。 tar czvf data.tar.gz files
次に、ビルドフォルダーで、必要な情報を含む制御ファイルを作成する必要があります。
Package: xxxxxx
Version: 0.0.1
Section: user/hidden
Priority: optional
Architecture: armel
Installed-Size: `du -ks usr|cut -f 1`
Maintainer: Your Name <xxx@xxx.xx>
Description: This is optional, but creates warnings if left out
次に、preinst、postint、prerm、postrmシェルスクリプトを個別に追加して、.debファイルのインストール前後の動作および削除前後の動作を制御し、tarを使用して制御アーカイブを作成できます。 tar czvf control.tar.gz control preinst postinst prerm postrm
次に、debian-binaryファイルが必要ですecho 2.0 > debian-binary
。ビルドフォルダーには、次のファイルがdebian-binary
control.tar.gz
ありdata.tar.gz
ます。
最後にar
、.debファイルを作成するパッケージが必要です。ar -r xxx.deb debian-binary control.tar.gz data.tar.gz
ar -r xxx.deb debian-binary control.tar.gz data.tar.gz
は、順序が重要であることを強調する価値があります。データよりも先に制御を行う必要があります。
私は多くのパッケージを実行しますが、完全なパッケージを実行するのは簡単なことではありません。前向きな注意として、ファイルとスクリプトの作業ははるかに少ないです。debreateと呼ばれるツールを使用して、非常に簡単にこのようなパッケージを作成できます。
Debreateは、シンプルなDEBパッケージを作成するための、本当にシンプルなGUIです。ポスト/プレインストール/アンインストールで実行するファイル、実行先、実行するファイルを指定することができます。以前はすべてのパッケージを標準的な方法で実行していましたが、このツールの使用を開始した後は、必要な場合にのみ戻ります。
パッケージングに関するDebian Wikiをご覧ください。おそらくequivs
(リンクをご覧ください)すでに要件を満たしています。
deb
ファイル形式に関するウィキペディアのページには、多くの便利なリンクも含まれています。
Ubuntuパッケージを使用して、DebianでZimbra 7を実行します。(私は頑固で、Ubuntu専用のZimbraのリリースにもかかわらずDebian> bUbuntuが好きです。)以前どのようにこれを回避したかはわかりません。
mkdir new
for i in *.deb
do echo `date`: working on $i
ar x $i
cd control
rm * 2> /dev/null
tar -xzpvf ../control.tar.gz
tr "_" "-" < control > control2
mv -v control2 control
tar -czpvf ../control.tar.gz .
cd ..
ar r new/$i debian-binary control.tar.gz data.tar.gz
done
rm -rf debian-binary control.tar.gz data.tar.gz control
すべての新しい.debファイルはにありnew/
ます。
注:これはsqueezeにありました-wheezyのdpkgには--force-bad-versionがあります。
パッケージをすばやく作成するには、checkinstallプログラムを使用できます。プログラムをインストールし、変更を監視し、debまたはrpmパッケージを作成します。
$ apt-get install build-essential dh-make debhelper devscripts
$ wget http://nmap.org/dist/nmap-LAST.tar.bz2
$ tar xf nmap-LAST.tar.bz2
$ cd nmap-LAST
$ dh_make -s -e youremail@site.org -f ../nmap-LAST.tar.bz2
$ apt-get install libgtk2.0-dev flex bison libpcap0.8-dev \
libpcre3-dev binutils-dev python-all-dev
$ dpkg-buildpackage