Používanie Devtools na Arch Linuxe

Balík Devtools bol pôvodne vytvorený pre dôveryhodných používateľov na správne vytváranie balíkov pre oficiálne úložiská. Využiť ho však môžu aj bežní používatelia na zostavenie AUR balíčkov, alebo dokonca upravených oficiálnych balíčkov.

V tejto príručke nájdete všeobecné pochopenie a používanie AUR, vrátane získania PKGBUILD. Tento dokument zobrazuje iba kroky špecifické pre Devtools, ak je to metóda, ktorú si vyberiete na kompiláciu balíka.

Devtools udržiava samostatnú čistú inštaláciu Arch umiestnenú v /var/lib/archbuild/<TARGET>/root, ktorá obsahuje iba skupiny balíkov basea base-devel. Ak táto čistá inštalácia neexistuje, automaticky ju vytvorí. Ak existuje, automaticky aktualizuje všetky balíčky v ňom. Keď sa na zostavenie balíka použije Devtools, začne sa s kópiou tejto čistej inštalácie, nainštaluje sa potrebné balíky iba do kópie, skopíruje sa do nej zdrojový kód, vykoná sa v ňom kompilácia a balenie a skopíruje sa iba výsledný balík, v identickej forme, ako sa nachádza v oficiálnych úložiskách.

Devtools má výhody oproti priamemu spusteniu makepkg. Jednou z výhod je, že base-devela ďalšie balíky potrebné na kompiláciu, ale nie spustenie, balík, ktorý vytvárate, sa nikdy neskončia vo vašom hlavnom systéme. To je menej balíkov, ktoré je potrebné pravidelne aktualizovať a mať z toho obavy. Hoci je tento proces v prvom rade prínosom pre správcov balíkov Arch, tento proces ľahko odhalí, keď a nie PKGBUILDje správne, napríklad ak v zozname chýba závislosť, ktorú správca náhodou už nainštaloval v ich hlavnom systéme. Môžete tiež použiť stroj, ktorý je rýchlejší pri vytváraní balíkov, a skopírovať výsledný balík na pomalší stroj, ktorý ho spustí bez znečistenia inštalácie stavebného stroja.

Hlavnou nevýhodou je, že čistý koreň je tam vždy, zaberá asi 800 MB a zvyčajne je tam jedna kópia, ktorá zaberá viac miesta. Všimnite si, že ak /var/lib/archbuild/používa Btrfs, kópia čistého koreňa začína ako snímka Btrfs, takže tieto súbory nezaberajú dvojnásobok miesta. Čistý koreň sa tam vždy uchováva, aby sa predišlo jeho opätovnej inštalácii pri každom vytváraní balíka.

Kompilácia pomocou Devtools

Nainštalujte Devtools:

# pacman -S devtools

Na vytvorenie balíka obsahuje Devtools archbuild, ale nespustíte ho priamo. Obsahuje tiež symbolické odkazy na {extra, gnome-unstable, kde-unstable, staging, testing}-x86_64-build. Symbolický odkaz, ktorý sa používa na jeho spustenie, skontroluje archbuild, aby určil, ktorý cieľ chcete použiť. Dá sa spustiť na použitie týchto nestabilných/stagingových/testovacích repozitárov, ktoré môžu mať novšie verzie, než aké boli vydané do oficiálnych repozitárov. Ak chcete použiť oficiálne úložiská pre balíky bez AUR, v adresári s príponou PKGBUILD, napríklad v adresári, ktorý vytvoril git clone, spustite nasledovné:

$ extra-x86_64-build

Poznámka: Zvyšok tejto príručky bude jednoducho odkazovať na extra-x86_64-build.

Po jeho ukončení budú výsledky nasledovné:

  • /var/lib/archbuild/extra-x86_64/root- Čistý chroot , čo je aktuálna inštalácia iba so skupinami balíkov basea base-devel.
  • /var/lib/archbuild/extra-x86_64/<USERNAME>- Toto bude obsahovať build chroot . Toto je kópia čistého chrootu so všetkými závislosťami potrebnými na zostavenie alebo spustenie vytváraného balíka, ako aj jeho zdrojový kód, výsledky kompilácie a balík.
  • Adresár, v ktorom sa nachádzate, bude obsahovať balík a súbory denníka zostavy, ako aj akýkoľvek stiahnutý zdrojový kód.

Na konci si môžete všimnúť „ Checking PKGBUILD“ a „ Checking <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz“. Všetky riadky za nimi sú výstupom z namcap, ktorý automaticky vyhľadá problémy, ako sú poškodené PKGBUILDsúbory, zahrnuté závislosti, ktoré balík zrejme nepoužíva, nezaradené závislosti, ktoré balík zrejme používa a ďalšie. Falošné poplachy často generuje namcap, ale je to skvelý nástroj na vyšetrovanie vecí. Ak váš balík funguje správne, nie je dobré upozorniť správcu na namcapvýstup, pokiaľ ste si ho neprezreli a overili, že je potrebné vykonať zmenu.

