Arch felhasználói adattár

Az Arch felhasználói adattár (AUR) egy közösség által irányított adattár az Arch felhasználók számára. Olyan csomagleírásokat (PKGBUILDs) tartalmaz, amelyek lehetővé teszik egy csomag forrásból való lefordítását a makepkg segítségével, majd telepítését a pacman segítségével. Az AUR azért jött létre, hogy rendszerezze és megossza a közösség új csomagjait, és segítsen felgyorsítani a népszerű csomagok felvételét a közösségi tárba. Ez a dokumentum elmagyarázza, hogyan érhetik el és használhatják a felhasználók az AUR-t.

A hivatalos tárolókba kerülő új csomagok jó része az AUR-ból indul. Az AUR-ban a felhasználók hozzájárulhatnak saját csomagkészítéseikhez (PKGBUILD és a kapcsolódó fájlokhoz). Az AUR közösségnek lehetősége van szavazni az AUR-ban lévő csomagokra. Ha egy csomag elég népszerűvé válik – feltéve, hogy kompatibilis licenccel és jó csomagolási technikával rendelkezik – bekerülhet a közösségi tárolóba (közvetlenül elérhető a pacman vagy az abs segítségével).

Figyelmeztetés: Az AUR csomagok felhasználók által készített tartalmak. Ezek a PKGBUILDok teljesen nem hivatalosak és nincsenek alaposan átvizsgálva. A rendelkezésre bocsátott fájlok bármilyen használata saját felelősségre történik.

Kezdés

A felhasználók az AUR webes felületéről kereshetnek és tölthetnek le PKGBUILD-okat. Ezeket PKGBUILDa makepkg segítségével lehet telepíthető csomagokká építeni, majd a pacman segítségével telepíteni.

  • Győződjön meg arról, hogy a base-devel csomagcsoport teljes egészében telepítve van (pacman -S --needed base-devel).
  • A leggyakoribb kérdésekre a #FAQ-ban talál válaszokat.
  • Az AUR-ból való csomagok építése előtt érdemes lehet beállítani /etc/makepkg.conf a rendszeréhez optimalizált építési folyamatot. A többmagos processzorokkal rendelkező rendszereken jelentős javulás érhető el a csomagok építési idejében a MAKEFLAGS változó beállításával, több mag használatával a tömörítéshez, vagy más tömörítési algoritmus használatával. A felhasználók a CFLAGS változóval hardver-specifikus fordítóoptimalizálásokat is engedélyezhetnek. További információért lásd makepkg#Tippek és trükkök.

Az AUR-ral SSH-n keresztül is lehet interakcióba lépni: az elérhető parancsok listájáért írja be a ssh [email protected] help-t.

Történet

A kezdetekben volt ftp://ftp.archlinux.org/incoming, és az emberek úgy járultak hozzá, hogy egyszerűen feltöltötték a PKGBUILD-ot, a szükséges kiegészítő fájlokat és magát az épített csomagot a szerverre. A csomag és a hozzá tartozó fájlok ott maradtak, amíg egy csomagfenntartó meg nem látta a programot és át nem vette.

Ekkor születtek meg a Trusted User Repositories. A közösség egyes tagjai engedélyt kaptak arra, hogy saját tárolóikat bárki számára elérhetővé tegyék. Az AUR ezen az alapon bővült, azzal a céllal, hogy rugalmasabbá és használhatóbbá váljon. Valójában az AUR karbantartóit még mindig TU-ként (Trusted Users) emlegetik.

2015-06-08 és 2015-08-08 között az AUR a 3.5.1-es verzióról 4.0.0-ra állt át, bevezetve a Git-tárházak használatát a PKGBUILDok közzétételére.A meglévő csomagok megszűntek, hacsak a karbantartóik nem vitték át manuálisan az új infrastruktúrára.

Git tárolók az AUR3 csomagokhoz

A GitHubon található AUR archívumban minden olyan csomaghoz van egy tároló, amely az átállás idején az AUR 3-ban volt.Alternatívaként létezik az aur3-mirror tároló, amely ugyanezt biztosítja.

A csomagok telepítése és frissítése

