Použití Devtools na Arch Linuxu

Balíček Devtools byl původně vytvořen pro důvěryhodné uživatele, aby správně vytvářel balíčky pro oficiální úložiště. Může však sloužit i běžným uživatelům k sestavení AUR balíčků, nebo dokonce upravených oficiálních balíčků.

V této příručce naleznete obecné porozumění a používání AUR, včetně získání PKGBUILD. Tento dokument ukazuje pouze kroky specifické pro Devtools, pokud se jedná o metodu, kterou zvolíte pro kompilaci balíčku.

Devtools udržuje samostatnou čistou instalaci Arch umístěnou v /var/lib/archbuild/<TARGET>/root, která obsahuje pouze skupiny balíčků basea base-devel. Pokud tato čistá instalace neexistuje, automaticky ji vytvoří. Pokud existuje, automaticky aktualizuje všechny balíčky v něm. Když se k sestavení balíčku použije Devtools, začne s kopií této čisté instalace, nainstaluje požadované balíčky pouze do kopie, zkopíruje do ní zdrojový kód, provede v něm kompilaci a zabalení a zkopíruje pouze výsledný balíček, v identické podobě, než se nachází v oficiálních repozitářích.

Oproti přímému spuštění mají Devtools výhody makepkg. Jednou z výhod je, že base-develani další balíčky nutné ke kompilaci, ale nikoli ke spuštění, balíček, který vytváříte, nikdy neskončí ve vašem hlavním systému. To je méně balíčků, které je třeba pravidelně upgradovat a mít z toho obavy. Ačkoli je tento proces primárně výhodný pro správce balíčků Arch, tento proces snadno odhalí, když PKGBUILDje a nesprávné, například když v seznamu chybí závislost, kterou správce náhodou již nainstaloval do jejich hlavního systému. Můžete také použít stroj, který je rychlejší při sestavování balíčků, a zkopírovat výsledný balíček na pomalejší stroj, který jej spustí, aniž by došlo ke znečištění instalace stavebního stroje.

Hlavní nevýhodou je, že čistý kořen je vždy k dispozici, zabírá asi 800 MB a obvykle je tam jedna kopie, která zabírá více místa. Všimněte si, že pokud /var/lib/archbuild/používá Btrfs, kopie čistého kořene začíná jako snímek Btrfs, takže tyto soubory nezabírají dvakrát místo. Čistý kořen je tam vždy uchováván, aby nedošlo k jeho opětovné instalaci při každém vytváření balíčku.

Kompilace pomocí Devtools

Nainstalovat Devtools:

# pacman -S devtools

Chcete-li sestavit balíček, Devtools zahrnuje archbuild, ale nespustíte to přímo. Obsahuje také symbolické odkazy {extra, gnome-unstable, kde-unstable, staging, testing}-x86_64-build. Symbolický odkaz, který se používá ke spuštění, bude zkontrolován archbuild, aby určil, který cíl chcete použít. Lze jej spustit pro použití těchto nestabilních/stagingových/testovacích repozitářů, které mohou mít novější verze, než byly vydány do oficiálních repozitářů. Chcete-li použít oficiální úložiště pro balíčky bez AUR , spusťte v adresáři s příponou PKGBUILD, například adresář vytvořený uživatelem git clone, následující:

$ extra-x86_64-build

Poznámka: Zbytek této příručky bude odkazovat pouze na extra-x86_64-build.

Po dokončení běhu budou výsledky následující:

  • /var/lib/archbuild/extra-x86_64/root- Čistý chroot , což je aktuální instalace pouze se skupinami balíčků basea base-devel.
  • /var/lib/archbuild/extra-x86_64/<USERNAME>- Toto bude obsahovat build chroot . Toto je kopie čistého chrootu se všemi závislostmi potřebnými k sestavení nebo spuštění sestavovaného balíčku, stejně jako jeho zdrojový kód, výsledky kompilace a balíček.
  • Adresář, ve kterém se nacházíte, bude obsahovat balíček a soubory protokolu sestavení a také jakýkoli stažený zdrojový kód.

Na konci si můžete všimnout „ Checking PKGBUILD“ a „ Checking <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz“. Všechny řádky za těmito jsou výstupem z namcap, který automaticky hledá problémy, jako jsou chybně formátované PKGBUILDsoubory, zahrnuty závislosti, které balíček zřejmě nepoužívá, nezahrnuté závislosti, které balíček zřejmě používá a další. Falešné poplachy jsou často generovány namcap, ale je to skvělý nástroj, jak dát věci k prošetření. Pokud váš balíček funguje správně, není dobrý nápad upozorňovat správce na namcapvýstup, pokud jste se na něj nepodívali a neověřili, že by měla být provedena změna.

