J'ai cherché un moyen simple de créer des paquets .deb pour des choses qui n'ont pas de code source à compiler (configs, shellscripts, logiciels propriétaires). C'était un problème car la plupart des tutoriels de paquet supposent que vous avez une archive source que vous voulez compiler. Ensuite, j'ai trouvé ce court tutoriel (allemand).
Ensuite, j'ai créé un petit script pour créer un référentiel simple. Comme ça:
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
J'ai ajouté la clé au trousseau d'apt et ai inclus la source comme ceci:
deb http://my.default.com/my-repository/ ./
Il semble que le référentiel lui-même fonctionne bien (j'ai rencontré quelques problèmes; pour les résoudre, j'ai dû ajouter les packages à deux reprises et créer la solution de contournement de fichier temporaire pour le fichier Release). J'ai également mis quelques fichiers .deb téléchargés dans le dépôt, il semble qu'ils fonctionnent aussi sans problèmes. Mais mes paquets créés par moi-même n’ont pas ... Quand je le fais sudo apt-get update
, ils provoquent des erreurs comme celle-ci:
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.
Quelqu'un at-il une idée de ce que j'ai mal fait?
UPDATE 2012-03-06: Juste un conseil pour une autre personne à la recherche d'un moyen facile de créer des DEB: jetez un coup d'œil à FPM .