A csomagok telepítése az AUR-ból viszonylag egyszerű folyamat. Lényegében:

  1. Beszerezzük a build fájlokat, beleértve a PKGBUILD-ot és esetleg más szükséges fájlokat, mint a systemd egységek és javítások (gyakran nem a tényleges kódot).
  2. Ellenőrizzük, hogy a PKGBUILD és a kísérő fájlok nem rosszindulatúak vagy megbízhatatlanok.
  3. Futtassuk a makepkg -si-et abban a könyvtárban, ahová a fájlokat mentettük. Ez letölti a kódot, feloldja a függőségeket a pacman segítségével, lefordítja, csomagolja és telepíti a csomagot.
Megjegyzés: Az AUR nem támogatott, így a telepített csomagok frissítése az Ön felelőssége, nem a pacmané. Ha a hivatalos tárolókban lévő csomagok frissülnek, újra kell építenie minden olyan AUR csomagot, amely ezektől a könyvtáraktól függ.

Előfeltételek

Először biztosítsa, hogy a szükséges eszközök telepítve legyenek a base-devel csoport teljes telepítésével, amely tartalmazza a make és más, a forrásból való fordításhoz szükséges eszközöket.

Tipp: A base-devel csoport telepítésekor használja a --needed jelzőt, hogy a már meglévő csomagokat kihagyja ahelyett, hogy újratelepítené őket.
Megjegyzés: Az AUR-ban található csomagok feltételezik, hogy a base-devel csoport telepítve van, azaz nem sorolják fel a csoport tagjait explicit módon építési függőségként.

A következő lépés a megfelelő építési könyvtár kiválasztása. A build könyvtár egyszerűen egy könyvtár, ahol a csomag elkészül vagy “megépül”, és lehet bármilyen könyvtár. A következő szakaszok példái a ~/builds könyvtárat használják build könyvtárként.

Acquire build files

Lokalizálja a csomagot az AUR-ban. Ehhez az AUR kezdőlapjának tetején található keresőmezőt használja. A keresési listában az alkalmazás nevére kattintva megjelenik egy információs oldal a csomagról. Olvassa át a leírást, hogy megerősítse, hogy ez a kívánt csomag, jegyezze meg, hogy mikor frissítették utoljára a csomagot, és olvassa el az esetleges megjegyzéseket.

Egy csomag építési fájljainak megszerzésére több módszer is létezik:

  • Klónozza a git-tárát, amelyet az AUR oldalán a “Package Details” (Csomag adatai) alatt a “Git Clone URL” felirattal jelöltek. Ez az előnyben részesített módszer, amelynek előnye, hogy a git pull segítségével könnyedén hozzájuthat a csomag frissítéseihez.
$ git clone https://aur.archlinux.org/package_name.git
  • Töltsön le egy pillanatfelvételt, vagy az AUR oldalának jobb oldalán a “Package Actions” alatt található “Download snapshot” linkre kattintva, vagy terminálban:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/package_name.tar.gz
Megjegyzés: A pillanatfelvétel fájl tömörített, és ki kell bontani (lehetőleg egy AUR-építésekhez elkülönített könyvtárban): tar -xvf package_name.tar.gz

Beszerezni egy PGP nyilvános kulcsot, ha szükséges

Vizsgáljuk meg, hogy egy .sig vagy .asc formátumú aláírási fájl része-e a PKGBUILD forrástömbnek, ha igen, akkor szerezzük be a PKGBUILD validpgpkeys tömbben felsorolt nyilvános kulcsok egyikét. További információért lásd a makepkg#Signature checking című fejezetet.

A csomag elkészítése és telepítése

Váltás a könyvtárakból a csomag PKGBUILD-jét tartalmazó könyvtárba.

$ cd package_name
Figyelmeztetés: Gondosan ellenőrizze a PKGBUILD, az esetleges .install fájlokat és a csomag git tárolójában található egyéb fájlokat rosszindulatú vagy veszélyes parancsok szempontjából. Ha kétségeid vannak, ne építsd be a csomagot, és kérj tanácsot a fórumokon vagy a levelezési listán. Korábban is találtak már rosszindulatú kódot csomagokban.

Nézze meg az összes megadott fájl tartalmát. Például a pager less használatával a PKGBUILD megtekintéséhez tegye:

$ less PKGBUILD
Tipp: Ha egy csomagot frissít, érdemes megnézni a legutóbbi commit óta történt változásokat.

  • A legutóbbi git commit óta történt változások megtekintéséhez használhatja a git show.
  • A legutóbbi commit óta történt változások megtekintéséhez a vimdiff segítségével tegye a git difftool @~..@ vimdiff. A vimdiff előnye, hogy az egyes fájlok teljes tartalmát megtekintheted a változásokra vonatkozó mutatókkal együtt.

