AUR Felhasználói útmutató
Cél
Az Arch Linux Közösségi Tárolót (AUR - Arch Linux User-Community Repository) a felhasználók töltik meg tartalommal. Csomagleírásokat tartalmaz, melyek lehetővé teszik, hogy a csomagot forrásból lefordítsuk és telepítsük Pacmannel. Ez a dokumentum azt mutatja be, hogyan férhetünk hozzá az AUR-hez, és hogyan használhatjuk azt.
Hogyan használjuk az AUR-t
Csomagok telepítése az AUR-ből
Ha egy csomagot szeretnék az AUR-ből (vagyis a nem támogatott tárolóból) telepíteni, kövessük a következő lépéseket:
Példánkban egy képzeletbeli, "foo" nevű csomagot fogunk telepíteni.
- Először is győződjünk meg róla, hogy a szükséges eszközök telepítve vannak. Elég a "base-devel" metacsomagot telepíteni, hiszen ez tartlamazza a makepkg-t és azokat az eszközöket, amik a forrásból fordításhoz szükségesek.
pacman -Sy base-devel
- Ezután válasszunk egy megfelelő könyvtárat a fordításhoz. Ez bármelyik könyvtár lehet, ahol a csomagot el szeretnénk készíteni. Példánkban ezt most így nevezzük el:
~/builds
vagy ha az ABS-t (Arch Build Sytem) használjuk, akkor:
/var/abs/local
További információk az ABS wiki oldalán. A mi példánkban a ~/builds könyvtárat fogjuk használni.
- Keressük meg a csomagot az AUR-ben. Ezt legegyszerűbben a kereső segítségével teheted meg. Ezt az AUR oldalon a jobbra-fent található "packages" linkre kattintva érhetjük el. Olvassuk el a leírást, hogy meggyőződjük arról, biztos ez az a csomag, amire nekünk szükségünk van. Érdemes emellett megnézni, hogy mikor frissült utoljára, valamint jó, ha elolvassuk a kommentárokat is.
- Töltsük le a szükséges build fájlokat. A csomag információs oldalán a Tarball linkre kattintva tölthetjük le az állományt. Ezt mentsük el a build könyvtárunkba. A példánkban "foo.tar.gz" lesz a fájl neve.
- Tömörítsük ki a tarball-t. Lépjünk be a build könyvtárba, és tömörítsük a build fájlokat.
cd ~/builds
tar -xvzf foo.tar.gz
Így, ha minden jól ment, létre kell jöjjön egy "foo" nevű könyvtár.
- Fontos! Ellenőrizzük figyelmesen minden fájlt. Nézzük át a frissen létrejött könyvtárat, a PKGBUILD állományt és minden .install fájlt, hogy nem tartalmaznak-e veszélyesnek tűnő parancsot. Ha kétségeink vannak, ne telepítsük a csomagot, és kérjünk tanácsot a fórumban vagy a levelezőlistán.
cd foo
kedvenc szövegszerkesztőnkben alaposan ellenőrizzük a PKGBUILD állományt!
nézzünk át minden .install és hasonló fájlt!
- Fordítsuk le a csomagot. Futassuk a makepkg parancsot normál felhasználóként a build könyvtárban.
makepkg -s
Ez a sudo-t fogja használni a függőségek telepítéséhez. Ha nem szeretnénk sudo-zni, használjunk fakeroot-ot (lásd lejjebb), és ne adjuk meg a "-s" paramétert.
- Telepítsük a csomagot a pacman segítségével. A könyvtárunkban egy új tarball kellett, hogy létrejöjjön:
alkalmazás neve-verziószám-architektúra.pkg.tar.gz
Ezt a csomagot a pacman upgrade utasításával tehetjük fel.
pacman -U foo-0.1-i686.pkg.tar.gz
Megjegyzés: Ez csak egy tömör összefoglalása a fordítási folyamatnak. Az ABS oldalán részletes információk találhatók, és kezdő csomagolók számára különösen ajánlott.
A fakeroot használata
A fakeroot segítségével a felhasználó megkaphatja a csomag készítéséhez szükséged adminisztrátori jogosultságokat, miközben nem tud kárt tenni a rendszerben. Ha a fordítási folyamat a fordítói környezeten kívül akar csomagokat módosítani, a folyamat egy hibaüzenettel leáll - ez rendkívül hasznos, ha szeretnénk egy csomag minőségét/biztonságát/integritását ellenőrizni. Alapból a USE_FAKEROOT="y" sor megtalálható a /etc/makepkg.conf állományban, így hacsak mi magunk nem kapcsoltuk, alapból engedélyezve van.
Csomagok küldése az UNSUPPORTED-be
Miután bejelentkeztünk az AUR webes felületén, gzippelt tarball (tar.gz) formában tölthetünk fel egy könyvtárat, ami a csomag fordításához szükséges build állományokat tartalmazza. A könyvtárnak tartlamaznia kell egy PKGBUILD fájlt, valamint a .install fájlokat, patcheket, stb. - de nem tartalmazhat binárisokat. Példaként a /var/abs könyvtárat érdemes megnézni.
Ne feledjük, hogy gzippelt tarballt kell létrehozzunk - vagyis feltételezve, hogy egy "libfoo" nevű csomagot töltünk fel, akkot azt valahogy így kell létrehozzuk (figyeljünk a -zcvvf kapcsolóra a tar-nál!):
$ ls -a libfoo
. .. PKGBUILD libfoo.install
$ tar -zcvvf libfoo.tar.gz libfoo
a libfoo
a libfoo/PKGBUILD
a libfoo/libfoo.install
Ha csomagot küldünk, tartsuk be az alábbi szabályokat:
- Ellenőrizzük a [core], [extra], [testing] és [community] tárolókat. Ha ezekben a tárolókban már bármilyen formában megtalálható a csomag, ne küldjük be. Ha a csomag hibás, vagy hiányzik valamely szolgáltatás, jelentsük a hibát a rovarírtóknak.
- Nézzük meg az AUR-t, hogy megtalálható-e már benne a csomag. Ha már van karbantartója, a módosító javaslatainkra egy hozzászólásban felhívhatjuk a karbantartó figyelmét. Ha a csomagnak nincs karbantartója, mi magunk gondjainkba vehetjük, és elvégezhetjük a szükséges frissítést.
- Ellenőrizzük figyelmesen, hogy az általunk feltölteni szándékozott csomag jó-e. Ha csomagot szeretnél készíteni mindenképpen olvasd el és tartsd be az Arch Packaging Standards dokumentumban olvashatókat. Ez elengedhetetlen ahhoz, hogy az AUR gördülékenyen és sikeresen tudjon üzemelni. Gondolj arra, hogy ha mások idejét hibás PKGBUILD állományokkal rabolod, akkor nem fogsz sok tiszteletet és elismerést aratni.
- Azokat a csomagok, amelyek binárist tartalmaznak, vagy amelyek nagyon igénytelenül vannak elkészítve, figyelmeztetés nélkül törlik.
- Ha bizonytalan vagy egy csomaggal kapcsolatban, akkor küldd el a PKGBUILD állományt az AUR levelezési listára, vagy a hivatalos oldal AUR-rel kapcsolatos fórumtopicjába, hogy a többiek is vethessenek rá egy pillantást, és véleményt mondhassanak róla.
- Győződj meg arról, hogy a csomag hasznos. Akarja majd még valaki használni a csomagot? Vagy nagyon speciális? Ha úgy véled, egy-két embernél több használná, akkor érdemes beküldeni.
- Gyakorolj, mielőtt csomagokat küldenél. Előbb készíts néhány csomagot, hogy megismerd a folyamatot és csak aztán küldd be.
- Ha mondjuk egy package.tar.gz nevű csomagok küldesz be, benne egy "package" nevű állománnyal, a következő hibaüzenetet kapod: 'Could not change to directory /home/aur/unsupported/package/package'. A megoldás az, hogy a "package"-t átnevezed valami másra, mondjuk "package.rc"-re. Ha már felraktag a pkg könyvtárba, vissza tudod nevezni "package"-re.
Csomagok karbantartása az AUR-ben
- Figyelj a felhasználók hozzászólásaira és visszajelzéseire, és próbálj meg minden javítást és fejlesztést megtenni, amit csak lehet; fogd fel úgy, mint egy tanulási folyamatot!
- Ne feledkezz meg a csomagról, miután beküldted! Amíg egy csomag nem támogatott, addig a felhasználó dolga, hogy karban tartsa, kövesse a frissítéseket, és javítsa a PKGBUILD-et.
- Ha valamilyen okból már nem szeretnél egy csomagot tovább karban tartani, disown-old (vagyis add vissza) a csomagot az AUR webes felületén és küldj egy üzenetet az AUR levelezési listájára.
A felhasználó és az AUR
A felhasználók rendkívül fontos szerepet töltenek be az AUR életében. Támogatásuk, részvételük és közreműködésük nélkül az AUR nem tudná rendesen ellátni a feladatát. Egy AUR csomag életét végigkíséri a felhasználók együttműködése.
PKGBUILD-ek megosztása az UNSUPPORTED-ben
A felhasználók megoszthatják a PKGBUILD állományaikat az AUR UNSUPPORTED részében. Az UNSUPPORTED nem tartalmaz bináris csomagokat, de lehetővé teszi, hogy a felhasználók feltöltsék a PKGBUILD fájljaikat, amit mások letölthetnek. A kommentárok segítségével a felhasználók visszajelezhetnek, és javaslatokat tehetnek arra, hogy hogyan lehetne javítani a csomagon. Ezek a PKGBUILD-ek egyáltalán nem hivatalosak, nem lettek alaposan átnézve, ezért mindenki saját felelőségére használja őket! Egyelőre nincs hivatalos mechanizmus arra, hogy az UNSUPPORTED-ből csomagokat töltsünk le, de néhány nem hivatalos megoldás már létezik.
[community]
A [community] tároló a [core] és az [extra] tárolókat egészíti ki. A [community]-be azok a népszerű csomagok kerülnek át az UNSUPPORTED-ből, amit a megbízható felhasználók (Trusted Users) tartanak karban. A [community], ellentétben az UNSUPPORTED-del, bináris csomagokat tartalmaznak, amiket közvetlenül telepíthetünk a pacman csomagkezelővel, és a build állományaik elérhetők az ABS-en keresztül is. Egyes csomagok akár a [core] vagy az [extra] tárolóba is bekerülhetnek, ha a fejlesztők úgy ítélik meg, hogy fontosak disztribúció számára.
A felhasználók úgy érhetik el az AUR [community] tárolóját, ha hozzáadják vagy kikommentezik az alábbi sort a pacman.conf állományban (alapból ez engedélyezve van):
Include = /etc/pacman.d/mirrorlist
Ha a /etc/pacman.d/mirrorlist nem létezik, akkor hozzuk létre a következő tartalommal:
[community]
Server = ftp://ftp.archlinux.org/community/os/i686/
A felhasználók a [community] build állományaihoz a /etc/abs.conf állomány módosításával férhetnek hozzá. Egyszerűen vegyük ki a felkiáltójelet a community tároló elől (alapból ez nincs engedélyezve):
REPOS=(core extra community !unstable !testing)
Szavazás
A legegyszerűbb dolog minden Arch felhasználó számára, hogy miközben az AUR-t böngészik, szavaznak a kedvenc csomagjaikra az online felületen. Bármelyik csomagot átvehetik a megbízható felhasználók (TU - Trusted Users) a [community] tárolóba, és az egyik szempont a döntésnél a szavazatok száma - így mindenkinek érdeke, hogy szavazzon.
AUR-DMS (Letöltő és kezelő szkriptek)
Az AUR-DMS-ek listája
1. aurbuild (Python)
2. aur-install (bash)
3. aur-sync (Perl) - Minden AUR tarball letöltésére
4. aurscripts (bash):
1. aurcreate - tiszta csomagokat hoz létre az AUR-be feltöltéshez
2. aurdownload - csomagokat tölt le az AUR-ből, és kicsomagolja azokat
3. aurupdate - frissti a csomag verzióját (ha meg van adva) és az md5sum értéket
5. aurup (bash) - csomagot tölthetünk fel vele az AUR-be
6. aurball (bash) - Tarball-t hoz létre, amit feltölt az AUR-be (jobb, mint az autarchy).
7. autarchy (bash) - Tarball-t készíthetünk vele, ami tartalmaz minden fájlt, amire a PKGBUILD-nek szüksége van (jobb, mint az aurcreate)
8. autoaur (bash, függősége az aurscripts, minden csomagunkat frissíti, amit az AUR-ből töltöttünk le)
9. qpkg (Python, működik nem-AUR alkalmalmazásokkal is, már nem fejlesztik)
10. yaourt (bash, felület az srcpac-hoz AUR támogatással és sok mással)
Ezek mindegyike megtalálható az UNSUPPORTED-ben.