Korištenje Devtoolsa na Arch Linuxu

Paket Devtools izvorno je napravljen za pouzdane korisnike kako bi pravilno kreirali pakete za službena spremišta. Međutim, obični korisnici ga mogu koristiti i za izradu AUR paketa, ili čak modificiranih službenih paketa.

Pogledajte ovaj vodič za razumijevanje i korištenje AUR-a općenito, uključujući dobivanje PKGBUILD. Ovaj dokument prikazuje samo korake specifične za Devtools, ako je to metoda koju odaberete za sastavljanje paketa.

Devtools održava zasebnu čistu Arch instalaciju, smještenu u /var/lib/archbuild/<TARGET>/root, koja sadrži samo grupe paketa basei base-devel. Ako ova čista instalacija ne postoji, automatski je kreira. Ako postoji, automatski ažurira sve pakete u njemu. Kada se Devtools koristi za izgradnju paketa, on počinje s kopijom ove čiste instalacije, instalira potrebne pakete samo u kopiju, kopira izvorni kod u njega, izvodi kompajliranje i pakiranje u njemu i samo kopira rezultirajući paket, u identičnom obliku od onoga što se nalazi u službenim spremištima.

Devtools ima prednosti u odnosu na makepkgizravno pokretanje . Jedna od prednosti je da base-develi drugi paketi potrebni za kompajliranje, ali ne i pokretanje, paket koji izrađujete nikada ne završe u vašem glavnom sustavu. To je manje paketa koje morate povremeno nadograđivati ​​i zbog kojih imate zabrinutosti. Iako je prvenstveno prednost za održavatelje Arch paketa, ovaj proces lako izlaže kada PKGBUILDje a netočan, kao što je na primjer ako se ne navede ovisnost koju je održavatelj već instalirao u njihov glavni sustav. Također možete koristiti stroj koji je brži u izradi paketa i kopirati rezultirajući paket na sporiji stroj koji će ga pokrenuti, bez zagađivanja instalacije građevinskog stroja.

Glavni nedostatak je što je čisti root uvijek tu, zauzima oko 800 MB, a obično je jedna kopija tamo koja zauzima više prostora. Imajte na umu, ako se /var/lib/archbuild/koristi Btrfs, kopija čistog korijena počinje biti Btrfs snimak, tako da te datoteke ne zauzimaju dvostruko više prostora. Čisti root se uvijek čuva tamo kako bi se izbjegla ponovna instalacija svaki put kada se pravi paket.

Prevođenje pomoću Devtools-a

Instalirajte Devtools:

# pacman -S devtools

Za izradu paketa Devtools uključuje archbuild, ali ovo ne pokrećete izravno. Također uključuje simboličke veze {extra, gnome-unstable, kde-unstable, staging, testing}-x86_64-build. Simbolska veza koja se koristi za pokretanje će biti pregledana od strane archbuild, kako bi se utvrdilo koji cilj želite da koristi. Može se pokrenuti za korištenje ovih nestabilnih/pripremnih/testnih spremišta, koja mogu imati novije verzije od onih koje su objavljene u službenim spremištima. Da biste koristili službena spremišta za pakete koji nisu AUR, u direktoriju s PKGBUILD, na primjer direktorij koji je napravio git clone, pokrenite sljedeće:

$ extra-x86_64-build

Napomena: Ostatak ovog vodiča jednostavno će se odnositi na extra-x86_64-build.

Nakon što završi s radom, bit će sljedeći rezultati:

  • /var/lib/archbuild/extra-x86_64/root- Čisti chroot , koji je ažurirana instalacija samo s grupama paketa basei base-devel.
  • /var/lib/archbuild/extra-x86_64/<USERNAME>- Ovo će sadržavati chroot gradnje . Ovo je kopija čistog chroot-a sa svim ovisnostima potrebnim za izgradnju ili pokretanje paketa koji se gradi, kao i njegov izvorni kod, rezultate kompilacije i paket.
  • Direktorij u kojem se nalazite sadržavat će datoteke dnevnika paketa i izgradnje, kao i sav preuzeti izvorni kod.

Na kraju možete primijetiti " Checking PKGBUILD" i " Checking <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz". Svi redovi nakon njih izlaze iz namcap, koji automatski traži probleme kao što su krivo oblikovane PKGBUILDdatoteke, uključene ovisnosti koje se čini da paket ne koristi, ovisnosti koje nisu uključene koje se čini da paket koristi i još mnogo toga. Lažno pozitivne rezultate često generira namcap, ali je izvrstan alat za davanje stvari za istraživanje. Ako vaš paket radi ispravno, nije dobra ideja upozoriti održavatelja na namcapizlaz, osim ako ga niste pogledali i potvrdili da treba napraviti promjenu.

