it-swarm-eu.dev

Jak vytvořit soubor DEB ručně?

Chci vytvořit soubor DEB ručně. Chtěl bych pouze poskytnout složku, která obsahuje data k instalaci a skript, který bude proveden po instalaci.

Je to možné?

47
daisy

Vytváření zdrojového balíčku

Mým doporučením je vytvořit zdrojový balíček. Nainstalujte build-essential , debhelper , dh-make . Přejděte do adresáře, ve kterém jsou soubory, které chcete nainstalovat (název adresáře musí mít tvar $PACKAGE-$VERSION, např. myapp-4.2-1 pro váš první pokus zabalit Myapp V4.2) a spustit dh_make --createorig. Odpověz na otázky. Debhelper vytvoří základní infrastrukturu potřebnou k sestavení balíčku generováním souborů v podadresáři s názvem debian, což jsou některé povinné soubory i šablony pro volitelné soubory. Možná budete muset upravit některé z těchto souborů:

  • Upravit debian/rules k sestavení toho, co je potřeba vytvořit a nainstalovat soubory na správném místě. Pokud potřebujete pouze zkopírovat některé soubory a ne kompilovat věci, upravte soubor debian/install určete, které soubory je třeba nainstalovat.
  • Upravit debian/copyright přidejte licenční informace o vašem balíčku a informace o tom, kde získat nejnovější verzi (pokud je to relevantní).
  • Upravit debian/changelog odstranit odkaz na ITP (to je relevantní pouze v případě, že pracujete pro projekt Debian). Přejmenovat debian/postinst.exdebian/postinst a přidejte tam post-instalační příkazy. Pokud balíček aktualizujete později, spusťte debchange -i pro přidání záznamu changelogu nebo editaci souboru v Emacsu (s nainstalovaným dpkg-dev-el )).

Spustit dpkg-buildpackage -rfakeroot -us -uc postavit .deb package (odebrat -us -uc pokud chcete balíček podepsat klíčem PGP).

Přímé vytvoření binárního balíčku

Pokud se rozhodnete vytvořit binární balíček přímo, aniž byste jej vytvořili ze zdrojového balíčku, což není opravdu snazší, protože není tolik nástrojů, které by tento proces usnadnily, budete potřebovat základní znalost formátu deb balíčků. Je popsán v Debian Policy Manual , zejména kap. 3 (formát binárních balíčků) , kap. 5 (kontrolní soubory) , kap. 6 (instalační skripty) a dodatek B (manipulace s binárními balíčky) .

Zajistíte, aby váš balíček nainstaloval očekávané soubory /usr/share/doc/copyright (obsahující licenci na obsah balíčku a také kde najít nejnovější verzi balíčku) a /usr/share/doc/changelog.Debian.gz (obsahující changelog deb balíčku). Nepotřebujete je, pokud budete balíček používat pouze interně, ale je lepší je mít.

Na Debianu a derivátech

Pokud máte k dispozici nástroje Debian, použijte dpkg-deb k vytvoření balíčku. Do adresáře obsahujícího data k instalaci přidejte adresář s názvem DEBIAN na nejvyšší úrovni, obsahující kontrolní soubory a skripty správce.

$ ls mypackage-42
DEBIAN etc usr var
$ dpkg-deb -b mypackage-42

Těžká cesta

Pokud nemáte nástroje Debianu, vytvořte archiv souborů, které chcete zabalit, s názvem data.tar.gz, samostatný archiv řídících souborů s názvem control.tar.gz (bez podadresářů) a textový soubor s názvem debian-binary a obsahující text 2.0.

cd mypackage-42
tar czf ../data.tar.gz [a-z]*
cd DEBIAN
tar czf ../../control.tar.gz *
cd ../..
echo 2.0 > debian-binary
ar r mypackage-42.deb debian-binary control.tar.gz data.tar.gz

Potřebujete alespoň kontrolní soubor s poli Package, Maintainer, Priority, Architecture, Installed-Size, Version a veškerá nezbytná prohlášení o závislosti.

Skript, který má být proveden po instalaci, se nazývá postinst. Ujistěte se, že je spustitelný. Spolu s control.

Převod binárního balíčku z jiného formátu

Pokud již máte binární balíček z jiné distribuce, můžete jej převést pomocí alien .

Nejprve musíte vytvořit složku pro sestavení a archiv vašich souborů: tar czvf data.tar.gz files

Poté ve složce build musíte vytvořit kontrolní soubor s několika hledanými informacemi:

 Package: xxxxxx
 Version: 0.0.1
 Section: user/hidden 
 Priority: optional
 Architecture: armel
 Installed-Size: `du -ks usr|cut -f 1`
 Maintainer: Your Name <[email protected]>
 Description: This is optional, but creates warnings if left out

Pak můžete přidat samostatně skripty Shell pro předinstalaci, postint, prerm a postrm pro ovládání chování instalace před a po instalaci a před a po odebrání chování souboru .deb a pak můžete vytvořit kontrolní archiv pomocí tar: tar czvf control.tar.gz control preinst postinst prerm postrm

Pak potřebujete debian-binární soubor: echo 2.0 > debian-binary. Ve složce sestavení byste nyní měli mít tyto soubory: debian-binarycontrol.tar.gz a data.tar.gz.

Nakonec budete potřebovat balíček ar k vytvoření souboru .deb: ar -r xxx.deb debian-binary control.tar.gz data.tar.gz

10
Gigamegs

Dělám spoustu balíčků a udělat celý není triviální záležitost. Pozitivní je, že soubory a skripty jsou mnohem méně práce. Takový balíček můžete vytvořit velmi jednoduše pomocí nástroje známého jako debreate .

Debreate je opravdu jednoduché uživatelské rozhraní, které slouží pouze k vytváření jednoduchých balíčků DEB. Můžete pouze určit, které soubory, kam směřují a zda/co by se mělo provádět po post/před instalaci/odinstalaci. Obvykle jsem dělal všechny své balíčky standardním způsobem, ale poté, co jsem začal používat tento nástroj, se vrátím pouze v případě potřeby.

3
J. M. Becker

Viz Debian Wiki on Packaging , možná equivs (viz odkaz) již splňuje vaše požadavky.

Stránka Wikipedie ve formátu souboru deb také obsahuje mnoho užitečných odkazů.

2
sr_

Do Debian se zapojil pomocí Zimbra 7 pomocí balíčků Ubuntu. (Jsem tvrdohlavý, mám rád Debian> bUbuntu, i když Zimbra uvolňuje pouze pro Ubuntu.) Nejsem si jistý, jak jsem to obešel předtím, jsem si jist, že jsem to nemusel dělat, když jsem to nainstaloval dříve!

mkdir new
for i in *.deb
 do echo `date`: working on $i
 ar x $i
 cd control
 rm * 2> /dev/null
 tar -xzpvf ../control.tar.gz
 tr "_" "-" < control > control2
 mv -v control2 control
 tar -czpvf ../control.tar.gz .
 cd ..
 ar r new/$i debian-binary control.tar.gz data.tar.gz
done
rm -rf debian-binary control.tar.gz data.tar.gz control

Všechny vaše nové soubory .deb budou v new/.

Poznámka: to bylo na squeeze - dpkg na wheezy má nyní --force-bad-version.

1
math

Pro rychlé vytváření balíčků můžete použít program checkinstall. Provádí instalaci programu, sleduje změny - a vytváří balíček deb nebo rpm.

1
undefine