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'

A 2019 Arch Linux telepítése Vultr szerverre

A 2019 Arch Linux telepítése Vultr szerverre

Bevezetés Az Arch Linuxnak kisebb, de még mindig erős követése van, mint a népszerűbb disztribúciók. Filozófiája egészen más, előnyei vannak an

Az Arch Linux telepítése Vultr szerverre

Az Arch Linux telepítése Vultr szerverre

A Vultr azt a fantasztikus funkciót kínálja, hogy a kiváló sablonjaik mellett saját egyéni képét is használhatja, amely lehetővé teszi a futtatást.

A Devtools használata Arch Linuxon

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 hétköznapi felhasználók is használhatják

Makepkg használata Arch Linuxon

Makepkg használata Arch Linuxon

Ha közvetlenül a makepkg-ot használja, az némileg szennyezi a rendszert. Az alap-fejlesztési csomagcsoportot telepíteni kell. Ily módon alapértelmezés szerint függőségekre van szükség

A PostgreSQL 11.1 telepítése Arch Linuxra

A PostgreSQL 11.1 telepítése Arch Linuxra

Előfeltételek Egy Vultr-szerver, amelyik naprakész Arch Linuxot futtat (lásd ezt a cikket.) Sudo hozzáférés. A rootként futtatandó parancsok előtt # és egy szerepel

A HTTPS használata Arch Linux webszerveren

A HTTPS használata Arch Linux webszerveren

Előfeltételek Friss Arch Linuxot futtató Vultr szerver (lásd ezt a cikket.) Futó webszerver, Apache vagy Nginx Sudo hozzáférés Parancsok szükségesek t

Telepítse az Arch Linuxot a Btrfs Snapshotting segítségével

Telepítse az Arch Linuxot a Btrfs Snapshotting segítségével

Előszó Az Arch Linux egy általános célú disztribúció, amely jól ismert élvonalbeli technológiájáról és rugalmas konfigurációjáról. A Btrfs pillanatképekkel tak

Csomagok építése Arch Linuxon (beleértve az AUR-t is)

Csomagok építése Arch Linuxon (beleértve az AUR-t is)

Arch Linuxon a hivatalos adattárak a következők: core, extra és közösségi. Ezek a csomagok már le vannak fordítva, és telepítésük a pacman-en keresztül történik. A th

A Spigot szerver beállítása Arch Linuxon

A Spigot szerver beállítása Arch Linuxon

Ez az oktatóanyag elmagyarázza, hogyan állíthat be Minecraft szervert a Spigot használatával Arch Linux rendszeren. Ez az oktatóanyag feltételezi, hogy Ön normál felhasználó (nem root felhasználó), és hav

Az Nginx 1.14 telepítése Arch Linuxra

Az Nginx 1.14 telepítése Arch Linuxra

Előfeltételek Egy Vultr-szerver, amelyik naprakész Arch Linuxot futtat (lásd ezt a cikket.) Sudo hozzáférés. A rootként futtatandó parancsok előtagja #. Th

Az Apache 2.4 telepítése Arch Linuxra

Az Apache 2.4 telepítése Arch Linuxra

Előfeltételek Egy Vultr-szerver, amely naprakész Arch Linuxot futtat. További információért tekintse meg ezt az útmutatót. Sudo hozzáférés. A parancsokat rootként kell futtatni ar

A Python 3.7 telepítése Arch Linux webszerverre

A Python 3.7 telepítése Arch Linux webszerverre

Előfeltételek Friss Arch Linuxot futtató Vultr szerver (lásd ezt a cikket.) Futó webszerver, Apache vagy Nginx Sudo hozzáférés: A parancsokhoz szükség van

A Perl 5.28 telepítése Arch Linux webszerverre

A Perl 5.28 telepítése Arch Linux webszerverre

Előfeltételek Friss Arch Linuxot futtató Vultr szerver (lásd ezt a cikket.) Futó webszerver, Apache vagy Nginx Sudo hozzáférés: A parancsokhoz szükség van

A PHP 7.3 telepítése Arch Linux webszerverre

A PHP 7.3 telepítése Arch Linux webszerverre

Előfeltételek Friss Arch Linuxot futtató Vultr szerver (lásd ezt a cikket.) Futó webszerver, Apache vagy Nginx Sudo hozzáféréssel. A parancsok megkövetelik

Setup Mumble Server on Arch Linux

Setup Mumble Server on Arch Linux

This tutorial explains how to setup a Mumble server (Murmur) on Arch Linux. Everything done in this tutorial is done as the root user. Installation an

Setup a Counter-Strike: Global Offensive (CSGO) Server on Arch Linux

Setup a Counter-Strike: Global Offensive (CSGO) Server on Arch Linux

This tutorial explains how to setup a Counter-Strike: Global Offensive server on Arch Linux. This tutorial assumes that you logged in with a standard use

Állítson be egy Team Fortress 2 szervert Arch Linuxon

Állítson be egy Team Fortress 2 szervert Arch Linuxon

Ez az oktatóanyag elmagyarázza, hogyan állíthat be egy Team Fortress 2 szervert Arch Linux rendszeren. Feltételezem, hogy nem root felhasználói fiókkal van bejelentkezve, amely sudo hozzáféréssel rendelkezik

A MariaDB 10.3 vagy a MySQL 8.0 telepítése Arch Linuxra

A MariaDB 10.3 vagy a MySQL 8.0 telepítése Arch Linuxra

Előfeltételek Friss Arch Linuxot futtató Vultr szerver (lásd ezt a cikket.) Sudo hozzáférés: A rootként futtatandó parancsok előtagja # és egy

A MongoDB 4.0 telepítése Arch Linuxra

A MongoDB 4.0 telepítése Arch Linuxra

Előfeltételek Friss Arch Linuxot futtató Vultr szerver (lásd ezt a cikket) Sudo hozzáférés: A rootként futtatandó parancsok előtagja # és egy

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.

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.

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 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é.

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

A macOS Catalina 10.15.4 kiegészítés frissítése több problémát okoz, mint a megoldás

Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket