GNU/Linux >> Znalost Linux >  >> Debian

Jak sestavit balíčky Debianu ze zdroje

V tomto průvodci krok za krokem se podíváme, jak sestavit balíčky debianu ze zdroje na Debianu, Ubuntu a dalších systémech založených na APT, jako je Linux Mint.

Debian a systémy založené na Debianu, jako je Ubuntu, používají Advanced Package Tool nebo APT zkrátka pro instalaci, aktualizaci, aktualizaci a odstranění softwaru z příkazového řádku.

Obvykle správce balíčků APT ukládá seznam repozitářů do souboru s názvem /etc/apt/sources.list a v libovolném souboru s příponou .list v adresáři /etc/apt/sources.list.d/ .

Když nainstalujeme balíček, apt příkaz načte binární nebo předkompilovanou verzi daného balíčku z těchto úložišť.

Kromě instalace binárních balíčků vám APT také umožňuje stáhnout zdrojový kód balíčku. Poté můžete přidat některé funkce do zdrojového kódu, sestavit balíček ze zdrojového kódu a nakonec nainstalovat upravenou verzi balíčku.

Proč bychom měli sestavovat balíček ze zdroje?

Důvodů, proč sestavit balíček ze zdroje, může být mnoho. Zde je několik důvodů, které mě nyní napadají:

  • Prohlédněte si zdrojový kód a najděte chybu.
  • Přidejte do balíčků nové funkce, které již nejsou aktivně vyvíjeny.
  • Nainstalujte nejnovější verzi balíčku ze zdroje. Obecně mohou být balíčky v oficiálních repozitářích trochu staré.
  • A co je důležitější - naučte se sestavovat balíčky Debianu ze zdroje.

Nainstalujte potřebné nástroje pro sestavení

Abychom mohli sestavit binární balíček ze zdroje, musíme nejprve nainstalovat potřebné nástroje pro sestavení. V závislosti na nástroji příkazového řádku k sestavení binárního balíčku možná budete muset nainstalovat některý z následujících balíčků:

  1. dpkg-dev
  2. devscripts

Tyto balíčky poskytují četné nástroje pro vytváření binárních balíčků ze zdrojového kódu.

Chcete-li nainstalovat "dpkg-dev" , spustit:

$ sudo apt install dpkg-dev

Příkaz k instalaci "devscripts" balíček je:

$ sudo apt install devscripts

Povolit zdrojová úložiště

Ujistěte se, že jste povolili zdrojová úložiště.

Chcete-li tak učinit, otevřete /etc/apt/sources.list soubor:

$ sudo vim /etc/apt/sources.list

Uvidíte v něm několik řádků jako níže:

# Viz http://help.ubuntu.com/community/UpgradeNotes, jak upgradovat na # novější verze distribuce.deb http://in.archive.ubuntu.com/ubuntu focal main limited# deb- src http://in.archive.ubuntu.com/ubuntu hlavní omezené[...]

