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).
PKGBUILD
ok 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 PKGBUILD
a 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 aMAKEFLAGS
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 aCFLAGS
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 PKGBUILD
ok 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:
- 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).
- Ellenőrizzük, hogy a
PKGBUILD
és a kísérő fájlok nem rosszindulatúak vagy megbízhatatlanok. - 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.
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.
--needed
jelzőt, hogy a már meglévő csomagokat kihagyja ahelyett, hogy újratelepítené őket.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
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
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
- 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ő apacman -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.
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.
PKGBUILD
ok 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.
- 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.
pkgver
változik, és ebben az esetben nem kell megjelölni őket.A csomagépítési folyamat hibakeresése
- 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.
- Győződjön meg róla, hogy telepítve van a base-devel csoport.
- Használja a
-s
opciót amakepkg
-vel, hogy ellenőrizze és telepítse az összes szükséges függőséget a build folyamat elindítása előtt. - Kipróbálja az alapértelmezett makepkg konfigurációt.
- 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 PKGBUILD
ok 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.
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