Možete koristiti pacmanza instalaciju paketa, koji će instalirati sve ovisnosti potrebne za pokretanje paketa sve dok su u službenim spremištima ili lokalnom spremištu.

Ili koristite Lokalno spremište kako je ovdje objašnjeno ili instalirajte datoteku izravno:

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

Ako biste trebali extra-x86_64-buildponovno pokrenuti , sada ili bilo kada kasnije s ovim ili drugim paketom, ažurirat će čisti chroot ako je potrebno, izbrisati build chroot i učiniti ga svježom kopijom čistog chroot-a i izvesti isti postupak. Ako vaš imenik još uvijek ima izvorni kod preuzet od posljednjeg puta, koristit će ga. Ako je paket razvojni AUR paket, povući će nove izmjene umjesto ponovnog kloniranja.

Interno, extra-x86_64-buildpokreće makechrootpkg, koji interno poziva makepkg. Opcije za extra-x86_64-builduključuju sljedeće:

  • -c: Očistite chroot uklanjanjem i ponovnim stvaranjem cijelog /var/lib/archbuild/extra-x86_64/direktorija, uključujući njegov čisti chroot i sve chroot direktorije za izgradnju. Ovo je rijetko potrebno, samo ako se čisti chroot ošteti ili ako se Devtools nadogradi na način koji narušava kompatibilnost unatrag.
  • -r <dir>: Upotrijebite drugačiji direktorij nego /var/lib/archbuild/extra-x86_64/da sadrži chroot.

Svi argumenti za extra-x86_64-buildafter --se prosljeđuju u makechrootpkg, kada ga interno koristi. Nekoliko argumenata uvijek se automatski prosljeđuje od extra-x86_64-builddo makechrootpkg. Ovi automatski argumenti su -r <value given to extra-x86_64-build -r option if given, /var/lib/archbuild/extra-x86_64 otherwise> -c -n. Kažu da makechrootpkgse ukloni build chroot i napravi svježa kopija čistog chroot-a te da se pokrene namcapna paketu ako se uspješno izgradi. Često korištena opcija kojoj se može proslijediti makechrootpkgje -l <copy name>. Ovo je ime direktorija za davanje chroot gradnje, umjesto <USERNAME>, što je korisno za održavanje više kopija ili kompajliranje više paketa u isto vrijeme.

Svi argumenti za makechrootpkgafter --se prosljeđuju u makepkg, kada ga interno koristi za izgradnju paketa. Prvi put makepkgga pokreće makechrootpkg, radi se s vlastitim nepromjenjivim opcijama, za preuzimanje izvornih datoteka, ako je potrebno, i izvođenje provjera integriteta; tako da se ništa ne može proslijediti u ovoj vožnji. Pokreće makepkgse drugi put za izradu paketa i uvijek automatski prosljeđuje makepkgargumente --syncdeps --noconfirm --log --holdver --skipintegkoji govore makepkgda, unutar chroot-a izgradnje, automatski instalira nedostajuće ovisnosti potrebne za izgradnju i korištenje paketa, da ne traži potvrdu tijekom pacman, zabilježi proces izgradnje u tekstu datoteke uz stdout, nemojte ažurirati izvorni kod ako ste u sustavu kontrole verzija i ne obavljajte provjere provjere izvorne datoteke.

Možete ih povezati pomoću sljedećeg obrasca:

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

Imajte na umu da /var/lib/archbuildse može tretirati kao da je privremeni imenik. Ako imate više Vultr tvrdih diskova, ovdje je vrijedno montirati RAID0 (trakasti) datotečni sustav. Ako imate puno RAM-a, također možete montirati datotečni sustav s RAM-om kao što je tmpfs. Nakon što je paket napravljen, on se kopira u direktorij iz kojeg ste pokrenuli extra-x86_64-buildi ako želite, u ovom trenutku možete izbrisati /var/lib/archbuild. Sljedeće pokretanje bi bilo sporije, jer bi trebalo napraviti novi čisti korijen. Alternativno, možete izbrisati /var/lib/archbuild/<USERNAME>kako biste povratili dodatni prostor iz chroot-a izgradnje prije nego što se automatski izbriše sljedećim pokretanjem Devtoolsa. Dakle, čak i ako imate RAID0 datotečni sustav montiran ovdje ne uspijeva, najviše biste izgubili bila bi kompilacija u procesu.

Konfiguracijske datoteke Devtools

