Uporaba Devtools na Arch Linux

Paket Devtools je bil prvotno narejen za zaupanja vredne uporabnike, da pravilno ustvarijo pakete za uradna skladišča. Lahko pa ga uporabljajo tudi navadni uporabniki za izdelavo paketov AUR ali celo spremenjenih uradnih paketov.

Glejte ta priročnik za razumevanje in uporabo AUR na splošno, vključno s pridobivanjem PKGBUILD. Ta dokument prikazuje samo korake, specifične za Devtools, če je to metoda, ki ste jo izbrali za prevajanje paketa.

Devtools vzdržuje ločeno čisto namestitev Arch, ki se nahaja v /var/lib/archbuild/<TARGET>/root, ki vsebuje samo skupine paketov basein base-devel. Če ta čista namestitev ne obstaja, jo samodejno ustvari. Če obstaja, samodejno posodobi vse pakete v njem. Ko se Devtools uporablja za gradnjo paketa, se začne s kopijo te čiste namestitve, namesti zahtevane pakete samo v kopijo, vanj kopira izvorno kodo, izvede prevajanje in pakiranje v njem ter samo prekopira nastali paket, v enaki obliki kot v uradnih repozitorijih.

Devtools imajo prednosti pred makepkgneposrednim izvajanjem. Ena od prednosti je, da base-develin drugi paketi, potrebni za prevajanje, vendar ne za zagon, paketa, ki ga izdelujete, nikoli ne konča v vašem glavnem sistemu. To je manj paketov, ki jih je treba občasno nadgrajevati, in glede tega imate pomisleke. Čeprav je v prvi vrsti prednost za vzdrževalce paketov Arch, ta postopek zlahka razkrije, če je a PKGBUILDnapačen, na primer, če je na seznamu spregledana odvisnost, ki jo je vzdrževalec že namestil v njihov glavni sistem. Uporabite lahko tudi stroj, ki je hitrejši pri izdelavi paketov, in nastali paket kopirate na počasnejši stroj, ki ga bo pognal, ne da bi pri tem onesnažil namestitev gradbenega stroja.

Glavna pomanjkljivost je, da je čisti koren vedno tam in zavzame približno 800 MB, običajno pa je tam ena kopija, ki zavzame več prostora. Upoštevajte, da če /var/lib/archbuild/uporabljate Btrfs, se kopija čistega korena začne kot posnetek Btrfs, tako da te datoteke ne zavzamejo dvojnega prostora. Čisti koren se vedno hrani tam, da se izogne ​​ponovni namestitvi vsakič, ko se naredi paket.

Prevajanje z uporabo Devtools

Namesti Devtools:

# pacman -S devtools

Za izdelavo paketa Devtools vključuje archbuild, vendar tega ne zaženete neposredno. Vključuje tudi simbolne povezave {extra, gnome-unstable, kde-unstable, staging, testing}-x86_64-build. Simbolna povezava, ki se uporablja za zagon, jo bo pregledal archbuild, da bi ugotovil, kateri cilj želite uporabiti. Lahko ga zaženete za uporabo teh nestabilnih/uprizoritvenih/testnih skladišč, ki imajo morda novejše različice, kot so bile izdane v uradnih repozitorijih. Če želite uporabiti uradna skladišča za pakete, ki niso AUR, v imeniku z PKGBUILD, na primer imenik, ki ga je ustvaril git clone, zaženite naslednje:

$ extra-x86_64-build

Opomba: Preostanek tega priročnika se bo preprosto nanašal na extra-x86_64-build.

Ko se konča, bodo rezultati naslednji:

  • /var/lib/archbuild/extra-x86_64/root- Čisti chroot , ki je posodobljena namestitev samo s skupinami paketov basein base-devel.
  • /var/lib/archbuild/extra-x86_64/<USERNAME>- Ta bo vseboval build chroot . To je kopija čistega chroot-a z vsemi odvisnostmi, ki so potrebne za gradnjo ali zagon paketa, ki se gradi, ter njegovo izvorno kodo, rezultati prevajanja in paket.
  • Imenik, v katerem ste, bo vseboval datoteke dnevnika paketa in gradnje ter vso preneseno izvorno kodo.

Na koncu boste morda opazili " Checking PKGBUILD" in " Checking <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz". Vse vrstice za temi so izhodne iz namcap, ki samodejno išče težave, kot so napačno oblikovane PKGBUILDdatoteke, vključene odvisnosti, za katere se zdi, da jih paket ne uporablja, odvisnosti, ki niso vključene, za katere se zdi, da jih paket uporablja, in drugo. Lažno pozitivne rezultate pogosto ustvari namcap, vendar je odlično orodje za dajanje stvari, ki jih je treba raziskati. Če vaš paket deluje pravilno, ni dobro, da vzdrževalca opozorite na namcapizpis, razen če ste ga pogledali in preverili, ali je potrebna sprememba.

Uporabite lahko pacmanza namestitev paketa, ki bo namestil vse odvisnosti, potrebne za zagon paketa, dokler so v uradnih repozitorijih ali lokalnem skladišču.

Uporabite lokalno skladišče, kot je razloženo tukaj , ali pa namestite datoteko neposredno:

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

Če bi zagnali extra-x86_64-buildznova, takoj ali kadar koli pozneje s tem ali drugim paketom, bo po potrebi posodobil čisti chroot, izbrisal build chroot in ga naredil za novo kopijo čistega chroot-a ter izvedel isti postopek. Če ima vaš imenik še vedno nazadnje preneseno izvorno kodo, jo bo uporabil. Če je paket razvojni paket AUR, bo namesto ponovnega kloniranja potegnil nove spremembe.

Interno extra-x86_64-buildteče makechrootpkg, ki interno kliče makepkg. Možnosti za extra-x86_64-buildvključujejo naslednje:

  • -c: Očistite chroot tako, da odstranite in ponovno /var/lib/archbuild/extra-x86_64/ustvarite celoten imenik, vključno z njegovim čistim chroot in vsemi build imeniki chroot. To je redko potrebno, le če se čisti chroot poškoduje ali če je orodje Devtools nadgrajeno na način, ki krši združljivost za nazaj.
  • -r <dir>: Uporabite drug imenik kot /var/lib/archbuild/extra-x86_64/za shranjevanje chroot.

Vsi argumenti za extra-x86_64-buildafter --so posredovani v makechrootpkg, ko ga interno uporablja. Več argumentov se vedno samodejno prenese iz extra-x86_64-buildna makechrootpkg. Ti samodejni argumenti so -r <value given to extra-x86_64-build -r option if given, /var/lib/archbuild/extra-x86_64 otherwise> -c -n. Povejo, makechrootpkgda odstranite build chroot in ga naredite za novo kopijo čistega chroot-a ter zaženete namcapv paketu, če se uspešno zgradi. Pogosto uporabljena možnost, na katero se lahko prenese, makechrootpkgje -l <copy name>. To je ime imenika, ki daje build chroot namesto <USERNAME>, kar je uporabno za vzdrževanje več kopij ali prevajanje več paketov hkrati.

Vsi argumenti za makechrootpkgafter --se posredujejo makepkg, ko ga interno uporablja za gradnjo paketa. Prvič, ko makepkgga zažene makechrootpkg, se izvaja z lastnimi nespremenljivimi možnostmi, za prenos izvornih datotek, če je potrebno, in izvajanje preverjanj integritete; tako pri tem teku ni mogoče posredovati ničesar. Zažene makepkgse drugič za gradnjo paketa in vedno samodejno posreduje makepkgargumente, --syncdeps --noconfirm --log --holdver --skipintegki pove, makepkgnaj znotraj build chroot samodejno namesti manjkajoče odvisnosti, potrebne za gradnjo in uporabo paketa, da ne zahteva potrditve med pacman, zapiše postopek gradnje v besedilo datoteke poleg stdout, ne posodabljajte izvorne kode, če ste v sistemu za nadzor različic in ne izvajajte preverjanj preverjanja izvorne datoteke.

Te lahko povežete skupaj z naslednjim obrazcem:

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

Upoštevajte, da /var/lib/archbuildga je mogoče obravnavati, kot da bi bil začasni imenik. Če imate več trdih diskov Vultr, je vredno tukaj namestiti datotečni sistem RAID0 (trak). Če imate veliko RAM-a, lahko namestite tudi datotečni sistem, podprt z RAM-om, kot je tmpfs. Ko je paket zgrajen, se prekopira v imenik, extra-x86_64-buildiz katerega ste zagnali, in če želite, lahko na tej točki izbrišete /var/lib/archbuild. Naslednji zagon bi bil počasnejši, ker bi moral narediti nov čisti koren. Druga možnost je, da izbrišete, /var/lib/archbuild/<USERNAME>da pridobite dodaten prostor iz chroot gradnje, preden ga samodejno izbriše naslednji zagon orodja Devtools. Torej, tudi če bi tukaj nameščen datotečni sistem RAID0 ne uspe, bi največ, kar bi izgubili, bila kompilacija v postopku.

Konfiguracijske datoteke Devtools