Môžete použiť pacmanna inštaláciu balíka, ktorý nainštaluje všetky závislosti potrebné na spustenie balíka, pokiaľ sú v oficiálnych úložiskách alebo lokálnom úložisku.

Buď použite lokálne úložisko, ako je vysvetlené tu , alebo nainštalujte súbor priamo:

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

Ak by ste mali spustiť extra-x86_64-buildznova, práve teraz alebo kedykoľvek neskôr s týmto alebo iným balíkom, v prípade potreby sa aktualizuje čistý chroot, odstráni sa chroot zostavenia a vytvorí sa nová kópia čistého chrootu a vykoná sa rovnaký proces. Ak váš adresár stále obsahuje zdrojový kód stiahnutý z poslednej doby, použije ho. Ak je balík vývojovým balíkom AUR, namiesto opätovného klonovania vytiahne nové zmeny.

Vnútorne extra-x86_64-buildspustí makechrootpkg, ktorý interne volá makepkg. Možnosti pre extra-x86_64-buildzahŕňajú nasledovné:

  • -c: Vyčistite chrooty odstránením a opätovným vytvorením celého /var/lib/archbuild/extra-x86_64/adresára, vrátane jeho čistého chrootu a všetkých build chroot adresárov. Toto je zriedka potrebné, iba ak sa poškodí čistý chroot alebo ak je Devtools inovovaný spôsobom, ktorý naruší spätnú kompatibilitu.
  • -r <dir>: Použite iný adresár, ako /var/lib/archbuild/extra-x86_64/obsahuje chroots.

Všetky argumenty do extra-x86_64-buildafter --sú odovzdané do makechrootpkg, keď ich interne používa. Niekoľko argumentov sa vždy automaticky prenesie z extra-x86_64-builddo makechrootpkg. Tieto automatické argumenty sú -r <value given to extra-x86_64-build -r option if given, /var/lib/archbuild/extra-x86_64 otherwise> -c -n. Hovoria, makechrootpkgaby ste odstránili chroot zostavenia a urobili z neho novú kópiu čistého chrootu a spustili namcapho, ak sa úspešne zostaví. Bežne používaná možnosť, ktorú možno odovzdať, makechrootpkgje -l <copy name>. Toto je názov adresára, ktorý dáva chroot zostavy namiesto <USERNAME>, ktorý je užitočný na udržiavanie viacerých kópií alebo kompiláciu viacerých balíkov súčasne.

Všetky argumenty do makechrootpkgafter --sa prenesú do makepkg, keď ich interne použije na zostavenie balíka. Prvýkrát makepkgje spustený pomocou makechrootpkg, vykonáva sa s vlastnými nemennými možnosťami, sťahovať zdrojové súbory, ak je to potrebné, a vykonávať kontroly integrity; takže na tomto behu nemôže byť nič preposlané. Spustí makepkgsa druhýkrát, aby zostavil balík, a vždy automaticky odovzdá makepkgargumenty, --syncdeps --noconfirm --log --holdver --skipintegktoré makepkgv chroot zostavy automaticky nainštalujú chýbajúce závislosti potrebné na zostavenie a používanie balíčka, nepožadujú potvrdenie počas pacman, zapíšte proces zostavovania do textu súbory okrem stdout, neaktualizujte zdrojový kód, ak ste v systéme na správu verzií, a nevykonávajte kontroly overenia zdrojového súboru.

Môžete ich spojiť pomocou nasledujúceho formulára:

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

Všimnite si, že s tým /var/lib/archbuildmožno zaobchádzať, ako keby to bol dočasný adresár. Ak máte viacero pevných diskov Vultr, oplatí sa sem pripojiť súborový systém RAID0 (pruhovaný). Ak máte veľa pamäte RAM, môžete tiež pripojiť súborový systém podporovaný pamäťou RAM, napríklad tmpfs. Po zostavení balíka sa skopíruje do adresára, z ktorého ste spustili, extra-x86_64-builda ak by ste chceli, v tomto bode môžete odstrániť /var/lib/archbuild. Ďalší chod by bol pomalší, pretože by bolo potrebné vytvoriť nový čistý koreň. Prípadne by ste mohli odstrániť, /var/lib/archbuild/<USERNAME>aby ste získali ďalšie miesto z chroot zostavy predtým, ako sa automaticky odstráni pri ďalšom spustení nástroja Devtools. Takže aj keby ste tu mali pripojený súborový systém RAID0 zlyhal, najviac by ste stratili práve prebiehajúcou kompiláciou.

Konfiguračné súbory Devtools

