Jak utworzyć prosty pakiet debian (wystarczy kompresować / wyodrębniać źródła lub pliki z pakietem debian)
Muszę utworzyć nowy pakiet .deb projektu Realxtend (https://github.com/realXtend/naali). Jest to ogromny projekt z wieloma zależnościami i automatycznym skryptem bash (/tools/Linux/build-deps.bash) do pobierania, kompilowania i instalowania wszystkich pakietów i plików wykonywalnych. Więc próbuję wielu tutoriali, ale często popełniam błędy i utknęłam, ponieważ tutoriale są przestarzałe (głównie z nowym plikiem „rules”) ... a także dlatego, że nie jestem inicjatorem dev.
Na początek potrzebuję tylko utworzyć plik .deb dokładnie taki jak proste archiwum, tj. Nie interpretować żadnego procesu budowania, „makefile” ani innych rzeczy. Chciałbym po prostu skompresować / rozpakować plik .deb zawierający wszystkie projekty skonfigurowane już ze wszystkimi zależnościami, takie jak plik .zip z dowolnym folderem, rozpakować całą zawartość tuż obok archiwum.
Mam 2 foldery / naali i / naali-deps z różnymi plikami (exe, src, lib, ...) skonfigurowanymi z uruchomionym build-deps.bash na Ubuntu Precise x64. biegnędh_make
, wyczyść i wypełnij / debian pliki (dziennik zmian, kontrola, prawa autorskie), utwórz klucz gpg i uruchomsudo debuild -us -uc -k0xCODE
(usłyszałem „sudo” to „złe”, ale nie wiem bez ...)
Rozumiem :
dpkg-buildpackage -rfakeroot -D -us -uc
dpkg-buildpackage: warning: using a gain-root-command while being root
dpkg-buildpackage: source package realxtend
dpkg-buildpackage: source version 0-1
dpkg-buildpackage: source changed by sylvain Bicherel <[email protected]>
dpkg-source --before-build realxtend-0
dpkg-buildpackage: host architecture amd64
fakeroot debian/rules clean
dh clean
dh_testdir
dh_auto_clean
dh_clean
dpkg-source -b realxtend-0
dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: info: building realxtend using existing ./realxtend_0.orig.tar.gz
dpkg-source: warning: ignoring deletion of file naali-deps/build/bullet-2.81-rev2613/Extras/CDTestFramework/License.txt.bak
dpkg-source: warning: ignoring deletion of directory naali-deps/build/bullet-2.81-rev2613/autom4te.cache
dpkg-source: warning: ignoring deletion of file naali-deps/build/bullet-2.81-rev2613/autom4te.cache/traces.1
dpkg-source: warning: ignoring deletion of file naali-deps/build/bullet-2.81-rev2613/autom4te.cache/output.1
dpkg-source: warning: ignoring deletion of file naali-deps/build/bullet-2.81-rev2613/autom4te.cache/requests
dpkg-source: warning: ignoring deletion of file naali-deps/build/bullet-2.81-rev2613/autom4te.cache/traces.0
dpkg-source: warning: ignoring deletion of file naali-deps/build/bullet-2.81-rev2613/autom4te.cache/output.0
dpkg-source: info: building realxtend in realxtend_0-1.debian.tar.gz
dpkg-source: info: building realxtend in realxtend_0-1.dsc
debian/rules build
dh build
dh_testdir
dh_auto_configure
dh_auto_build
dh_auto_test
fakeroot debian/rules binary
dh binary
dh_testroot
dh_prep
dh_installdirs
dh_auto_install
dh_install
dh_installdocs
dh_installchangelogs
dh_installexamples
dh_installman
dh_installcatalogs
dh_installcron
dh_installdebconf
dh_installemacsen
dh_installifupdown
dh_installinfo
dh_installinit
dh_installmenu
dh_installmime
dh_installmodules
dh_installlogcheck
dh_installlogrotate
dh_installpam
dh_installppp
dh_installudev
dh_installwm
dh_installxfonts
dh_installgsettings
dh_bugfiles
dh_ucf
dh_lintian
dh_gconf
dh_icons
dh_perl
dh_usrlocal
dh_link
dh_compress
dh_fixperms
dh_strip
dh_makeshlibs
dh_shlibdeps
dh_installdeb
dh_gencontrol
dpkg-gencontrol: warning: Depends field of package realxtend: unknown substitution variable ${shlibs:Depends}
dh_md5sums
dh_builddeb
dpkg-deb : construction du paquet « realxtend » dans « ../realxtend_0-1_amd64.deb ».
dpkg-genchanges >../realxtend_0-1_amd64.changes
dpkg-genchanges: including full source code in upload
dpkg-source --after-build realxtend-0
dpkg-buildpackage: full upload (original source is included)
Now running lintian...
warning: the authors of lintian do not recommend running it with root privileges!
W: realxtend source: configure-generated-file-in-source naali-deps/build/celt-0.11.1/config.status
W: realxtend source: configure-generated-file-in-source naali-deps/build/celt-0.11.1/config.log
W: realxtend: new-package-should-close-itp-bug
W: realxtend: empty-binary-package
Finished running lintian.
... więc potrzebuję pomocy w:
1) Czy znasz zaktualizowany i kompletny samouczek (dla nowicjusza) inny niż „Opiekun nowego Debiana” i irc / maillist jak # debian-dev ... -> zobacz link Phpdna i dla określonych źródeł pakowania, gdzie rozumiem mój błąd i używajdpkg-source
cmd:http://debian-handbook.info/browse/wheezy/sect.source-package-structure.html
2) Jak zrobić „debianizację” mojego projektu? -> zdh_make
następniedpkg-buildpackage -rfakeroot
, to (a) dobry sposób
3) Gdzie są moje błędy? -> empty-binaries-files Ostrzeżenie lintian jest normalne, a następnie błędne cmd: needdpkg-source
, niedpkg-deb
4) Co powinienem zrobić z $ {shlibs: Depends}? -> automatyczna rzecz lib-deps-links, teraz nie mam nic przeciwko
5) Dlaczego mam pusty pakiet binarny? -> w rzeczywistości wszystkie dane już w moim przypadku pozostają w .orig.tar.gz
Wielkie dzięki, jeśli możesz oświecić mnie na temat magii pakietu .deb.
EDYCJA: Więc znalazłem ostateczne cmd, którego potrzebuję, tylkodpkg-source -x projet-version.dsc
. Nie zrozumiałem zawartości pliku .deb tylko zmiany i zablokowałemdebuild
idpkg-deb -...
cmds do budowania nie do źródeł ekstraktu (i dowolnych plików).
Rozwiązanie :
sudo apt-get install debhelper build-essential dh-make
utwórz folder / projekt z innym folderem zawierającym cały projekt o nazwie / wersja-projektudh_make --createorig
w / project-version +rm -rf *ex *EX README*
w / debian + wypełnij poprawnie / debian / {zasady; copyright; changelog}dpkg-buildpackage -rfakeroot
z-us -uc
lub-k0x[GPG-KEY]
in / project-versionZawsze trzymaj się razem {project_version.orig.tar.gz (wszystkie projekty danych); project_version.debian.tar.gz (modifs); project_version_all / any.deb (modifs); project_version_arch.changes (meta); project_version.dsc (meta)}Biegaćdpkg-source -x projet-version.dsc
wyodrębnić projektWięc teraz dodaj do niego kilka automatycznych skryptów i jak tylko się to uda, zaznaczę rozwiązanie.