Ich suchte nach einem einfachen Weg, um .deb-Pakete für Dinge zu erstellen, die keinen Quellcode zum Kompilieren haben (Configs, Shellscripts, proprietäre Software). Dies war ein ziemliches Problem, da die meisten Paket-Tutorials davon ausgehen, dass Sie ein Quell-Tarball haben, das Sie kompilieren möchten. Dann habe ich dieses kurze Tutorial gefunden .
Danach habe ich ein kleines Skript erstellt, um ein einfaches Repository zu erstellen. So was:
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
Ich habe den Schlüssel zum passenden Schlüsselbund hinzugefügt und die Quelle so eingefügt:
deb http://my.default.com/my-repository/ ./
Es sieht so aus, als ob das Repo selbst gut funktioniert (ich hatte einige Probleme, um diese zu beheben, musste ich die Pakete zweimal hinzufügen und die temporäre Datei als Workaround für die Release-Datei verwenden). Ich habe auch einige heruntergeladene .deb in das Repo gelegt, es sieht so aus, als würden sie auch ohne Probleme funktionieren. Aber meine selbst erstellten Pakete haben nicht ... Wenn ich das tue sudo apt-get update
, verursachen sie Fehler wie diesen:
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.
Hat jemand eine Idee was ich falsch gemacht habe?
UPDATE 06.03.2012: Nur ein Hinweis für eine andere Person, die nach einer einfachen Möglichkeit zum Erstellen von DEBs sucht: Schauen Sie sich FPM an .
Antworten:
Das Tutorial, das Sie verlinkt haben, verwendet einen einfachen Ansatz zum Erstellen eines Pakets. Ein solcher Ansatz wird normalerweise nicht empfohlen und kann zu allen möglichen Problemen führen, wenn er nicht sorgfältig durchgeführt wird.
Das Erstellen einer .deb-Datei für ein Skript ist sehr einfach, sobald Sie die Grundlagen des Packens verstanden haben. In einer Nussschale:
Um weitere Skripte hinzuzufügen, müssen diese in das Verzeichnis kopiert und zur debian / install-Datei hinzugefügt werden. Führen Sie dann einfach debuild erneut aus. Sie sollten auch die debian / * -Dateien nach Bedarf überprüfen und aktualisieren.
Sie sollten die Manpages lesen:
dh_make
,dh_install
, unddebuild
quelle
--indep
Flagsdh_make
wird das Paket "Architecture: all" erstellt. Das-b
Flag ist auch in Version 11.04 und höher nicht vorhanden.lintian somescripts_0.1-1_i386.deb
oderlintian package-source.changes
- siehe: packaging.ubuntu.com/html/...