Készítsd el a csomagot. Miután kézzel megerősítette a fájlok tartalmát, futtassa a makepkg-ot normál felhasználóként:

$ makepkg -si
  • -s/--syncdeps az építés előtt automatikusan feloldja és telepíti a függőségeket a pacman segítségével. Ha a csomag más AUR csomagoktól függ, akkor azokat először kézzel kell telepítenie.
  • -i/--install telepíti a csomagot, ha sikeresen épült. Alternatívaként az épített csomag telepíthető a pacman -U package_name.pkg.tar.zst segítségével.

Más hasznos flagek:

  • -r/--rmdeps a build-időszaki függőségeket a build után eltávolítja, mivel már nincs rájuk szükség. Azonban előfordulhat, hogy ezeket a függőségeket a csomag következő frissítésekor újra kell telepíteni.
  • -c/--clean a build után kitakarítja az ideiglenes build-fájlokat, mivel ezekre már nincs szükség. Ezekre a fájlokra általában csak a build folyamat hibakeresése során van szükség.
Megjegyzés: A fenti példa csak egy rövid összefoglalója a build folyamatnak. Erősen ajánlott a makepkg és ABS cikkek elolvasása a további részletekért.

A csomagok frissítése

A csomag PKGBUILD-jét tartalmazó könyvtárban először a

$ git pull

paranccsal kell frissíteni a fájlokat és a módosításokat, majd a

$ makepkg -si

futtatásával frissíteni a csomagot.

Feedback

Kommentálás a csomagokhoz

Az AUR webes felülete rendelkezik egy kommentelési lehetőséggel, amely lehetővé teszi a felhasználók számára, hogy javaslatokat és visszajelzéseket adjanak a PKGBUILD közreműködőjének a fejlesztésekkel kapcsolatban.

Tipp: Kerülje a javítások vagy PKGBUILDok beillesztését a megjegyzés rovatba: ezek gyorsan elavulttá válnak, és csak feleslegesen sok helyet foglalnak. Ehelyett küldd el ezeket a fájlokat e-mailben a karbantartónak, vagy használj akár egy pastebint.

A Python-Markdown alapvető Markdown szintaxist biztosít a megjegyzések formázásához.

Megjegyzés:

  • Ez az implementáció alkalmanként eltér a hivatalos szintaxis szabályaitól.
  • A csomag Git-tárába történő hashokommitálás és a Flyspray jegyekre való hivatkozások automatikusan linkekké alakulnak.
  • A hosszú kommentek összecsukódnak és igény szerint kibonthatók.

A csomagokra való szavazás

Az egyik legegyszerűbb tevékenység minden Arch felhasználó számára az AUR böngészése és a kedvenc csomagokra való szavazás az online felület segítségével. Minden csomagot elfogadhat egy TU, hogy felvegye a közösségi tárolóba, és a szavazatok száma az egyik szempont ebben a folyamatban; mindenkinek érdeke, hogy szavazzon!

A csomagok böngészése közben regisztrálj az AUR weboldalán, hogy megkapd a “Szavazz erre a csomagra” opciót. A regisztráció után lehetőség van a parancssorból is szavazni az aurvoteAUR, aurvote-gitAUR vagy aur-auto-vote-gitAUR segítségével.

Változatlanul, ha beállítottad az ssh hitelesítést, akkor közvetlenül a parancssorból is szavazhatsz az ssh kulcsoddal. Ez azt jelenti, hogy nem kell elmentenie vagy beírnia az AUR jelszavát.

$ ssh [email protected] vote package_name

Korszerűtlen csomagok megjelölése

Először is, jelölje meg a csomagot elavultnak, feltüntetve annak részleteit, hogy miért elavult a csomag, lehetőleg a kiadási közleményre vagy az új kiadás tarballjára mutató linkekkel.

Meg kell próbálnia közvetlenül a karbantartót is elérni e-mailben. Ha két hét elteltével sem érkezik válasz a karbantartótól, akkor beadhat egy árvasági kérelmet. A részletekért lásd az AUR benyújtási irányelvek#Kérelmek című fejezetet.

Megjegyzés: A VCS csomagok nem számítanak elavultnak, ha a pkgver változik, és ebben az esetben nem kell megjelölni őket.

A csomagépítési folyamat hibakeresése

  1. Győződjön meg róla, hogy az építési környezete naprakész, frissítéssel, mielőtt bármit is építene.
  2. Győződjön meg róla, hogy telepítve van a base-devel csoport.
  3. Használja a -s opciót a makepkg-vel, hogy ellenőrizze és telepítse az összes szükséges függőséget a build folyamat elindítása előtt.
  4. Kipróbálja az alapértelmezett makepkg konfigurációt.
  5. A gyakori problémákról lásd Makepkg#Hibaelhárítás.

Ha problémája van egy csomag építésével, először olvassa el a PKGBUILD-jét és az AUR oldalán található megjegyzéseket.

Elképzelhető, hogy egy PKGBUILD mindenki számára hibás. Ha nem tudod magadtól kitalálni, jelezd a karbantartónak (pl. úgy, hogy az AUR oldal kommentjeiben közlöd a hibákat, amiket kapsz). Az AUR Issues, Discussion & PKGBUILD Requests fórumban is kérhetsz segítséget.

Az ok talán mégsem triviális. Az egyéni CFLAGS, LDFLAGS és MAKEFLAGS hibákat okozhat. A sajátos rendszerkonfiguráció okozta problémák elkerülése érdekében építsen csomagokat tiszta chrootban. Ha az építési folyamat tiszta chrootban is sikertelen, a probléma valószínűleg a PKGBUILD.

Lásd: Csomagok létrehozása#A csomagok épségének ellenőrzése a namcap használatáról. Ha szeretnéd, hogy egy PKGBUILD felülvizsgálatra kerüljön, küldd el az aur-general levelezési listán, hogy visszajelzést kapj a TU-k és az AUR-tagoktól, vagy a Csomagok létrehozása & módosítása fórumon. A Freenode-on a #archlinux-aur IRC csatornán is kérhetsz segítséget.

Pakettek beküldése

A felhasználók az Arch User Repository segítségével oszthatják meg a PKGBUILD-okat. A részletekért lásd az AUR benyújtási irányelveit.

Webfelület fordítása

Az AUR forrásfájában található i18n.txt-ben találsz információt az AUR webes felület fordításának elkészítéséről és karbantartásáról.

Kérdés

Milyen csomagok engedélyezettek az AUR-on?

Az AUR-on található csomagok csupán “build scriptek”, azaz a pacman számára binárisok készítésére szolgáló receptek. A legtöbb esetben minden megengedett, a hasznossági és terjedelmi irányelvek függvényében, amennyiben betartja a tartalom licencfeltételeit. Más esetekben, ahol meg van említve, hogy “nem linkelhetsz” letöltésekre, azaz olyan tartalmakra, amelyek nem terjeszthetők, csak magát a fájlnevet használhatod forrásként. Ez azt jelenti és megköveteli, hogy a felhasználók már a csomag összeállítása előtt rendelkezzenek a korlátozott forrással a build könyvtárban. Ha kétségeid vannak, kérdezz.

Hogyan szavazhatok a csomagokra az AUR-ban?

Lásd #Szavazás csomagokra.

Mi az a Trusted User / TU?

A Trusted User, röviden TU, egy olyan személy, akit az AUR és a közösségi adattár felügyeletére választottak. Ők azok, akik karbantartják a népszerű PKGBUILD-okat a közösségben, és összességében fenntartják az AUR-t.

Mi a különbség az Arch User Repository és a közösségi repository között?

Az Arch User Repositoryban tárolják a felhasználók által beküldött összes PKGBUILD-ot, amelyeket kézzel kell építeni a makepkg segítségével. Amikor a PKGBUILDok elegendő közösségi érdeklődést és egy TU támogatását kapják, átkerülnek a közösségi tárolóba (amelyet a TU-k tartanak fenn), ahol a bináris csomagok a pacman segítségével telepíthetők.

Az AUR-ban lévő Foo elavult; mit tegyek?

Lásd #A csomagok elavultként való megjelölése.

Közben megpróbálhatod magad frissíteni a csomagot a PKGBUILD helyi szerkesztésével. Néha a frissítések nem igényelnek változtatásokat a build- vagy csomagkészítési folyamatban, ilyenkor elegendő a pkgver vagy source tömb egyszerű frissítése.