Můžete použít pacmank instalaci balíčku, který nainstaluje všechny závislosti potřebné ke spuštění balíčku, pokud jsou v oficiálních úložištích nebo v místním úložišti.

Buď použijte místní úložiště, jak je vysvětleno zde , nebo nainstalujte soubor přímo:

# pacman -U <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz

Pokud byste měli spustit extra-x86_64-buildznovu, právě teď nebo kdykoli později s tímto nebo jiným balíčkem, v případě potřeby aktualizuje čistý chroot, odstraní sestavení chroot a vytvoří z něj novou kopii čistého chrootu a provede stejný proces. Pokud má váš adresář stále zdrojový kód stažený z poslední doby, použije jej. Pokud je balíček vývojovým balíčkem AUR, namísto opětovného klonování vytáhne nové změny.

Interně extra-x86_64-buildběží makechrootpkg, který interně volá makepkg. Možnosti pro extra-x86_64-buildzahrnují následující:

  • -c: Vyčistěte chrooty odstraněním a opětovným vytvořením celého /var/lib/archbuild/extra-x86_64/adresáře, včetně jeho čistého chrootu a všech adresářů sestavení chroot. To je zřídka potřeba, pouze pokud dojde k poškození čistého chrootu nebo pokud je Devtools upgradován způsobem, který naruší zpětnou kompatibilitu.
  • -r <dir>: Použijte jiný adresář než /var/lib/archbuild/extra-x86_64/pro umístění chrootů.

Všechny argumenty do extra-x86_64-buildafter --jsou předány do makechrootpkg, když je interně používá. Několik argumentů je vždy automaticky předáno z extra-x86_64-builddo makechrootpkg. Tyto automatické argumenty jsou -r <value given to extra-x86_64-build -r option if given, /var/lib/archbuild/extra-x86_64 otherwise> -c -n. Říkají, že je makechrootpkgtřeba odstranit chroot sestavení a vytvořit z něj novou kopii čistého chrootu a spustit namcapna balíčku, pokud se úspěšně sestaví. Běžně používaná možnost, kterou lze předat, makechrootpkgje -l <copy name>. Toto je název adresáře, který má dát chroot sestavení místo <USERNAME>, což je užitečné pro údržbu více kopií nebo kompilaci více balíčků současně.

Všechny argumenty do makechrootpkgafter --jsou předány makepkg, když je interně používá k sestavení balíčku. První makepkgspuštění pomocí makechrootpkg, provádí se s vlastními neměnnými možnostmi, v případě potřeby stáhnout zdrojové soubory a provést kontroly integrity; takže při tomto běhu nelze nic předat. Spustí makepkgse podruhé za účelem sestavení balíčku a vždy automaticky předá makepkgargumenty, --syncdeps --noconfirm --log --holdver --skipintegkteré makepkgv chrootu sestavení automaticky nainstalují chybějící závislosti potřebné pro sestavení a používání balíčku, nežádají o potvrzení během pacman, zaznamenají proces sestavení do textu soubory kromě stdout, neaktualizujte zdrojový kód, pokud jste v systému správy verzí, a neprovádějte kontroly ověřování zdrojového souboru.

Můžete je spojit pomocí následujícího formuláře:

$ extra-x86_64-build <DEVTOOLS-OPTIONS> -- <MAKECHROOTPKG-OPTIONS> -- <MAKEPKG-OPTIONS>

Všimněte si, že s tím /var/lib/archbuildlze zacházet, jako by to byl dočasný adresář. Pokud máte více pevných disků Vultr, vyplatí se sem připojit souborový systém RAID0 (proužek). Pokud máte hodně paměti RAM, můžete také připojit souborový systém zálohovaný RAM, jako je tmpfs. Poté, co je balíček vytvořen, je zkopírován do adresáře, ze kterého jste spustili, extra-x86_64-builda pokud byste chtěli, v tomto okamžiku můžete smazat /var/lib/archbuild. Další běh by byl pomalejší, protože by potřeboval vytvořit nový čistý kořen. Alternativně můžete odstranit, /var/lib/archbuild/<USERNAME>abyste získali zpět nadbytečný prostor z kořenového adresáře sestavení, než bude automaticky odstraněn při příštím spuštění Devtools. Takže i kdyby selhal souborový systém RAID0 připojený sem, nejvíce byste přišli o probíhající kompilaci.