Pri konfiguracijskih datotekah Devtools je treba upoštevati nekaj posebnosti. Nahajajo se v /usr/share/devtools/, kot so makepkg-x86_64.confin pacman-extra.conf:

  • Za /etcdatoteke, kot sta makepkg.confin pacman.conf, jih lahko varno urejate na mestu, in ko je paket nadgrajen, ne bo prepisal vaših sprememb. Namesto tega bo shranil nove konfiguracijske datoteke (če so se spremenile od prejšnje različice), ki se končajo z .pacnew. Vendar pa so konfiguracijske datoteke Devtools, v /usr/share/katerih niso namenjene urejanju uporabnikov, zato bo ob nadgradnji Devtools popolnoma prepisal vaše spremembe teh datotek, ne da bi vas o tem opozoril. Sprememba tega vedenja je bila predlagana in zavrnjena, ker to pomaga zagotoviti, da so paketi poslani v uradna skladišča z enakimi nastavitvami prevajanja.
  • Vrednost za MAKEFLAGS, PACKAGERin {SRC,SRCPKG,PKG,LOG}DESTsta vzeta iz /etc/makepkg.confnamesto /usr/share/devtools/makepkg-x86_64.conf.

Lokalni repozitorij

Če gradite pakete, ki so odvisni od drugih paketov, ki ste jih zgradili, morate uporabiti lokalni repozitorij, tako da, ko se pacmanzažene znotraj chroot gradnje, najde odvisnosti.

Če želite nastaviti lokalno skladišče, glejte razdelek »Lokalni repozitorij« tega priročnika .

Ustvari cilj po meri:

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

Uredite /usr/share/devtools/pacman-custom.confin na koncu dodajte naslednje:

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

Uredite /etc/pacman.confin dodajte naslednje. To prisili, da je imenik vezano nameščen v chroot:

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

Zdaj namesto uporabe extra-x86_64-builduporabite to:

$ custom-x86_64-build

Če želite vedno uporabljati cilj po meri, lahko izbrišete /var/lib/archbuild/extra-x86_64-build/imenik, če obstaja, saj bodo chroot zdaj v /var/lib/archbuild/custom-x86_64-build/.

Paket Hitreje

Upoštevajte, da omogočanje nitnega pakiranja vključuje urejanje /usr/share/devtoolskonfiguracijskih datotek, kar ni uradno podprto, zato boste morali to spremembo izvesti ob vsaki nadgradnji orodja Devtools.

Devtools združuje celoten paket v arhivski format. Privzeto .tar.xzza xzstiskanje uporabi eno nit .

V sistemih z več CPE lahko dovolite xzuporabo več niti z urejanjem /usr/share/devtools/makepkg-x86_64.confin spremenite naslednjo vrstico:

COMPRESSXZ=(xz -c -z -)

Če želite dovoliti toliko niti, kolikor imate navideznih jeder:

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

Če želite omogočiti uporabo več virtualnih jeder, vendar ne vseh, da bi zmanjšali vpliv na splošno zmogljivost sistema, dodajte določeno število:

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

Če navedete več niti od števila navideznih jeder, ki jih imate, se bo zmogljivost zmanjšala.

Če vas ne moti, da je datoteka paketa (potencialno veliko) večja, onemogočite stiskanje z urejanjem /usr/share/devtools/makepkg-x86_64.confin spremenite naslednjo vrstico:

PKGEXT='.pkg.tar.xz'

Spremenite ga, da bo videti takole:

PKGEXT='.pkg.tar'

Namestitev 2019 Arch Linux na strežnik Vultr

Namestitev 2019 Arch Linux na strežnik Vultr

Uvod Arch Linux ima manjše, a še vedno močne sledi kot bolj priljubljene distribucije. Njegova filozofija je precej drugačna, s prednostmi

Namestitev Arch Linuxa na strežnik Vultr

Namestitev Arch Linuxa na strežnik Vultr

Vultr vam ponuja izjemno funkcionalnost, ki vam omogoča uporabo lastne slike po meri poleg njihovih odličnih predlog, kar vam omogoča zagon

Uporaba Devtools na Arch Linux

Uporaba Devtools na Arch Linux

Paket Devtools je bil prvotno narejen za zaupanja vredne uporabnike, da pravilno ustvarijo pakete za uradna skladišča. Lahko pa ga uporablja navaden uporabnik

Uporaba Makepkg v Arch Linuxu

Uporaba Makepkg v Arch Linuxu

Če makepkg uporabljate neposredno, nekoliko onesnaži vaš sistem. Skupina paketov osnovnega razvoja mora biti nameščena. Na ta način so privzeto potrebne samo odvisnosti

Kako namestiti PostgreSQL 11.1 na Arch Linux

Kako namestiti PostgreSQL 11.1 na Arch Linux

Predpogoji Strežnik Vultr, ki izvaja posodobljen Arch Linux (glejte ta članek.) Dostop Sudo. Ukazi, ki jih je treba zagnati kot root, imajo predpono # in ena