Postoji nekoliko pojedinosti koje treba napomenuti s konfiguracijskim datotekama Devtools. Nalaze se u /usr/share/devtools/, kao što su makepkg-x86_64.confi pacman-extra.conf:

  • Za /etcdatoteke poput makepkg.confi pacman.conf, možete ih sigurno uređivati ​​na mjestu, a kada se paket nadogradi, neće prebrisati vaše promjene. Umjesto toga, spremit će nove konfiguracijske datoteke (ako su se promijenile u odnosu na prethodnu verziju) koje završavaju s .pacnew. Međutim, konfiguracijske datoteke Devtoolsa /usr/share/nisu namijenjene za uređivanje korisnika, tako da kada se Devtools nadogradi, u potpunosti će prebrisati vaše promjene tih datoteka bez upozorenja. Promjena ovog ponašanja je predložena i odbijena, jer to pomaže osigurati da se paketi šalju u službena spremišta s istim postavkama kompilacije.
  • Vrijednost za MAKEFLAGS, PACKAGER, i {SRC,SRCPKG,PKG,LOG}DESTsu preuzete iz /etc/makepkg.confumjesto /usr/share/devtools/makepkg-x86_64.conf.

Lokalni repozitorij

Ako gradite pakete koji imaju ovisnosti o drugim paketima koje ste izgradili, trebate koristiti lokalno spremište, tako da kada se pacmanizvodi unutar chroot-a za izgradnju, ono pronađe ovisnosti.

Za postavljanje lokalnog spremišta, pogledajte odjeljak "Lokalno spremište" ovog vodiča .

Izradite prilagođeni cilj:

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

Uredite /usr/share/devtools/pacman-custom.confi na kraju dodajte sljedeće:

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

Uredite /etc/pacman.confi dodajte sljedeće. Ovo prisiljava da se direktorij veže montira u chroot:

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

Sada, umjesto korištenja, extra-x86_64-buildkoristite ovo:

$ custom-x86_64-build

Ako uvijek želite koristiti prilagođeni cilj, možete izbrisati /var/lib/archbuild/extra-x86_64-build/direktorij ako postoji, jer će chroot-ovi sada biti u /var/lib/archbuild/custom-x86_64-build/.

Paket brže

Napomena omogućavanje pakiranja s nitima uključuje uređivanje /usr/share/devtoolskonfiguracijskih datoteka, što nije službeno podržano, tako da ćete morati izvršiti ovu promjenu svaki put kada se Devtools nadogradi.

Devtools kombinira cijeli paket u arhivski format. Prema zadanim postavkama, čini .tar.xzkorištenje jedne niti za xzkompresiju.

Na sustavima s više procesora možete dopustiti xzkorištenje više niti uređivanjem /usr/share/devtools/makepkg-x86_64.confi promijeniti sljedeći redak:

COMPRESSXZ=(xz -c -z -)

Da biste dopustili onoliko niti koliko imate virtualnih jezgri:

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

Da biste dopustili korištenje više virtualnih jezgri, ali ne svih, kako biste smanjili utjecaj na ukupnu izvedbu sustava, dodajte određeni broj:

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

Navođenje više niti od broja virtualnih jezgri koje imate smanjit će performanse.

Ako vam ne smeta što je datoteka paketa (potencijalno mnogo) veća, onemogućite kompresiju uređivanjem /usr/share/devtools/makepkg-x86_64.confi promijenite sljedeći redak:

PKGEXT='.pkg.tar.xz'

Promijenite da izgleda ovako:

PKGEXT='.pkg.tar'

Instalacija 2019 Arch Linuxa na Vultr poslužitelj

Instalacija 2019 Arch Linuxa na Vultr poslužitelj

Uvod Arch Linux ima manju, ali još uvijek jaku sljedeću od popularnijih distribucija. Njegova filozofija je sasvim drugačija, s prednostima

Instalacija Arch Linuxa na Vultr poslužitelj

Instalacija Arch Linuxa na Vultr poslužitelj

Vultr vam pruža sjajnu funkcionalnost dopuštajući vam korištenje vlastite prilagođene slike uz njihove izvrsne predloške, što vam omogućuje pokretanje

Korištenje Devtoolsa na Arch Linuxu

Korištenje Devtoolsa na Arch Linuxu

Paket Devtools izvorno je napravljen za pouzdane korisnike kako bi pravilno kreirali pakete za službena spremišta. Međutim, može ga koristiti obični korisnik

Korištenje Makepkg na Arch Linuxu

Korištenje Makepkg na Arch Linuxu

Ako izravno koristite makepkg, on donekle zagađuje vaš sustav. Grupa paketa osnovnog razvoja mora biti instalirana. Na ovaj način, prema zadanim postavkama, ovisnosti su potrebne samo

Kako instalirati PostgreSQL 11.1 na Arch Linux

Kako instalirati PostgreSQL 11.1 na Arch Linux

Preduvjeti Vultr poslužitelj koji radi s najnovijim Arch Linuxom (pogledajte ovaj članak.) Sudo pristup. Naredbe koje se trebaju izvoditi kao root imaju prefiks # i jedan

Kako koristiti HTTPS na Arch Linux web poslužitelju

Kako koristiti HTTPS na Arch Linux web poslužitelju

Preduvjeti Vultr poslužitelj koji radi s najnovijim Arch Linuxom (pogledajte ovaj članak.) Pokrenuti web poslužitelj, bilo Apache ili Nginx Sudo pristupne naredbe potrebne t

Izrada paketa na Arch Linuxu (uključujući AUR)

Izrada paketa na Arch Linuxu (uključujući AUR)

Na Arch Linuxu službena spremišta su: core, extra i community. Ovi paketi su već kompajlirani i instalirani su putem pacmana. Za th

Postavite Spigot Server na Arch Linux

Postavite Spigot Server na Arch Linux

Ovaj vodič objašnjava kako postaviti Minecraft poslužitelj koristeći Spigot na Arch Linuxu. Ovaj vodič pretpostavlja da ste normalan korisnik (ne-root) i da imate

Kako instalirati Nginx 1.14 na Arch Linux

Kako instalirati Nginx 1.14 na Arch Linux

Preduvjeti Vultr poslužitelj koji radi s najnovijim Arch Linuxom (pogledajte ovaj članak.) Sudo pristup. Naredbe koje se trebaju izvoditi kao root imaju prefiks #. Th

Kako instalirati Apache 2.4 na Arch Linux

Kako instalirati Apache 2.4 na Arch Linux

Preduvjeti Vultr poslužitelj koji radi s najnovijim Arch Linuxom. Za više informacija pogledajte ovaj vodič. Sudo pristup. Naredbe koje se trebaju izvoditi kao root ar

Kako instalirati Python 3.7 na Arch Linux web poslužitelj

Kako instalirati Python 3.7 na Arch Linux web poslužitelj

Preduvjeti Vultr poslužitelj koji radi s najnovijim Arch Linuxom (pogledajte ovaj članak.) Pokrenuti web poslužitelj, bilo Apache ili Nginx Sudo pristup: Naredbe zahtijevaju

Instalirajte Arch Linux s Btrfs Snapshottingom

Instalirajte Arch Linux s Btrfs Snapshottingom

Predgovor Arch Linux je distribucija opće namjene dobro poznata po svojoj vrhunskoj tehnologiji i fleksibilnoj konfiguraciji. Uz Btrfs snimke možemo uzeti

Kako instalirati Perl 5.28 na Arch Linux web poslužitelj

Kako instalirati Perl 5.28 na Arch Linux web poslužitelj

Preduvjeti Vultr poslužitelj koji radi s najnovijim Arch Linuxom (pogledajte ovaj članak.) Pokrenuti web poslužitelj, bilo Apache ili Nginx Sudo pristup: Naredbe zahtijevaju

Kako instalirati PHP 7.3 na Arch Linux web poslužitelj

Kako instalirati PHP 7.3 na Arch Linux web poslužitelj

Preduvjeti Vultr poslužitelj koji radi s najnovijim Arch Linuxom (pogledajte ovaj članak.) Pokrenuti web poslužitelj, bilo Apache ili Nginx Sudo pristup. Naredbe zahtijevaju

Postavite Mumble Server na Arch Linux

Postavite Mumble Server na Arch Linux

Ovaj vodič objašnjava kako postaviti Mumble poslužitelj (Murmur) na Arch Linux. Sve što se radi u ovom vodiču radi se kao root korisnik. Instalacija an

Postavite poslužitelj Counter-Strike: Global Offensive (CSGO) na Arch Linuxu

Postavite poslužitelj Counter-Strike: Global Offensive (CSGO) na Arch Linuxu

Ovaj vodič objašnjava kako postaviti poslužitelj Counter-Strike: Global Offensive na Arch Linux. Ovaj vodič pretpostavlja da ste se prijavili sa standardnom upotrebom

Postavite Team Fortress 2 poslužitelj na Arch Linux

Postavite Team Fortress 2 poslužitelj na Arch Linux

Ovaj vodič objašnjava kako postaviti Team Fortress 2 poslužitelj na Arch Linux. Pretpostavljam da ste prijavljeni s nekorijenskim korisničkim računom koji ima sudo pristup

Kako instalirati MariaDB 10.3 ili MySQL 8.0 na Arch Linux

Kako instalirati MariaDB 10.3 ili MySQL 8.0 na Arch Linux

Preduvjeti Vultr poslužitelj koji radi s najnovijim Arch Linuxom (pogledajte ovaj članak.) Sudo pristup: Naredbe koje se trebaju pokrenuti kao root imaju prefiks # i jedan

Kako instalirati MongoDB 4.0 na Arch Linux

Kako instalirati MongoDB 4.0 na Arch Linux

Preduvjeti Vultr poslužitelj koji radi s najnovijim Arch Linuxom (pogledajte ovaj članak) Sudo pristup: Naredbe koje se trebaju pokrenuti kao root imaju prefiks # i jedan

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više