Az AUR-ban lévő Foo nem fordítható le, amikor futtatom a makepkg-ot; mit tegyek?

Valószínűleg valami triviális dolgot hagysz ki, lásd #Debugging the package build process.

ERROR: Egy vagy több PGP aláírást nem sikerült ellenőrizni!; mit tegyek?

Nagy valószínűséggel nincs meg a letöltött fájlok ellenőrzéséhez szükséges nyilvános kulcs(ok) a személyes kulcstartójában. A részletekért lásd Makepkg#Aláírásellenőrzés.

Hogyan hozhatok létre egy PKGBUILD-ot?

Nézd meg az AUR benyújtási irányelvek#A benyújtás szabályai című részt, majd lásd a csomagok létrehozása című részt.

Van egy PKGBUILD-em, amit szeretnék benyújtani; valaki ellenőrizni tudná, hogy van-e benne hiba?

Több csatorna is rendelkezésre áll a csomagja felülvizsgálatra történő benyújtásához; lásd #A csomagkészítési folyamat hibakeresése.

Hogyan kerülhet egy PKGBUILD a közösségi tárolóba?

Általában legalább 10 szavazat szükséges ahhoz, hogy valami bekerüljön a közösségbe. Azonban ha egy TU támogatni akar egy csomagot, akkor az gyakran megtalálható az adattárban.

A szükséges minimális szavazatszám elérése nem az egyetlen követelmény, kell lennie egy TU-nak, aki hajlandó fenntartani a csomagot. A TU-k nem kötelesek egy csomagot a közösségi adattárba áthelyezni, még akkor sem, ha több ezer szavazata van.

Az, hogy egy nagyon népszerű csomag az AUR-ban marad, általában azért van, mert:

  • Az Arch Linuxnak már van egy másik verziója egy csomagból az adattárakban
  • A licenc tiltja az újraelosztást
  • A felhasználó által beküldött PKGBUILD-ok visszakeresésében segít. Az AUR-segédprogramok definíció szerint nem támogatottak.

Lásd még a közösségi repóba kerülő csomagokra vonatkozó szabályokat.

Hogyan gyorsíthatom fel az ismételt építési folyamatokat?

Lásd Makepkg#A fordítási idők javítása.

Mi a különbség a foo és a foo-git csomagok között?

Nagyon sok AUR csomag létezik “stabil” kiadási és “instabil” fejlesztési verzióban. A fejlesztési csomagok általában rendelkeznek egy utótaggal, amely a verziókezelő rendszert jelöli, és nem rendszeres használatra készülnek, de új funkciókat vagy hibajavításokat kínálhatnak. Mivel ezek a csomagok a makepkg futtatásakor csak a legújabb elérhető forrást töltik le, az AUR-ban lévő pkgver()-jük nem tükrözi az upstream változásokat. Hasonlóképpen, ezek a csomagok nem tudnak hitelesség-ellenőrzést végezni semmilyen VCS-forráson.

Lásd még: Rendszerkarbantartás#Elismert szoftvercsomagok használata.

Miért tűnt el a foo az AUR-ból?

Ez lehetséges, hogy a csomagot egy TU elfogadta, és most a közösségi adattárban van.

A csomagokat törölni lehet, ha nem feleltek meg a benyújtás szabályainak. A törlés okát lásd az aur-requests archívumban.

Megjegyzés: A törölt csomag git-repository-ja általában elérhető marad. A részletekért lásd az AUR benyújtási irányelvek#Kérelmek.

Ha a csomag korábban az AUR3-ban létezett, lehet, hogy nem került át az AUR4-be. Lásd az AUR3 csomagok #Git tárolóit, ahol ezek megmaradtak.

Hogyan tudhatom meg, hogy valamelyik telepített csomagom eltűnt-e az AUR-ból?

A legegyszerűbb módja a csomag AUR oldalának HTTP státuszának ellenőrzése:

$ comm -23 <(pacman -Qqm | sort) <(curl https://aur.archlinux.org/packages.gz | gzip -cd | sort)

Hogyan kaphatok listát az összes AUR csomagról?

  • A python3-aurAUR

See also

  • AUR Web Interface
  • AUR Mailing List
  • DeveloperWiki:AUR Cleanup Day

DeveloperWiki:AUR Cleanup Day

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.