Ve výše uvedeném souboru jsou všechny řádky začínající jedním nebo dvěma hashemi (#) pouze komentáře, pouze pro informaci. A řádky bez hashů jsou apt repozitáře .

V úložišti apt se řádky začínající na „deb“ vztahují k binárním balíčkům, které mohou uživatelé nainstalovat pomocí správce balíčků apt. A řádky začínající "deb-src" jsou relativní ke zdrojovým balíčkům. To je užitečné pro vývojáře. Ve výchozím nastavení je "deb-src" zakomentován v seznamu zdrojů.

Chcete-li stáhnout zdrojové balíčky, musíte odkomentovat řádek "deb-src". Odstraňte # symbol pro odkomentování řádku. Po odkomentování by řádky úložiště měly vypadat takto:

# Viz http://help.ubuntu.com/community/UpgradeNotes, jak upgradovat na # novější verze distribuce.deb http://in.archive.ubuntu.com/ubuntu focal main limited deb-src http://in.archive.ubuntu.com/ubuntu focal main omezený [...]

Uložte a zavřete soubor. Aktualizujte seznam úložiště pomocí příkazu:

Aktualizace $ sudo apt

Stáhněte si zdrojové balíčky

Stáhněte si zdrojový kód balíčku pomocí "apt source <package-name>" příkaz. Například následující příkaz stáhne zdrojový kód "Hello World!" program:

$ apt source ahoj

Ukázkový výstup:

Čtení seznamů balíčků... HotovoPotřebujete získat 734 kB zdrojových archivů.Získejte:1 http://in.archive.ubuntu.com/ubuntu focal/main hello 2.10-2ubuntu2 (dsc) [1847 B]Získejte:2 http://in.archive.ubuntu.com/ubuntu focal/main ahoj 2.10-2ubuntu2 (tar) [726 kB]Get:3 http://in.archive.ubuntu.com/ubuntu focal/main ahoj 2.10- 2ubuntu2 (diff) [6560 B]Načteno 734 kB za 2s (336 kB/s)dpkg-source:info:extrahování hello in hello-2.10 dpkg-source:info:unpacking hello_2.10.orig.tar.gz dpkg-source:info:rozbalení hello_2.10-2ubuntu2.debian.tar.xz 

Jak můžete vidět, stáhl jsem si zdrojový kód programu Hello World.

$ ls hello-2.10 hello_2.10-2ubuntu2.debian.tar.xz hello_2.10-2ubuntu2.dsc hello_2.10.orig.tar.gz

Prohlédněte si skutečný obsah zdrojového kódu:

$ ls hello-2.10/ O-NLS ChangeLog INSTALACE NOVINKY README-release aclocal.m4 configure debian lib man testy AUTOŘI ChangeLog.O Makefile.am ČTĚTE DĚKUJI build-aux configure.ac doc m4 poKOPÍROVÁNÍ GNUmakefile Makefile.in README-dev TODO hello config.1 maint .mk src

Nainstalujte závislosti sestavení pro balíček

Dále musíme nainstalovat i závislosti pro tento balíček. Chcete-li to provést, spusťte:

$ sudo apt build-dep ahoj

Nyní jsme stáhli zdrojový kód balíčku a nainstalovali závislosti potřebné k sestavení tohoto balíčku. Dále proveďte změny ve zdrojovém kódu.

Upravit zdrojový kód balíčku debian

Cd do adresáře, který obsahuje zdroj balíčku. V našem případě je to ahoj-2.10 .

$ cd hello-2.10

Upravte kód dle přání. Kód je v souboru "hello.c" pod "src" adresář.

$ vi src/hello.c

Upravte kód a/nebo proveďte jakékoli změny. Po dokončení úprav kódu soubor uložte a zavřete.

Nyní je čas sestavit skutečný balíček .deb.

Sestavte balíčky Debianu ze zdroje

Stáhli jsme zdrojový kód a upravili kód. Pojďme sestavit balíček ze zdroje. Můžeme to udělat třemi způsoby:

  1. Pomocí "dpkg-buildpackage" příkaz
  2. Pomocí "debuild" příkaz
  3. Stáhněte si zdroj a vytvořte jej přímo

Metoda 1 – Použití dpkg-buildpackage:

Ujistěte se, že jste nainstalovali "dpkg-dev" balíček.

A pak spusťte následující příkaz pro sestavení balíčku ze zdroje:

$ dpkg-buildpackage -rfakeroot -b -uc -us

Tady,

  • dpkg-buildpackage -  Příkaz pro sestavení binárních nebo zdrojových balíčků ze zdrojů.
  • -rfakeroot - Vytvořte prostředí fakeroot pro simulaci oprávnění root (pro zamezení problémům s vlastnictvím a oprávněními).
  • -b - Sestavte pouze binární balíček.
  • -uc - Nepodepisujte protokol změn kryptograficky. tj. nepodepisujte .buildinfo a .changes soubory
  • -us - Nepodepisujte zdrojový balíček.

Ujistěte se, že jste výše uvedený příkaz spustili v hlavním adresáři zdrojového stromu. Jinak to nebude fungovat.

Pokud je sestavení úspěšné, zobrazí se zpráva jako níže:

[...]dpkg-deb:sestavení balíčku 'hello' v '../hello_2.10-2ubuntu2_amd64.deb'. dpkg-deb:sestavení balíčku 'hello-dbgsym' v 'debian/.debhelper/scratch-space/build-hello/hello-dbgsym_2.10-2ubuntu2_amd64.deb'. Přejmenování hello-dbgsym_2.10-2ubuntu2_amd64.deb na hello-dbgsym_2.10-2ubuntu2_amd64.ddeb dpkg-genbuildinfo --build=binary dpkg-genchanges --build=binary>..gen-samdpuntu:6.1 info:nahrání pouze binárně (bez zdrojového kódu) dpkg-source --after-build .dpkg-buildpackage:info:pouze binární nahrání (bez zdroje)

Gratulujeme! Úspěšně jsme vytvořili balíček .deb ze zdroje. Nyní se vraťte do nadřazeného adresáře a uvidíte nově vytvořený soubor .deb:

$ cd ..
$ ls

Ukázkový výstup:

hello-2.10 hello_2.10-2ubuntu2.dsc hello_2.10-2ubuntu2_amd64.deb hello-dbgsym_2.10-2ubuntu2_amd64.ddeb hello_2.10-2ubuntu2_amd64.buildinfo hello_2.10.orig.tar.gzhello_2.10-2ubuntu2.debian.tar.xzchange hello_2.10-264pre.2 

Metoda 2 – Použití debuild

Ujistěte se, že jste nainstalovali "devscripts" balíček.

Poté sestavte binární balíček spuštěním následujícího příkazu ze zdrojového stromu:

$ debuild -b -uc -us

Po úspěšném sestavení bude výsledný .deb balíček bude uložen v nadřazeném adresáři.

Metoda 3 – Stáhněte si a vytvořte přímo

Toto je nejjednodušší a přímočará metoda než výše uvedené dvě metody. Při této metodě stáhneme zdrojový kód balíčku a předáme "--compile" možnost sestavit binární soubor v jediném příkazovém řádku níže:

$ sudo apt-get source --compile hello

Výše uvedený příkaz stáhne zdrojový kód "hello" program a sestavte .deb balíček a uložte jej do aktuálního adresáře.

Nainstalujte soubor .deb

Přejděte do umístění, kde je .deb soubor se uloží a nainstalujte jej následovně:

$ sudo dpkg -i hello_2.10-2ubuntu2_amd64.deb

Pokud se zobrazí chybová zpráva o chybějících závislostech, spusťte:

$ sudo apt install -f

Jak můžete vidět, sestavení balíčku debianu ze zdrojového kódu v Linuxu je velmi snadné!

Související čtení:

  • Jak sestavit balíčky ze zdroje pomocí CheckInstall
  • Jak snadno vytvářet balíčky Linuxu pro více platforem
  • Znovu vytvořte binární balíčky Debianu, které jsou již nainstalovány v systému
  • Jak převést balíčky Linuxu pomocí aplikace Alien
  • Jak převést balíčky DEB na balíčky Arch Linux

Doufám, že to pomůže.


Debian
  1. Jak kompilovat Brotli Compression Tool ze zdroje na Debianu 9

  2. Jak upgradovat z Debianu 10 na Debian 11

  3. Jak sestavit balíčky ze zdroje pomocí CheckInstall

  1. Jak extrahovat soubory z archivu balíčků Debian DEB

  2. Jak nainstalovat balíčky RPM na Debian 11 Bullseye

  3. Debian – Jak poznat zdrojové úložiště balíčku v Debianu?

  1. Jak nainstalovat Yarn na Debian 9

  2. Debian – Jak nainstalovat některé balíčky z „nestabilního“ Debianu na počítač Se spuštěným „stabilním“ Debianem?

  3. Jak povolím v Debianu balíčky, které nejsou zdarma?