Kako uporabljati HTTPS na spletnem strežniku Arch Linux

Kako uporabljati HTTPS na spletnem strežniku Arch Linux

Predpogoji Strežnik Vultr z najnovejšo različico Arch Linux (glejte ta članek.) Zagnan spletni strežnik, bodisi Apache ali Nginx Sudo, potrebni so ukazi t

Gradnja paketov na Arch Linux (vključno z AUR)

Gradnja paketov na Arch Linux (vključno z AUR)

V Arch Linuxu so uradna skladišča: jedro, ekstra in skupnost. Ti paketi so že prevedeni in so nameščeni prek pacmana. Za th

Nastavite Spigot Server na Arch Linux

Nastavite Spigot Server na Arch Linux

Ta vadnica pojasnjuje, kako nastaviti strežnik Minecraft z uporabo Spigot na Arch Linux. Ta vadnica predvideva, da ste običajen uporabnik (ne-root) in imate

Kako namestiti Nginx 1.14 na Arch Linux

Kako namestiti Nginx 1.14 na Arch Linux

Predpogoji Strežnik Vultr, ki izvaja posodobljen Arch Linux (glejte ta članek.) Dostop Sudo. Ukazi, ki jih je treba zagnati kot root, imajo predpono #. Th

Kako namestiti Apache 2.4 na Arch Linux

Kako namestiti Apache 2.4 na Arch Linux

Predpogoji Strežnik Vultr z najnovejšo različico Arch Linux. Za več informacij glejte ta priročnik. Sudo dostop. Ukazi, ki jih je treba zagnati kot root ar

Kako namestiti Python 3.7 na spletni strežnik Arch Linux

Kako namestiti Python 3.7 na spletni strežnik Arch Linux

Predpogoji Strežnik Vultr z najnovejšo različico Arch Linux (glejte ta članek.) Zagnan spletni strežnik, dostop do Apache ali Nginx Sudo: ukazi zahtevajo

Namestite Arch Linux z Btrfs Snapshotting

Namestite Arch Linux z Btrfs Snapshotting

Predgovor Arch Linux je distribucija splošnega namena, ki je dobro znana po svoji vrhunski tehnologiji in prilagodljivi konfiguraciji. S posnetki Btrfs lahko naredimo

Kako namestiti Perl 5.28 na spletni strežnik Arch Linux

Kako namestiti Perl 5.28 na spletni strežnik Arch Linux

Predpogoji Strežnik Vultr z najnovejšo različico Arch Linux (glejte ta članek.) Zagnan spletni strežnik, dostop do Apache ali Nginx Sudo: ukazi zahtevajo

Kako namestiti PHP 7.3 na spletni strežnik Arch Linux

Kako namestiti PHP 7.3 na spletni strežnik Arch Linux

Predpogoji Strežnik Vultr z najnovejšo različico Arch Linux (glejte ta članek.) Zagnan spletni strežnik, dostop do Apache ali Nginx Sudo. Ukazi zahtevajo

Nastavite strežnik Mumble na Arch Linux

Nastavite strežnik Mumble na Arch Linux

Ta vadnica pojasnjuje, kako nastaviti strežnik Mumble (Murmur) na Arch Linux. Vse, kar se naredi v tej vadnici, se izvaja kot root uporabnik. Namestitev an

Nastavite strežnik Counter-Strike: Global Offensive (CSGO) na Arch Linux

Nastavite strežnik Counter-Strike: Global Offensive (CSGO) na Arch Linux

Ta vadnica pojasnjuje, kako nastaviti strežnik Counter-Strike: Global Offensive na Arch Linux. Ta vadnica predpostavlja, da ste se prijavili s standardno uporabo

Nastavite strežnik Team Fortress 2 na Arch Linux

Nastavite strežnik Team Fortress 2 na Arch Linux

Ta vadnica pojasnjuje, kako nastaviti strežnik Team Fortress 2 na Arch Linux. Predvidevam, da ste prijavljeni z nekorenskim uporabniškim računom, ki ima sudo dostop

Kako namestiti MariaDB 10.3 ali MySQL 8.0 na Arch Linux

Kako namestiti MariaDB 10.3 ali MySQL 8.0 na Arch Linux

Predpogoji Strežnik Vultr z najnovejšo različico Arch Linux (glejte ta članek.) Dostop do sudo: ukazi, ki jih je treba zagnati kot root, imajo predpono # in ena

Kako namestiti MongoDB 4.0 na Arch Linux

Kako namestiti MongoDB 4.0 na Arch Linux

Predpogoji Strežnik Vultr z najnovejšo različico Arch Linux (glejte ta članek) Dostop Sudo: ukazi, ki jih je treba zagnati kot root, imajo predpono # in ena

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več