Pri konfiguračných súboroch Devtools je potrebné poznamenať niekoľko špecifík. Nachádzajú sa v /usr/share/devtools/, ako sú makepkg-x86_64.confa pacman-extra.conf:

  • U /etcsúborov, ako je makepkg.confa pacman.confmôžete bezpečne upravovať na svojom mieste, a keď je obal aktualizovaný, nebude prepísať zmeny. Namiesto toho uloží nové konfiguračné súbory (ak sa zmenili oproti predchádzajúcej verzii) končiace na .pacnew. Konfiguračné súbory Devtools /usr/share/však nie sú určené na úpravu používateľom, takže pri inovácii Devtools úplne prepíše vaše zmeny v týchto súboroch bez toho, aby vás na to upozornil. Zmena tohto správania bola navrhnutá a zamietnutá, pretože to pomáha zabezpečiť, aby sa balíky odosielali do oficiálnych repozitárov všetky s rovnakými nastaveniami kompilácie.
  • Hodnoty pre MAKEFLAGS, PACKAGER, a {SRC,SRCPKG,PKG,LOG}DESTsú prevzaté z /etc/makepkg.confnamiesto /usr/share/devtools/makepkg-x86_64.conf.

Miestne úložisko

Ak vytvárate balíky, ktoré sú závislé na iných balíkoch, ktoré ste vytvorili, musíte použiť lokálny repozitár, aby pri spustení pacmanv chroot zostavy našiel závislosti.

Ak chcete nastaviť miestne úložisko, pozrite si časť „Miestne úložisko“ tejto príručky .

Vytvorte si vlastný cieľ:

# 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 koniec pridajte nasledovné:

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

Upravte /etc/pacman.confa pridajte nasledujúce. Toto vynúti, aby bol adresár pripojený k väzbe v chroot:

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

Teraz namiesto použitia extra-x86_64-buildpoužite toto:

$ custom-x86_64-build

Ak chcete vždy použiť vlastný cieľ, môžete odstrániť /var/lib/archbuild/extra-x86_64-build/adresár, ak existuje, pretože chroots budú teraz v /var/lib/archbuild/custom-x86_64-build/.

Rýchlejšie balenie

Poznámka: Povolenie balenia s vláknami zahŕňa úpravu /usr/share/devtoolskonfiguračných súborov, čo nie je oficiálne podporované, takže túto zmenu budete musieť vykonať pri každej inovácii Devtools.

Devtools kombinuje celý balík do archívneho formátu. V predvolenom nastavení sa .tar.xzna xzkompresiu používa jedno vlákno .

Na systémoch s viacerými procesormi môžete povoliť xzpoužívanie viacerých vlákien úpravou /usr/share/devtools/makepkg-x86_64.conf, a zmeniť nasledujúci riadok:

COMPRESSXZ=(xz -c -z -)

Ak chcete povoliť toľko vlákien, koľko máte virtuálnych jadier:

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

Ak chcete povoliť používanie viacerých virtuálnych jadier, ale nie všetkých, aby sa znížil vplyv na celkový výkon systému, pridajte konkrétne číslo:

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

Zadanie väčšieho počtu vlákien, ako je počet virtuálnych jadier, ktoré máte, zníži výkon.

Ak vám nevadí, že súbor balíka je (potenciálne oveľa) väčší, vypnite kompresiu úpravou /usr/share/devtools/makepkg-x86_64.confa zmeňte nasledujúci riadok:

PKGEXT='.pkg.tar.xz'

Zmeňte ho tak, aby vyzeral takto:

PKGEXT='.pkg.tar'

Inštalácia 2019 Arch Linuxu na server Vultr

Inštalácia 2019 Arch Linuxu na server Vultr

Úvod Arch Linux má menšiu, ale stále silnejšiu sledovanosť ako populárnejšie distribúcie. Jeho filozofia je celkom iná, s výhodami an

Inštalácia Arch Linuxu na server Vultr

Inštalácia Arch Linuxu na server Vultr

Vultr vám poskytuje úžasnú funkčnosť, ktorá vám umožňuje okrem ich vynikajúcich šablón použiť aj váš vlastný obrázok, ktorý vám umožní spustiť

Používanie Devtools na Arch Linuxe

Používanie Devtools na Arch Linuxe

Balík Devtools bol pôvodne vytvorený pre dôveryhodných používateľov na správne vytváranie balíkov pre oficiálne úložiská. Môže ho však používať bežný používateľ

Používanie Makepkg na Arch Linuxe

Používanie Makepkg na Arch Linuxe

Ak používate makepkg priamo, trochu to znečisťuje váš systém. Musí byť nainštalovaná skupina balíkov base-devel. Týmto spôsobom sú štandardne potrebné iba závislosti

Ako nainštalovať PostgreSQL 11.1 na Arch Linux

Ako nainštalovať PostgreSQL 11.1 na Arch Linux

