コンパイルするソースコードがないもの(config、shellscripts、プロプライエタリソフトウェア)の.debパッケージを作成する簡単な方法を探しました。ほとんどのパッケージチュートリアルでは、コンパイルするソースtarballがあることを前提としているため、これは非常に問題でした。それから、私は this 短いチュートリアル(ドイツ語)を見つけました。
その後、簡単なリポジトリを作成する小さなスクリプトを作成しました。このような:
rm /export/my-repository/repository/*
cd /home/tdeutsch/deb-pkg
for i in $(ls | grep my); do dpkg -b ./$i /export/my-repository/repository/$i.deb; done
cd /export/avanon-repository/repository
gpg --armor --export "My Package Signing Key" > PublicKey
apt-ftparchive packages ./ | gzip > Packages.gz
apt-ftparchive packages ./ > Packages
apt-ftparchive release ./ > /tmp/Release.tmp; mv /tmp/Release.tmp Release
gpg --output Release.gpg -ba Release
キーをaptキーリングに追加し、次のようなソースを含めました。
deb http://my.default.com/my-repository/ ./
リポジトリ自体はうまく機能しているようです(いくつかの問題が発生しました。それらを修正するには、パッケージを2回追加し、リリースファイルの一時ファイルを回避する必要がありました)。また、ダウンロードした.debをリポジトリに入れましたが、問題なく動作しているようです。しかし、自分で作成したパッケージはそうではありませんでした... Wenn i do Sudo apt-get update
、次のようなエラーが発生しています。
E: Problem parsing dependency Depends
E: Error occurred while processing my-printerconf (NewVersion2)
E: Problem with MergeList /var/lib/apt/lists/my.default.com_my-repository_._Packages
E: The package lists or status file could not be parsed or opened.
誰かが私が間違ったことを知っていますか?
UPDATE 2012-03-06:DEBを作成する簡単な方法を探している他の人へのヒント: FPM 。
リンクしたチュートリアルでは、パッケージの構築に低レベルのアプローチを使用しています。通常、このようなアプローチは推奨されておらず、慎重に行わないと、あらゆる種類の問題につながる可能性があります。
パッケージの基本を理解すれば、スクリプトの.debを作成するのは非常に簡単です。手短に:
# Configure your paths and filenames
SOURCEBINPATH=~
SOURCEBIN=myscript.sh
DEBFOLDER=~/somescripts
DEBVERSION=0.1
DEBFOLDERNAME=$DEBFOLDER-$DEBVERSION
# Create your scripts source dir
mkdir $DEBFOLDERNAME
# Copy your script to the source dir
cp $SOURCEBINPATH/$SOURCEBIN $DEBFOLDERNAME
cd $DEBFOLDERNAME
# Create the packaging skeleton (debian/*)
dh_make -s --indep --createorig
# Remove make calls
grep -v makefile debian/rules > debian/rules.new
mv debian/rules.new debian/rules
# debian/install must contain the list of scripts to install
# as well as the target directory
echo $SOURCEBIN usr/bin > debian/install
# Remove the example files
rm debian/*.ex
# Build the package.
# You will get a lot of warnings and ../somescripts_0.1-1_i386.deb
debuild
さらにスクリプトを追加するには、ディレクトリにコピーしてdebian/installファイルに追加する必要があります。その後、debuildを再実行します。また、必要に応じてdebian/*ファイルを確認および更新する必要があります。
dh_make
、 dh_install
、および debuild
のマニュアルページを読む必要があります