Konfigurační soubory Devtools

U konfiguračních souborů Devtools je třeba poznamenat několik specifik. Jsou umístěny v /usr/share/devtools/, jako jsou makepkg-x86_64.confa pacman-extra.conf:

  • U /etcsouborů, jako je makepkg.confa pacman.confmůžete bezpečně upravovat na svém místě, a když je obal aktualizován, nebude přepsat změny. Spíše uloží nové konfigurační soubory (pokud se změnily oproti předchozí verzi) končící na .pacnew. Konfigurační soubory Devtools /usr/share/však nejsou určeny k úpravě uživatelem, takže při upgradu Devtools zcela přepíše vaše změny v těchto souborech, aniž by vás na to upozornil. Změna tohoto chování byla navržena a zamítnuta, protože to pomáhá zajistit, aby byly balíčky odesílány do oficiálních repozitářů se stejným nastavením kompilace.
  • Hodnoty pro MAKEFLAGS, PACKAGER, a {SRC,SRCPKG,PKG,LOG}DESTjsou převzaty z /etc/makepkg.confspíše než /usr/share/devtools/makepkg-x86_64.conf.

Místní úložiště

Pokud vytváříte balíčky, které jsou závislé na jiných balíčcích, které jste vytvořili, musíte použít místní úložiště, aby při pacmanspuštění v chrootu sestavení našlo závislosti.

Chcete-li nastavit místní úložiště, přečtěte si část "Místní úložiště" této příručky .

Vytvořte vlastní cíl:

# ln -s archbuild /usr/bin/custom-x86_64-build
# cp /usr/share/devtools/pacman-{extra,custom}.conf

Upravte /usr/share/devtools/pacman-custom.confa na konec přidejte následující:

[archLocalRepo]
SigLevel = Optional TrustAll
Server = file:///archLocalRepo

Upravte /etc/pacman.confa přidejte následující. To přinutí adresář, aby byl připojen k chrootu:

CacheDir    = /var/cache/pacman/pkg/ /archLocalRepo/

Nyní místo použití extra-x86_64-buildpoužijte toto:

$ custom-x86_64-build

Pokud chcete vždy používat vlastní cíl, můžete odstranit /var/lib/archbuild/extra-x86_64-build/adresář, pokud existuje, protože chroots budou nyní v /var/lib/archbuild/custom-x86_64-build/.

Rychlejší balení

Poznámka: aktivace vlákenného balení zahrnuje úpravu /usr/share/devtoolskonfiguračních souborů, což není oficiálně podporováno, takže tuto změnu budete muset provést při každém upgradu Devtools.

Devtools kombinuje celý balíček do archivního formátu. Ve výchozím nastavení .tar.xzpoužívá pro xzkompresi jedno vlákno .

Na systémech s více CPU můžete povolit xzpoužití více vláken úpravou /usr/share/devtools/makepkg-x86_64.confa změnou následujícího řádku:

COMPRESSXZ=(xz -c -z -)

Chcete-li povolit tolik vláken, kolik máte virtuálních jader:

COMPRESSXZ=(xz -c -z - --threads=0)

Chcete-li povolit použití více virtuálních jader, ale ne všech z nich, abyste snížili dopad na celkový výkon systému, přidejte konkrétní číslo:

COMPRESSXZ=(xz -c -z - --threads=21)

Pokud zadáte více vláken, než kolik máte virtuálních jader, snížíte výkon.

Pokud vám nevadí, že soubor balíčku je (potenciálně mnohem) větší, zakažte kompresi úpravou /usr/share/devtools/makepkg-x86_64.confa změňte následující řádek:

PKGEXT='.pkg.tar.xz'

Změňte jej, aby vypadal takto:

PKGEXT='.pkg.tar'

Instalace 2019 Arch Linuxu na Vultr Server

Instalace 2019 Arch Linuxu na Vultr Server

Úvod Arch Linux má menší, ale stále silnější následovníky než populárnější distribuce. Jeho filozofie je zcela odlišná, s výhodami an

Instalace Arch Linuxu na server Vultr

Instalace Arch Linuxu na server Vultr

Vultr vám poskytuje úžasnou funkcionalitu, která vám umožňuje používat váš vlastní obrázek kromě jejich vynikajících šablon, což vám umožňuje spouštět

Použití Devtools na Arch Linuxu

Použití Devtools na Arch Linuxu

Balíček Devtools byl původně vytvořen pro důvěryhodné uživatele, aby správně vytvářel balíčky pro oficiální úložiště. Může jej však používat i běžný uživatel

