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 .
Odpowiedzi:
Samouczek, który połączyłeś, wykorzystuje podejście niskiego poziomu do budowania pakietu. Takie podejście zwykle nie jest zalecane i może prowadzić do różnego rodzaju problemów, jeśli nie zostanie wykonane starannie.
Tworzenie .deb dla skryptu jest bardzo proste, gdy zrozumiesz podstawy pakowania. W skrócie:
Dodanie kolejnych skryptów wymaga ich skopiowania do katalogu i dodania do pliku debian / install - a następnie po prostu uruchom ponownie debuild. Powinieneś także sprawdzić i zaktualizować pliki debian / * zgodnie z wymaganiami.
Należy przeczytać strony man dla:
dh_make
,dh_install
, idebuild
źródło
--indep
flagidh_make
spowoduje, że pakiet „Architektura: wszystko” Również-b
flaga nie istnieje w wersji 11.04 i nowszych.lintian somescripts_0.1-1_i386.deb
lublintian package-source.changes
- patrz: opakowanie.ubuntu.com/html/…