Përdorimi i Devtools në Arch Linux

Paketa Devtools u krijua fillimisht për Përdoruesit e Besuar për të krijuar siç duhet paketa për depot zyrtare. Megjithatë, ai mund të përdoret edhe nga përdoruesit e zakonshëm për të ndërtuar paketa AUR, apo edhe paketa zyrtare të modifikuara.

Referojuni këtij udhëzuesi për të kuptuar dhe përdorur AUR në përgjithësi, duke përfshirë marrjen e PKGBUILD. Ky dokument tregon vetëm hapat specifikë për Devtools, nëse është metoda që zgjidhni për të përpiluar një paketë.

Devtools mban një instalim të veçantë të pastër Arch, të vendosur në /var/lib/archbuild/<TARGET>/root, i cili përmban vetëm grupe paketash basedhe base-devel. Nëse ky instalim i pastër nuk ekziston, ai e krijon atë automatikisht. Nëse ekziston, ai përditëson automatikisht çdo paketë në të. Kur Devtools përdoret për të ndërtuar një paketë, ai fillon me një kopje të këtij instalimi të pastër, instalon paketat e kërkuara vetëm në kopje, kopjon kodin burim në të, kryen përpilimin dhe paketimin në të dhe kopjon vetëm paketën që rezulton. në formë identike nga ajo që gjendet në depot zyrtare.

Ka avantazhe të Devtools ndaj ekzekutimit të makepkgdrejtpërdrejtë. Një avantazh është se base-develdhe paketat e tjera të nevojshme për të përpiluar, por jo për të ekzekutuar, paketa që po krijoni nuk përfundon kurrë në sistemin tuaj kryesor. Kjo është më pak paketa për t'u përmirësuar periodikisht dhe për të pasur shqetësime. Megjithëse është kryesisht një përfitim për mirëmbajtësit e paketave Arch, ky proces ekspozon lehtësisht kur a PKGBUILDështë e pasaktë, si p.sh. nëse një varësi mungon nga renditja që mirëmbajtësi e ka instaluar tashmë në sistemin e tyre kryesor. Ju gjithashtu mund të përdorni një makinë që është më e shpejtë në ndërtimin e paketave dhe të kopjoni paketën që rezulton në një makinë më të ngadaltë që do ta përdorë atë, pa ndotur instalimin e makinës së ndërtimit.

Disavantazhi kryesor është se rrënja e pastër është gjithmonë aty, duke marrë rreth 800 MB, dhe zakonisht një kopje e vetme është atje duke marrë më shumë hapësirë. Shënim, nëse /var/lib/archbuild/përdor Btrfs, kopja e rrënjës së pastër fillon të jetë një fotografi e çastit Btrfs, kështu që ato skedarë nuk marrin dyfishin e hapësirës. Rrënja e pastër mbahet gjithmonë aty për të shmangur riinstalimin e saj sa herë që po bëhet një paketë.

Përpilimi duke përdorur Devtools

Instaloni Devtools:

# pacman -S devtools

Për të ndërtuar një paketë, Devtools përfshin archbuild, por ju nuk e ekzekutoni këtë drejtpërdrejt. Ai gjithashtu përfshin lidhjet simbolike të {extra, gnome-unstable, kde-unstable, staging, testing}-x86_64-build. Symlink po përdoret për ta ekzekutuar atë do të inspektohet nga archbuild, për të përcaktuar se cilin objektiv dëshironi të përdorni. Mund të përdoret për të përdorur këto depo të paqëndrueshme/stabilizuese/testuese, të cilat mund të kenë versione më të reja sesa janë lëshuar në depot zyrtare. Për të përdorur magazinat zyrtare për paketat jo-AUR, në drejtorinë me PKGBUILD, për shembull drejtorinë e bërë nga git clone, ekzekutoni sa më poshtë:

$ extra-x86_64-build

Shënim: Pjesa tjetër e këtij udhëzuesi thjesht do t'i referohet extra-x86_64-build.

Pasi të përfundojë ekzekutimi, rezultatet e mëposhtme do të jenë:

  • /var/lib/archbuild/extra-x86_64/root- Një chroot i pastër , i cili është një instalim i përditësuar me vetëm grupe paketash basedhe base-devel.
  • /var/lib/archbuild/extra-x86_64/<USERNAME>- Kjo do të përmbajë një build chroot . Kjo është një kopje e chroot-it të pastër me çdo varësi që kërkohet për të ndërtuar ose ekzekutuar paketën që po ndërtohet, si dhe kodin burimor, rezultatet e përpilimit dhe paketën e tij.
  • Direktoria në të cilën ndodheni do të përmbajë skedarët e paketës dhe log-it, si dhe çdo kod burimi të shkarkuar.

Në fund, mund të vëreni " Checking PKGBUILD", dhe " Checking <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz". Çdo rresht pas tyre nxirret nga namcap, i cili automatikisht kërkon probleme si PKGBUILDskedarë të keqformuar , varësi të përfshira që paketa duket se nuk i përdor, varësi që nuk përfshihen që duket se i përdor paketa dhe më shumë. Pozitivet e rreme gjenerohen shpesh nga namcap, por është një mjet i shkëlqyeshëm për t'i dhënë gjëra për të hetuar. Nëse paketa juaj funksionon siç duhet, nuk është një ide e mirë të lajmëroni mirëmbajtesin për namcapdaljen, përveç nëse e keni parë dhe verifikuar se duhet bërë një ndryshim.

Ju mund ta përdorni pacmanpër të instaluar paketën, e cila do të instalojë çdo varësi që kërkohet për të ekzekutuar paketën për sa kohë që ato janë në depo zyrtare ose në një depo lokale.

Ose përdorni një Depo Lokale siç shpjegohet këtu , ose instaloni skedarin drejtpërdrejt:

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

Nëse do të ekzekutonit extra-x86_64-buildpërsëri, tani, ose në çdo kohë më vonë me këtë ose një paketë tjetër, ajo do të përditësojë chroot-in e pastër nëse është e nevojshme, do të fshijë chroot-in e ndërtuar dhe do ta bëjë atë një kopje të re të chroot-it të pastër dhe do të kryejë të njëjtin proces. Nëse drejtoria juaj ka ende kodin burimor të shkarkuar nga hera e fundit, ai do ta përdorë atë. Nëse paketa është një paketë zhvillimore AUR, ajo do të tërheqë ndryshime të reja në vend që të riklonojë.

Brenda, extra-x86_64-buildshkon makechrootpkg, e cila nga brenda thërret makepkg. Opsionet për extra-x86_64-buildpërfshijnë sa vijon:

  • -c: Pastroni chroots, duke hequr dhe rikrijuar të gjithë /var/lib/archbuild/extra-x86_64/direktoriumin, duke përfshirë chroot-in e tij të pastër dhe të gjitha drejtoritë e ndërtuara chroot. Kjo është e nevojshme rrallë, vetëm nëse chroot i pastër korruptohet, ose nëse Devtools përmirësohet në një mënyrë që prish përputhshmërinë prapa.
  • -r <dir>: Përdorni një direktori të ndryshme nga ajo /var/lib/archbuild/extra-x86_64/që përmban chroots.

Çdo argument për extra-x86_64-buildpas --kalohet në makechrootpkg, kur ai e përdor atë nga brenda. Disa argumente kalojnë gjithmonë automatikisht nga extra-x86_64-buildmakechrootpkg. Këto argumente automatike janë -r <value given to extra-x86_64-build -r option if given, /var/lib/archbuild/extra-x86_64 otherwise> -c -n. Ata thonë makechrootpkgqë të hiqni build chroot dhe ta bëni atë një kopje të freskët të chroot të pastër dhe të ekzekutoni namcapnë paketë nëse ndërtohet me sukses. Një opsion i përdorur zakonisht tek i cili mund të kalohet makechrootpkgështë -l <copy name>. Ky është emri i drejtorisë për t'i dhënë build chroot, në vend të <USERNAME>, i cili është i dobishëm për mbajtjen e kopjeve të shumta ose përpilimin e paketave të shumta në të njëjtën kohë.

Çdo argument për makechrootpkgpas --kalohet në makepkg, kur ai e përdor nga brenda për të ndërtuar paketën. Hera e parë makepkgdrejtohet nga makechrootpkg, bëhet me opsionet e veta të pandryshueshme, për të shkarkuar skedarët burimor, nëse është e nevojshme, dhe për të kryer kontrolle të integritetit; kështu që asgjë nuk mund të përcillet në këtë drejtim. Ai funksionon makepkgpër herë të dytë për të ndërtuar paketën dhe gjithmonë kalon automatikisht makepkgargumentet e të --syncdeps --noconfirm --log --holdver --skipintegcilave tregon makepkgqë, brenda build chroot, të instalohen automatikisht varësitë që mungojnë të kërkuara për ndërtimin dhe përdorimin e paketës, për të mos kërkuar konfirmim gjatë pacman, regjistrimin e procesit të ndërtimit në tekst. skedarët përveç stdout, mos përditësoni kodin burimor nëse janë në një sistem kontrolli versioni dhe mos kryeni kontrolle të verifikimit të skedarit burimor.

Ju mund t'i lidhni ato së bashku duke përdorur formularin e mëposhtëm:

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

Vini re se /var/lib/archbuildmund të trajtohet sikur të ishte një drejtori e përkohshme. Nëse keni shumë disqe të ngurtë Vultr, ia vlen të montoni këtu një sistem skedarësh RAID0 (shirit). Nëse keni shumë RAM, mund të montoni gjithashtu një sistem skedarësh të mbështetur me RAM si tmpfs. Pasi të ndërtohet një paketë, ajo kopjohet në drejtorinë nga e cila keni drejtuar extra-x86_64-builddhe nëse dëshironi, në këtë pikë mund ta fshini /var/lib/archbuild. Vrapimi tjetër do të ishte më i ngadalshëm, sepse do të duhej të krijonte një rrënjë të re të pastër. Përndryshe, mund të fshini /var/lib/archbuild/<USERNAME>për të rikthyer hapësirën shtesë nga build chroot përpara se të fshihet automatikisht nga ekzekutimi tjetër i Devtools. Pra, edhe nëse do të kishit një sistem skedarësh të montuar këtu RAID0 të dështon, më së shumti që do të humbisnit do të ishte një përmbledhje në proces.

Skedarët e konfigurimit të Devtools

Ka disa specifika për t'u shënuar me skedarët e konfigurimit të Devtools. Ato janë të vendosura në /usr/share/devtools/, si makepkg-x86_64.confdhe pacman-extra.conf:

  • Për /etcskedarë si makepkg.confdhe pacman.conf, mund t'i modifikoni në mënyrë të sigurtë në vend dhe kur paketa të përmirësohet, ajo nuk do t'i mbishkruaj ndryshimet tuaja. Përkundrazi do të ruajë skedarët e rinj të konfigurimit (nëse kanë ndryshuar nga versioni i mëparshëm) duke përfunduar me .pacnew. Sidoqoftë, skedarët e konfigurimit të Devtools /usr/share/nuk janë të destinuara për t'u modifikuar nga përdoruesi, kështu që kur Devtools të përmirësohet, do t'i mbishkruaj plotësisht ndryshimet tuaja në këta skedarë pa ju paralajmëruar. Një ndryshim në këtë sjellje është propozuar dhe refuzuar, sepse kjo ndihmon për të siguruar që paketat të dërgohen në depot zyrtare të gjitha me të njëjtat cilësime përpilimi.
  • Vlera për MAKEFLAGS, PACKAGERdhe {SRC,SRCPKG,PKG,LOG}DESTjanë marrë nga në /etc/makepkg.confvend se /usr/share/devtools/makepkg-x86_64.conf.

Depoja lokale

Nëse po ndërtoni paketa që kanë varësi nga paketat e tjera që keni ndërtuar, duhet të përdorni një depo lokale, në mënyrë që kur të pacmanekzekutohet brenda build chroot, të gjejë varësitë.

Për të konfiguruar një depo lokale, referojuni seksionit " Depoja lokale" e këtij udhëzuesi .

Krijo një objektiv të personalizuar:

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

Ndryshoni /usr/share/devtools/pacman-custom.confdhe shtoni sa vijon në fund:

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

Ndryshoni /etc/pacman.confdhe shtoni sa vijon. Kjo detyron direktorinë që të lidhet e montuar në chroot:

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

Tani, në vend që të përdorni, extra-x86_64-buildpërdorni këtë:

$ custom-x86_64-build

Nëse dëshironi të përdorni gjithmonë objektivin e personalizuar, mund ta fshini /var/lib/archbuild/extra-x86_64-build/direktorinë nëse ekziston, pasi chroots tani do të jetë në /var/lib/archbuild/custom-x86_64-build/.

Paketoni më shpejt

Shënim që aktivizimi i paketimit të filetuar përfshin redaktimin e /usr/share/devtoolsskedarëve të konfigurimit, i cili nuk mbështetet zyrtarisht, kështu që do t'ju duhet ta kryeni këtë ndryshim sa herë që përmirësohet Devtools.

Devtools kombinon një paketë të tërë në një format arkivi. Si parazgjedhje, ai bën një .tar.xzduke përdorur një fije të vetme për xzkompresim.

Në sistemet me shumë CPU, ju mund të lejoni xzpërdorimin e temave të shumta duke redaktuar /usr/share/devtools/makepkg-x86_64.confdhe të ndryshoni linjën e mëposhtme:

COMPRESSXZ=(xz -c -z -)

Për të lejuar aq thread sa keni bërthama virtuale:

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

Për të lejuar përdorimin e bërthamave të shumta virtuale, por jo të gjitha, në mënyrë që të zvogëlohet ndikimi në performancën e përgjithshme të sistemit, shtoni një numër specifik:

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

Specifikimi i më shumë threads se numri i bërthamave virtuale që keni do të ulë performancën.

Nëse nuk e keni problem që skedari i paketës të jetë (potencialisht shumë) më i madh, çaktivizoni kompresimin duke redaktuar /usr/share/devtools/makepkg-x86_64.confdhe ndryshoni rreshtin e mëposhtëm:

PKGEXT='.pkg.tar.xz'

Ndryshojeni që të duket si më poshtë:

PKGEXT='.pkg.tar'

Instalimi i Arch Linux 2019 në një server Vultr

Instalimi i Arch Linux 2019 në një server Vultr

Hyrje Arch Linux ka një shpërndarje më të vogël, por ende të fortë, pasuese se sa më shumë shpërndarje të njohura. Filozofia e saj është krejt e ndryshme, me avantazhe një

Instalimi i Arch Linux në një server Vultr

Instalimi i Arch Linux në një server Vultr

Vultr ju ofron funksionalitetin e mrekullueshëm për t'ju lejuar të përdorni imazhin tuaj të personalizuar përveç shablloneve të tyre të shkëlqyer, gjë që ju mundëson të ekzekutoni

Përdorimi i Devtools në Arch Linux

Përdorimi i Devtools në Arch Linux

Paketa Devtools u krijua fillimisht për Përdoruesit e Besuar për të krijuar siç duhet paketa për depot zyrtare. Megjithatë, mund të përdoret nga përdorues të zakonshëm

Duke përdorur Makepkg në Arch Linux

Duke përdorur Makepkg në Arch Linux

Nëse përdorni makepkg drejtpërdrejt, ai ndot disi sistemin tuaj. Duhet të instalohet grupi i paketave të zhvillimit bazë. Në këtë mënyrë, si parazgjedhje, nevojiteshin vetëm varësitë

How To Install PostgreSQL 11.1 On Arch Linux

How To Install PostgreSQL 11.1 On Arch Linux

Prerequisites A Vultr server running up to date Arch Linux (see this article.) Sudo access. Commands required to be ran as root are prefixed by #, and one

Si të përdorni HTTPS në uebserverin Arch Linux

Si të përdorni HTTPS në uebserverin Arch Linux

Parakushtet Një server Vultr që funksionon i përditësuar Arch Linux (shih këtë artikull.) Një uebserver që funksionon, ose Apache ose Nginx Sudo Komandat e aksesit të kërkuara t

Ndërtimi i paketave në Arch Linux (përfshirë AUR)

Ndërtimi i paketave në Arch Linux (përfshirë AUR)

Në Arch Linux, depot zyrtare janë: bërthama, shtesë dhe komuniteti. Këto paketa tashmë janë përpiluar dhe instalohen përmes pacman. Për th

Konfiguro serverin Spigot në Arch Linux

Konfiguro serverin Spigot në Arch Linux

Ky tutorial shpjegon se si të konfiguroni një server Minecraft duke përdorur Spigot në Arch Linux. Ky tutorial supozon se ju jeni një përdorues normal (jo-root) dhe keni

Si të instaloni Nginx 1.14 në Arch Linux

Si të instaloni Nginx 1.14 në Arch Linux

Parakushtet Një server Vultr që funksionon i përditësuar Arch Linux (shih këtë artikull.) Qasje Sudo. Komandat që kërkohen për t'u ekzekutuar si rrënjë parashtesohen me #. Th

Si të instaloni Apache 2.4 në Arch Linux

Si të instaloni Apache 2.4 në Arch Linux

Parakushtet Një server Vultr që funksionon i përditësuar Arch Linux. Shihni këtë udhëzues për më shumë informacion. Qasje Sudo. Komandat që kërkohen të ekzekutohen si rrënjë ar

How To Install Python 3.7 On An Arch Linux Webserver

How To Install Python 3.7 On An Arch Linux Webserver

Prerequisites A Vultr server running up to date Arch Linux (see this article.) A running webserver, either Apache or Nginx Sudo access: Commands require

Instaloni Arch Linux me Btrfs Snapshotting

Instaloni Arch Linux me Btrfs Snapshotting

Preface Arch Linux është një shpërndarje me qëllime të përgjithshme e njohur për teknologjinë e saj më të avancuar dhe konfigurimin fleksibël. Me fotografitë e Btrfs, ne mund të marrim

How to Install Perl 5.28 on an Arch Linux Webserver

How to Install Perl 5.28 on an Arch Linux Webserver

Prerequisites A Vultr server running up to date Arch Linux (see this article.) A running webserver, either Apache or Nginx Sudo access: Commands require

How to Install PHP 7.3 on an Arch Linux Webserver

How to Install PHP 7.3 on an Arch Linux Webserver

Prerequisites A Vultr server running up to date Arch Linux (see this article.) A running webserver, either Apache or Nginx Sudo access. Commands require

Konfiguro serverin Mumble në Arch Linux

Konfiguro serverin Mumble në Arch Linux

Ky tutorial shpjegon se si të konfiguroni një server Mumble (Murmur) në Arch Linux. Gjithçka e bërë në këtë tutorial bëhet si përdorues rrënjë. Instalimi një

Vendosni një server Counter-Strike: Global Offensive (CSGO) në Arch Linux

Vendosni një server Counter-Strike: Global Offensive (CSGO) në Arch Linux

Ky tutorial shpjegon se si të konfiguroni një server Counter-Strike: Global Offensive në Arch Linux. Ky tutorial supozon se jeni identifikuar me një përdorim standard

Konfiguro një server Team Fortress 2 në Arch Linux

Konfiguro një server Team Fortress 2 në Arch Linux

Ky tutorial shpjegon se si të konfiguroni një server Team Fortress 2 në Arch Linux. Unë supozoj se jeni regjistruar me një llogari përdoruesi jo-root që ka akses sudo

Si të instaloni MariaDB 10.3 ose MySQL 8.0 në Arch Linux

Si të instaloni MariaDB 10.3 ose MySQL 8.0 në Arch Linux

Parakushtet Një server Vultr që funksionon i përditësuar Arch Linux (shih këtë artikull.) Qasja Sudo: Komandat që kërkohen për t'u ekzekutuar si rrënjë parashtesohen me #, dhe një

Si të instaloni MongoDB 4.0 në Arch Linux

Si të instaloni MongoDB 4.0 në Arch Linux

Parakushtet Një server Vultr që funksionon i përditësuar Arch Linux (shih këtë artikull) Qasja Sudo: Komandat që kërkohen për t'u ekzekutuar si rrënjë parashtesohen me #, dhe një

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë