我搜索了一个简单的方法来创建没有源代码需要编译的.deb软件包(配置文件、shell脚本、专有软件)。这是一个相当大的问题,因为大多数软件包教程都假设你有一个想要编译的源代码tarball。然后我找到了这个简短的教程(德语)。
之后,我创建了一个小脚本来创建一个简单的软件仓库。就像这样:
看起来仓库本身运行良好(我遇到了一些问题,为了解决它们,我需要添加两次Packages并对Release文件进行临时文件处理)。我还将一些下载的.deb文件放入了仓库,看起来它们也没有问题。但是我自己创建的软件包却不行...当我执行
有人知道我做错了什么吗?
更新 2012-03-06:给另一个正在寻找创建DEB包简便方法的人一个提示:看看FPM。
之后,我创建了一个小脚本来创建一个简单的软件仓库。就像这样:
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/ ./
看起来仓库本身运行良好(我遇到了一些问题,为了解决它们,我需要添加两次Packages并对Release文件进行临时文件处理)。我还将一些下载的.deb文件放入了仓库,看起来它们也没有问题。但是我自己创建的软件包却不行...当我执行
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.
有人知道我做错了什么吗?
更新 2012-03-06:给另一个正在寻找创建DEB包简便方法的人一个提示:看看FPM。