Szukałem prostego sposobu tworzenia pakietów .deb dla rzeczy, które nie mają kodu źródłowego do skompilowania (config, shellscripts, oprogramowanie prawnie zastrzeżone). To był dość problem, ponieważ większość samouczków pakietu zakłada, że masz źródłowy plik archiwum, który chcesz skompilować. Potem znalazłem ten krótki samouczek (niemiecki).
Następnie stworzyłem mały skrypt, aby utworzyć proste repozytorium. Lubię to:
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
Dodałem klucz do apt keyring i dołączyłem takie źródło:
deb http://my.default.com/my-repository/ ./
Wygląda na to, że samo repozytorium działa dobrze (natknąłem się na pewne problemy, aby je naprawić, musiałem dwukrotnie dodać pakiety i zrobić obejście pliku tymczasowego dla pliku Release). W repozytorium umieściłem również pobrany plik .deb, wygląda na to, że działają one również bez problemów. Ale moje samodzielnie utworzone pakiety nie ... Wiem sudo apt-get update
, powodują one takie błędy:
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.
Czy ktoś ma pomysł, co zrobiłem źle?
AKTUALIZACJA 2012-03-06: Tylko wskazówka dla innej osoby, która szuka łatwego sposobu tworzenia DEB: spójrz na FPM .