Použití Makepkg na Arch Linuxu

Použití Makepkg na Arch Linuxu

Pokud používáte přímo makepkg, poněkud to znečišťuje váš systém. Musí být nainstalována skupina balíčků base-devel. Tímto způsobem jsou ve výchozím nastavení potřeba pouze závislosti

Jak nainstalovat PostgreSQL 11.1 na Arch Linux

Jak nainstalovat PostgreSQL 11.1 na Arch Linux

Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek.) Přístup Sudo. Příkazy požadované ke spuštění jako root mají předponu # a jedna

Jak používat HTTPS na webovém serveru Arch Linux

Jak používat HTTPS na webovém serveru Arch Linux

Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek.) Spuštěný webový server, buď Apache nebo Nginx Sudo.

Nainstalujte Arch Linux s Btrfs Snapshoting

Nainstalujte Arch Linux s Btrfs Snapshoting

Preface Arch Linux je univerzální distribuce známá pro svou špičkovou technologii a flexibilní konfiguraci. Se snímky Btrfs můžeme pořídit

Vytváření balíčků na Arch Linuxu (včetně AUR)

Vytváření balíčků na Arch Linuxu (včetně AUR)

Na Arch Linuxu jsou oficiálními repozitáři: core, extra a community. Tyto balíčky jsou již zkompilovány a instalují se pomocí pacmana. Pro th

Nastavte Spigot Server na Arch Linuxu

Nastavte Spigot Server na Arch Linuxu

Tento tutoriál vysvětluje, jak nastavit server Minecraft pomocí Spigot na Arch Linuxu. Tento tutoriál předpokládá, že jste normální uživatel (ne root) a máte hav

Jak nainstalovat Nginx 1.14 na Arch Linux

Jak nainstalovat Nginx 1.14 na Arch Linux

Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek.) Přístup Sudo. Příkazy požadované ke spuštění jako root mají předponu #. Th

Jak nainstalovat Apache 2.4 na Arch Linux

Jak nainstalovat Apache 2.4 na Arch Linux

Předpoklady Server Vultr s aktuální verzí Arch Linuxu. Další informace naleznete v této příručce. Sudo přístup. Příkazy požadované ke spuštění jako root ar

Jak nainstalovat Python 3.7 na webový server Arch Linux

Jak nainstalovat Python 3.7 na webový server Arch Linux

Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek.) Spuštěný webový server, přístup k Apache nebo Nginx Sudo: Příkazy vyžadují

Jak nainstalovat Perl 5.28 na webový server Arch Linux

Jak nainstalovat Perl 5.28 na webový server Arch Linux

Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek.) Spuštěný webový server, přístup k Apache nebo Nginx Sudo: Příkazy vyžadují

Jak nainstalovat PHP 7.3 na webový server Arch Linux

Jak nainstalovat PHP 7.3 na webový server Arch Linux

Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek.) Spuštěný webový server s přístupem Apache nebo Nginx Sudo. Příkazy vyžadují

Nastavte Mumble Server na Arch Linuxu

Nastavte Mumble Server na Arch Linuxu

Tento tutoriál vysvětluje, jak nastavit server Mumble (Murmur) na Arch Linuxu. Vše, co se v tomto tutoriálu provádí, se provádí jako uživatel root. Instalace an

Nastavte Counter-Strike: Global Offensive (CSGO) Server na Arch Linuxu

Nastavte Counter-Strike: Global Offensive (CSGO) Server na Arch Linuxu

Tento tutoriál vysvětluje, jak nastavit Counter-Strike: Global Offensive server na Arch Linuxu. Tento tutoriál předpokládá, že jste se přihlásili standardním způsobem

Nastavte server Team Fortress 2 na Arch Linuxu

Nastavte server Team Fortress 2 na Arch Linuxu

Tento tutoriál vysvětluje, jak nastavit server Team Fortress 2 na Arch Linuxu. Předpokládám, že jste přihlášeni pomocí jiného uživatelského účtu než root, který má sudo přístup

Jak nainstalovat MariaDB 10.3 nebo MySQL 8.0 na Arch Linux

Jak nainstalovat MariaDB 10.3 nebo MySQL 8.0 na Arch Linux

Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek.) Přístup Sudo: Příkazy vyžadované ke spuštění jako root mají předponu # a jedna

Jak nainstalovat MongoDB 4.0 na Arch Linux

Jak nainstalovat MongoDB 4.0 na Arch Linux

Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek) Přístup Sudo: Příkazy, které je třeba spouštět jako root, mají předponu # a jedna

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více