Predpoklady Server Vultr s aktuálnou verziou Arch Linuxu (pozri tento článok.) Prístup sudo. Príkazy potrebné na spustenie ako root majú predponu # a jedna

Ako používať HTTPS na webovom serveri Arch Linux

Ako používať HTTPS na webovom serveri Arch Linux

Predpoklady Server Vultr s aktualizovaným systémom Arch Linux (pozri tento článok.) Spustený webový server, buď Apache alebo Nginx Sudo, vyžadujú sa prístupové príkazy t

Vytváranie balíkov na Arch Linuxe (vrátane AUR)

Vytváranie balíkov na Arch Linuxe (vrátane AUR)

Na Arch Linuxe sú oficiálne úložiská: core, extra a community. Tieto balíčky sú už skompilované a inštalujú sa cez pacman. Pre th

Nastavte Spigot Server na Arch Linux

Nastavte Spigot Server na Arch Linux

Tento tutoriál vysvetľuje, ako nastaviť server Minecraft pomocou Spigot na Arch Linux. Tento tutoriál predpokladá, že ste bežný používateľ (nie root) a máte hav

Ako nainštalovať Nginx 1.14 na Arch Linux

Ako nainštalovať Nginx 1.14 na Arch Linux

Predpoklady Server Vultr s aktuálnou verziou Arch Linuxu (pozri tento článok.) Prístup sudo. Príkazy potrebné na spustenie ako root majú predponu #. Th

Ako nainštalovať Apache 2.4 na Arch Linux

Ako nainštalovať Apache 2.4 na Arch Linux

Predpoklady Server Vultr s aktuálnou verziou Arch Linuxu. Viac informácií nájdete v tejto príručke. Sudo prístup. Príkazy potrebné na spustenie ako root ar

Ako nainštalovať Python 3.7 na webový server Arch Linux

Ako nainštalovať Python 3.7 na webový server Arch Linux

Predpoklady Server Vultr s aktualizovaným systémom Arch Linux (pozri tento článok.) Spustený webový server, prístup k Apache alebo Nginx Sudo: Príkazy vyžadujú

Nainštalujte Arch Linux s Btrfs Snapshoting

Nainštalujte Arch Linux s Btrfs Snapshoting

Preface Arch Linux je distribúcia na všeobecné účely známa svojou špičkovou technológiou a flexibilnou konfiguráciou. So snímkami Btrfs môžeme robiť

Ako nainštalovať Perl 5.28 na webový server Arch Linux

Ako nainštalovať Perl 5.28 na webový server Arch Linux

Predpoklady Server Vultr s aktualizovaným systémom Arch Linux (pozri tento článok.) Spustený webový server, prístup k Apache alebo Nginx Sudo: Príkazy vyžadujú

Ako nainštalovať PHP 7.3 na webový server Arch Linux

Ako nainštalovať PHP 7.3 na webový server Arch Linux

Predpoklady Server Vultr s aktualizovaným systémom Arch Linux (pozri tento článok.) Spustený webový server s prístupom Apache alebo Nginx Sudo. Príkazy vyžadujú

Nastavte Mumble Server na Arch Linux

Nastavte Mumble Server na Arch Linux

Tento tutoriál vysvetľuje, ako nastaviť server Mumble (Murmur) na Arch Linux. Všetko, čo robíte v tomto návode, sa robí ako užívateľ root. Inštalácia an

Nastavte server Counter-Strike: Global Offensive (CSGO) na Arch Linuxe

Nastavte server Counter-Strike: Global Offensive (CSGO) na Arch Linuxe

Tento tutoriál vysvetľuje, ako nastaviť server Counter-Strike: Global Offensive na Arch Linux. Tento návod predpokladá, že ste sa prihlásili štandardným spôsobom

Nastavte server Team Fortress 2 na Arch Linux

Nastavte server Team Fortress 2 na Arch Linux

Tento tutoriál vysvetľuje, ako nastaviť server Team Fortress 2 na Arch Linux. Predpokladám, že ste prihlásený/-á pomocou iného používateľského účtu ako root, ktorý má sudo prístup

Ako nainštalovať MariaDB 10.3 alebo MySQL 8.0 na Arch Linux

Ako nainštalovať MariaDB 10.3 alebo MySQL 8.0 na Arch Linux

Predpoklady Server Vultr s aktualizovaným systémom Arch Linux (pozrite si tento článok.) Prístup sudo: Príkazy, ktoré je potrebné spustiť ako root, majú predponu # a jednu

Ako nainštalovať MongoDB 4.0 na Arch Linux

Ako nainštalovať MongoDB 4.0 na Arch Linux

Predpoklady Server Vultr s aktualizovaným systémom Arch Linux (pozri tento článok) Prístup sudo: Príkazy potrebné na spustenie ako root majú predponu # a jeden

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac