A Devtools használata Arch Linuxon

A Devtools csomag eredetileg a Megbízható felhasználók számára készült, hogy megfelelően hozzon létre csomagokat a hivatalos adattárak számára. Azonban a hétköznapi felhasználók is használhatják AUR csomagok, vagy akár módosított hivatalos csomagok készítésére.

Tekintse meg ezt az útmutatót az AUR általános megértéséhez és használatához, beleértve a beszerzését is PKGBUILD. Ez a dokumentum csak a Devtools-ra vonatkozó lépéseket mutatja be, ha ezt a módszert választja a csomag fordításához.

A Devtools külön tiszta Arch telepítést tart fenn, amely itt található /var/lib/archbuild/<TARGET>/root, és csak csomagcsoportokat baseés base-devel. Ha ez a tiszta telepítés nem létezik, akkor automatikusan létrehozza. Ha létezik, automatikusan frissíti a benne lévő csomagokat. Amikor a Devtools csomagot készít, akkor ennek a tiszta telepítésnek a másolatával kezdődik, csak a másolatba telepíti a szükséges csomagokat, bemásolja a forráskódot, elvégzi a fordítást és a csomagolást, és csak a kapott csomagot másolja ki, a hivatalos adattárakban találhatóakkal azonos formában.

A Devtoolsnak vannak előnyei a makepkgközvetlen futtatással szemben . Ennek egyik előnye, hogy base-devela lefordításához, de nem futtatásához szükséges egyéb csomagok soha nem záródnak le a fő rendszerben. Ez kevesebb csomagot, amelyet időnként frissíteni kell, és aggályai vannak. Bár elsősorban az Arch csomagok karbantartói számára jelent előnyt, ez a folyamat könnyen felfedi, ha a PKGBUILDhelytelen, például ha kimarad egy függőség a listából, amelyet a karbantartó történetesen már telepített a fő rendszerükre. Használhat olyan gépet is, amely gyorsabban építi fel a csomagokat, és a kapott csomagot egy lassabb gépre másolja, amely futtatja, anélkül, hogy szennyezné az építőgép telepítését.

A fő hátrány az, hogy a tiszta gyökér mindig ott van, körülbelül 800 MB-ot foglal el, és általában egyetlen példány több helyet foglal el. Ne feledje, ha /var/lib/archbuild/Btrfs-t használ, a tiszta gyökér másolata Btrfs-pillanatképként indul, így ezek a fájlok nem foglalnak el dupla helyet. A tiszta gyökér mindig ott van, hogy ne kelljen újratelepíteni minden alkalommal, amikor csomagot készítenek.

Fordítás Devtools segítségével

A Devtools telepítése:

# pacman -S devtools

Csomag készítéséhez a Devtools tartalmazza a -t archbuild, de ezt nem lehet közvetlenül futtatni. Tartalmazza a szimbólum hivatkozásait is {extra, gnome-unstable, kde-unstable, staging, testing}-x86_64-build. A futtatásához használt szimbolikus hivatkozást ellenőrzi archbuild, hogy meghatározza, melyik célt szeretné használni. Futtatható ezeknek az instabil/staging/tesztelő tárolóknak a használatára, amelyeknek lehetnek újabb verziói, mint amilyeneket a hivatalos adattárakba kiadtak. Ahhoz, hogy a hivatalos tárolókban nem AUR csomagokban, a könyvtárban a PKGBUILDpéldául a könyvtár által készített git clone, futtassa a következő:

$ extra-x86_64-build

Megjegyzés: Az útmutató többi része egyszerűen a következőre fog hivatkozni extra-x86_64-build.

A futás befejezése után a következő eredmények lesznek:

  • /var/lib/archbuild/extra-x86_64/root- Tiszta chroot , amely egy naprakész telepítés csak csomagcsoportokkal baseés base-devel.
  • /var/lib/archbuild/extra-x86_64/<USERNAME>- Ez tartalmazni fog egy build chrootot . Ez a tiszta chroot másolata a készülő csomag felépítéséhez vagy futtatásához szükséges függőségekkel, valamint a forráskóddal, a fordítási eredményekkel és a csomaggal.
  • A könyvtár, amelyben tartózkodik, tartalmazza a csomag- és összeállítási naplófájlokat, valamint a letöltött forráskódot.

A végén előfordulhat, hogy " Checking PKGBUILD" és " Checking <PKGNAME>-<PKGVER>-<PKGREL>-<ARCH>.pkg.tar.xz". Az ezek utáni sorokat a program adja ki namcap, amely automatikusan megkeresi a problémákat, például a hibás formátumú PKGBUILDfájlokat, a függőségeket, beleértve azokat, amelyeket a csomag nem használ, a nem olyan függőségeket, amelyeket a csomag használ, és így tovább. Gyakran hamis pozitív eredményeket generál namcap, de ez egy nagyszerű eszköz a dolgok kivizsgálására. Ha a csomag megfelelően működik, nem jó ötlet a karbantartót figyelmeztetni a namcapkimenetre, hacsak nem vizsgálta meg, és nem ellenőrizte, hogy változtatásokat kell végrehajtani.

Használhatja pacmana csomag telepítéséhez, amely telepíti a csomag futtatásához szükséges függőségeket, amennyiben azok hivatalos lerakatokban vagy helyi tárolókban vannak.

Használjon helyi adattárat az itt leírtak szerint , vagy telepítse közvetlenül a fájlt:

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

Ha extra-x86_64-buildmost, vagy bármikor később ezzel vagy egy másik csomaggal újra futtatná, szükség esetén frissíti a tiszta chrootot, törli a build chrootot, és a tiszta chroot új másolatát készíti, és ugyanezt a folyamatot hajtja végre. Ha a könyvtárában még mindig van a legutóbb letöltött forráskód, akkor azt fogja használni. Ha a csomag egy fejlesztői AUR csomag, akkor új módosításokat fog végrehajtani, nem pedig újraklónozni.

Belsőleg extra-x86_64-buildfut makechrootpkg, ami belsőleg meghívja a makepkg. A lehetőségek extra-x86_64-builda következők:

  • -c: Tisztítsa meg a chrootokat a teljes /var/lib/archbuild/extra-x86_64/könyvtár eltávolításával és újbóli létrehozásával, beleértve a tiszta chrootot és az összes build chroot könyvtárat. Erre ritkán van szükség, csak akkor, ha a tiszta chroot megsérül, vagy ha a Devtools frissítése megtöri a visszafelé kompatibilitást.
  • -r <dir>: Használjon más könyvtárat, mint /var/lib/archbuild/extra-x86_64/a chrootok tárolására.

Az extra-x86_64-buildafter argumentumok --átadódnak a következőnek makechrootpkg, amikor belsőleg használja. Számos argumentum mindig automatikusan átadódik extra-x86_64-build-ról -ra makechrootpkg. Ezek az automatikus argumentumok -r <value given to extra-x86_64-build -r option if given, /var/lib/archbuild/extra-x86_64 otherwise> -c -n. Azt mondják, makechrootpkghogy távolítsuk el a build chrootot, és készítsük el a tiszta chroot friss másolatát, és futtassuk namcapa csomagot, ha sikeresen felépül. A leggyakrabban használt lehetőség, hogy lehet átadni makechrootpkgaz -l <copy name>. Ez az a könyvtárnév, amely a build chroot-ot adja a helyett <USERNAME>, amely több másolat karbantartásához vagy több csomag egyidejű fordításához hasznos.

Minden makechrootpkgafter argumentum --átkerül a következőhöz makepkg, amikor belsőleg használja a csomag felépítéséhez. Az első alkalommal makepkgfuttatja makechrootpkg, saját változtathatatlan opcióival, szükség esetén letölti a forrásfájlokat, és végrehajtja az integritás ellenőrzését; így ezen a futáson semmit nem lehet továbbítani. makepkgMásodszor is lefut a csomag felépítéséhez, és mindig automatikusan átadja az makepkgargumentumokat, --syncdeps --noconfirm --log --holdver --skipintegamelyek makepkga build chroot-on belül azt mondják, hogy automatikusan telepítse a hiányzó függőségeket, amelyek szükségesek a csomag felépítéséhez és használatához, ne kérjen megerősítést a alatt pacman, naplózza az építési folyamatot szövegbe fájlok mellett stdoutne frissítse a forráskódot, ha verziókezelő rendszerben van, és ne végezzen forrásfájl-ellenőrzést.

Ezeket a következő űrlap segítségével láncolhatja össze:

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

Vegye figyelembe, hogy /var/lib/archbuildúgy kezelhető, mintha egy ideiglenes könyvtár lenne. Ha több Vultr merevlemezünk van, érdemes ide RAID0 (csíkos) fájlrendszert csatolni. Ha sok RAM-mal rendelkezik, csatlakoztathat egy RAM-mal támogatott fájlrendszert is, mint pl tmpfs. A csomag felépítése után a program kimásolja abba a könyvtárba, extra-x86_64-buildahonnan futott , és ha akarja, ezen a ponton törölheti a /var/lib/archbuild. A következő futás lassabb lenne, mert új, tiszta gyökérre van szükség. Alternatív megoldásként törölheti /var/lib/archbuild/<USERNAME>, hogy többletterületet szerezzen vissza a build chrootból, mielőtt a Devtools következő futtatása automatikusan törli. Tehát még akkor is, ha az ide csatlakoztatott RAID0 fájlrendszer meghibásodik, a legtöbb veszteség egy folyamatban lévő fordítás lenne.

Devtools konfigurációs fájlok

A Devtools konfigurációs fájljaival kapcsolatban meg kell jegyezni néhány konkrétumot. Ezek található /usr/share/devtools/, mint például makepkg-x86_64.conf, és pacman-extra.conf:

  • Az olyan /etcfájlok esetében, mint a makepkg.confés pacman.conf, biztonságosan szerkesztheti őket a helyükön, és a csomag frissítése után nem írja felül a módosításokat. Inkább elmenti az új konfigurációs fájlokat (ha megváltoztak az előző verzióhoz képest), amelyek végződése .pacnew. A Devtools konfigurációs fájlok azonban olyanok, /usr/share/amelyekben nem a felhasználók szerkeszthetők, így a Devtools frissítésekor teljesen felülírja a fájlok módosításait anélkül, hogy figyelmeztetné Önt. Ennek a viselkedésnek a módosítását javasolták és elutasították, mert ez segít abban, hogy a csomagok ugyanazokkal a fordítási beállításokkal kerüljenek elküldésre a hivatalos adattárakba.
  • A MAKEFLAGS, PACKAGER, és {SRC,SRCPKG,PKG,LOG}DESTértékei /etc/makepkg.confhelyett a /usr/share/devtools/makepkg-x86_64.conf.

Helyi adattár

Ha olyan csomagokat pacmanépítesz , amelyek függőségei vannak az általad felépített más csomagoktól, akkor helyi tárolót kell használnod, hogy amikor a build chroot-on belül fut, az megtalálja a függőségeket.

A helyi adattár beállításához olvassa el az útmutató „Helyi adattár ” című részét.

Egyéni cél létrehozása:

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

Szerkessze /usr/share/devtools/pacman-custom.conf, és a végére adja hozzá a következőket:

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

Szerkessze /etc/pacman.conf, és adja hozzá a következőket. Ez arra kényszeríti a könyvtárat, hogy a chrootban bind módon kerüljön beillesztésre:

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

Most a használat helyett extra-x86_64-buildhasználja ezt:

$ custom-x86_64-build

Ha mindig az egyéni célt szeretné használni, akkor törölheti a /var/lib/archbuild/extra-x86_64-build/könyvtárat, ha létezik, mivel a chrootok mostantól a -ban lesznek /var/lib/archbuild/custom-x86_64-build/.

Csomagolás gyorsabb

Megjegyzés: A menetes csomagolás engedélyezése magában foglalja a /usr/share/devtoolskonfigurációs fájlok szerkesztését , ami hivatalosan nem támogatott, ezért ezt a módosítást minden alkalommal el kell végeznie a Devtools frissítésekor.

A Devtools a teljes csomagot archív formátumba egyesíti. Alapértelmezés szerint .tar.xzegyetlen szálat használ a xztömörítéshez.

Több CPU-s rendszereken engedélyezheti xztöbb szál használatát a szerkesztéssel /usr/share/devtools/makepkg-x86_64.conf, és módosíthatja a következő sort:

COMPRESSXZ=(xz -c -z -)

Ha annyi szálat szeretne engedélyezni, ahány virtuális magja van:

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

Ha engedélyezni szeretné több virtuális mag használatát, de nem mindegyiket, hogy csökkentse a rendszer teljes teljesítményére gyakorolt ​​hatást, adjon hozzá egy adott számot:

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

A virtuális magok számánál több szál megadása csökkenti a teljesítményt.

Ha nem bánja, hogy a csomagfájl (esetleg sokkal) nagyobb, kapcsolja ki a tömörítést a szerkesztéssel /usr/share/devtools/makepkg-x86_64.conf, és módosítsa a következő sort:

PKGEXT='.pkg.tar.xz'

Módosítsa a következőre:

PKGEXT='.pkg.tar'

Hagyj kommentárt

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Ez az oktatóanyag végigvezeti Önt a Vultrs rendszerekkel kompatibilis Windows ISO létrehozásának folyamatán. Itt megtanulhatja az <>Windows ISO<> előállításának lépéseit az NTLite segítségével.

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.

Az adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.