Uživatelský repozitář Arch

Uživatelský repozitář Arch (AUR) je komunitní repozitář pro uživatele Arch. Obsahuje popisy balíčků (PKGBUILD), které umožňují zkompilovat balíček ze zdrojových kódů pomocí makepkg a poté jej nainstalovat pomocí pacmanu. AUR byl vytvořen s cílem organizovat a sdílet nové balíčky od komunity a pomoci urychlit zařazení populárních balíčků do komunitního repozitáře. Tento dokument vysvětluje, jak mohou uživatelé k AUR přistupovat a využívat jej.

Velké množství nových balíčků, které se dostanou do oficiálních repozitářů, začíná v AUR. V AUR mohou uživatelé přispívat svými vlastními sestaveními balíčků (PKGBUILD a souvisejícími soubory). Komunita AUR má možnost hlasovat pro balíčky v AUR. Pokud se balíček stane dostatečně populárním – za předpokladu, že má kompatibilní licenci a dobrou balicí techniku – může být zařazen do komunitního repozitáře (přímo přístupného pomocí pacmanu nebo abs).

Varování: Balíčky AUR jsou obsahem vytvořeným uživateli. Tyto PKGBUILD jsou zcela neoficiální a nebyly důkladně prověřeny. Jakékoli použití poskytnutých souborů je na vlastní nebezpečí.

Začínáme

Uživatelé mohou vyhledávat a stahovat PKGBUILDy z webového rozhraní AUR. Tyto PKGBUILDsoubory lze sestavit do instalovatelných balíčků pomocí makepkg a poté nainstalovat pomocí pacmanu.

  • Ujistěte se, že je skupina balíčků base-devel nainstalována v plném rozsahu (pacman -S --needed base-devel).
  • Přečtěte si #FAQ, kde najdete odpovědi na nejčastější otázky.
  • Před sestavováním balíčků z AUR můžete upravit /etc/makepkg.confoptimalizaci procesu sestavování pro váš systém. Výrazného zlepšení časů sestavování balíčků lze dosáhnout na systémech s vícejádrovými procesory úpravou proměnné MAKEFLAGS, použitím více jader pro kompresi nebo použitím jiného kompresního algoritmu. Uživatelé mohou také povolit hardwarově specifické optimalizace překladače pomocí proměnné CFLAGS. Další informace naleznete v části makepkg#Tipy a triky.

S AUR je možné komunikovat také prostřednictvím SSH: pro seznam dostupných příkazů zadejte ssh [email protected] help.

Historie

Na začátku existovala ftp://ftp.archlinux.org/incoming a lidé přispívali tak, že na server jednoduše nahráli PKGBUILD, potřebné doplňkové soubory a samotný sestavený balíček. Balíček a související soubory tam zůstaly, dokud si programu nevšiml správce balíčků a nepřijal ho.

Poté se zrodily důvěryhodné uživatelské repozitáře. Určitým jednotlivcům v komunitě bylo povoleno hostovat vlastní repozitáře, které mohl používat kdokoli. Na tomto základě se AUR rozšířil s cílem učinit jej pružnějším i použitelnějším. Ve skutečnosti jsou správci AUR stále označováni jako TU (Trusted Users).

Mezi lety 2015-06-08 a 2015-08-08 přešel AUR z verze 3.5.1 na 4.0.0 a zavedl používání repozitářů Git pro publikování PKGBUILDstávajících balíčků, pokud je jejich správci ručně nepřevedli do nové infrastruktury, se přestalo používat.

Repozitáře Git pro balíčky AUR3

Archiv AUR na GitHubu obsahuje repozitář pro každý balíček, který byl v době přechodu v AUR 3. Alternativně existuje repozitář aur3-mirror, který poskytuje totéž.

Instalace a aktualizace balíčků

Instalace balíčků z AUR je poměrně jednoduchý proces. V podstatě:

  1. Získejte soubory pro sestavení, včetně PKGBUILD a případně dalších potřebných souborů, jako jsou jednotky systemd a záplaty (často se nejedná o skutečný kód).
  2. Ověřte, že PKGBUILD a doprovodné soubory nejsou škodlivé nebo nedůvěryhodné.
  3. Spustěte makepkg -si v adresáři, kde jsou soubory uloženy. Tím se stáhne kód, pomocí programu pacman se vyřeší závislosti, zkompiluje se, zabalí a nainstaluje.
Poznámka: AUR není podporován, takže za aktualizaci všech nainstalovaných balíčků jste zodpovědní vy, nikoli program pacman. Pokud budou aktualizovány balíčky v oficiálních repozitářích, budete muset znovu vytvořit všechny balíčky AUR, které na těchto knihovnách závisí.

Předpoklady

Nejprve zajistěte instalaci potřebných nástrojů nainstalováním celé skupiny base-devel, která obsahuje make a další nástroje potřebné pro kompilaci ze zdrojových kódů.

Tip:
Poznámka: Balíčky v AUR předpokládají, že skupina base-devel je nainstalována, tj. neuvádějí její členy výslovně jako závislosti pro sestavení.

Pak vyberte vhodný adresář pro sestavení. Adresář pro sestavení je jednoduše adresář, kde bude balíček vytvořen nebo „sestaven“, a může to být libovolný adresář. V příkladech v následujících částech bude jako adresář pro sestavení použit adresář ~/builds.

Získat soubory pro sestavení

Umístit balíček v AUR. To se provádí pomocí vyhledávacího pole v horní části domovské stránky AUR. Kliknutím na název aplikace v seznamu pro vyhledávání se zobrazí informační stránka o balíčku. Přečtěte si popis, abyste se ujistili, že se jedná o požadovaný balíček, poznamenejte si, kdy byl balíček naposledy aktualizován, a přečtěte si případné komentáře.

Existuje několik způsobů, jak získat soubory pro sestavení balíčku:

  • Klonujte jeho repozitář git, označený jako „Git Clone URL“ v poli „Package Details“ na stránce AUR. Jedná se o preferovanou metodu, jejíž výhodou je, že můžete snadno získat aktualizace balíčku prostřednictvím git pull.
$ git clone https://aur.archlinux.org/package_name.git

  • Stáhněte si snímek buď kliknutím na odkaz „Stáhnout snímek“ v části „Akce balíčku“ na pravé straně jeho stránky AUR, nebo v terminálu:
$ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/package_name.tar.gz
Poznámka: Soubor se snímkem je komprimovaný a musí být rozbalen (nejlépe v adresáři vyhrazeném pro sestavení AUR): tar -xvf package_name.tar.gz

V případě potřeby získejte veřejný klíč PGP

Zkontrolujte, zda je součástí zdrojového pole PKGBUILD soubor s podpisem ve tvaru .sig nebo .asc, a pokud ano, získejte jeden z veřejných klíčů uvedených v poli PKGBUILD validpgpkeys. Další informace naleznete v části makepkg#Kontrola podpisu.

Sestavte a nainstalujte balíček

Změňte adresáře na adresář obsahující PKGBUILD balíčku.

$ cd package_name
Varování: Pečlivě zkontrolujte PKGBUILD, všechny soubory .install a všechny ostatní soubory v úložišti git balíčku, zda neobsahují škodlivé nebo nebezpečné příkazy. V případě pochybností balíček nesestavujte a požádejte o radu na fóru nebo v poštovní konferenci. Škodlivý kód byl v balíčcích nalezen již dříve.

Prohlédněte si obsah všech poskytnutých souborů. Chcete-li například pomocí pageru less zobrazit PKGBUILD, proveďte:

$ less PKGBUILD
Tip: Pokud aktualizujete balíček, můžete se podívat na změny od poslední revize.

  • Pro zobrazení změn od poslední revize git můžete použít git show.
  • Pro zobrazení změn od poslední revize pomocí vimdiff proveďte git difftool @~..@ vimdiff. Výhodou vimdiff je, že si zobrazíte celý obsah každého souboru spolu s ukazateli toho, co se změnilo.

Vytvořte balíček. Po ručním potvrzení obsahu souborů spusťte makepkg jako běžný uživatel:

$ makepkg -si
  • -s/--syncdeps před sestavením automaticky vyřeší a nainstaluje všechny závislosti pomocí pacman. Pokud balíček závisí na jiných balíčcích AUR, musíte je nejprve nainstalovat ručně.
  • -i/--install nainstaluje balíček, pokud je úspěšně sestaven. Alternativně lze sestavený balíček nainstalovat pomocí pacman -U package_name.pkg.tar.zst.

Další užitečné příznaky jsou

  • -r/--rmdeps po sestavení odstraní závislosti v době sestavení, protože již nejsou potřeba. Tyto závislosti však může být nutné při příští aktualizaci balíčku znovu nainstalovat.
  • -c/--clean po sestavení vyčistí dočasné soubory sestavení, protože již nejsou potřeba. Tyto soubory jsou obvykle potřeba pouze při ladění procesu sestavování.
Poznámka: Výše uvedený příklad je pouze stručným shrnutím procesu sestavování. Důrazně doporučujeme přečíst si články makepkg a ABS, kde najdete další podrobnosti.

Aktualizace balíčků

V adresáři obsahujícím PKGBUILD balíčku musíte nejprve aktualizovat soubory a změny pomocí příkazu

$ git pull

a poté spustit příkaz

$ makepkg -si

pro aktualizaci balíčku.

Zpětná vazba

Komentování balíčků

Ve webovém rozhraní AUR je k dispozici funkce komentářů, která uživatelům umožňuje poskytovat návrhy a zpětnou vazbu na vylepšení přispěvatele PKGBUILD.

Tip: Vyvarujte se vkládání záplat nebo PKGBUILD do sekce komentářů: rychle zastarávají a nakonec jen zbytečně zabírají spoustu místa. Místo toho pošlete tyto soubory e-mailem správci nebo dokonce použijte pastebin.

Python-Markdown poskytuje základní syntaxi Markdown pro formátování komentářů.

Poznámka:

  • Tato implementace má občasné rozdíly oproti oficiálním pravidlům syntaxe.
  • Odeslání hashe do repozitáře Git balíčku a odkazy na tickety Flyspray se automaticky převedou na odkazy.
  • Dlouhé komentáře jsou sbaleny a lze je na požádání rozbalit.

Hlasování pro balíčky

Jednou z nejjednodušších činností pro všechny uživatele Archu je procházení AUR a hlasování pro své oblíbené balíčky pomocí online rozhraní. Všechny balíčky mohou být přijaty TU pro zařazení do komunitního repozitáře a počet hlasů je jedním z hledisek tohoto procesu; je v zájmu každého hlasovat!

Přihlaste se na webu AUR, abyste při procházení balíčků získali možnost „Hlasovat pro tento balíček“. Po přihlášení je také možné hlasovat z příkazového řádku pomocí aurvoteAUR, aurvote-gitAUR nebo aur-auto-vote-gitAUR.

Případně, pokud máte nastavenou ssh autentizaci, můžete hlasovat přímo z příkazového řádku pomocí svého ssh klíče. To znamená, že nebudete muset ukládat ani zadávat heslo do AUR.

$ ssh [email protected] vote package_name

Označování zastaralých balíčků

Nejprve byste měli balíček označit jako zastaralý s uvedením podrobností o tom, proč je balíček zastaralý, nejlépe včetně odkazů na oznámení o vydání nebo tarball nové verze.

Měli byste se také pokusit kontaktovat správce přímo e-mailem. Pokud po dvou týdnech nedostanete od správce žádnou odpověď, můžete podat žádost o osiřelé místo. Podrobnosti naleznete v pokynech pro podávání žádostí AUR#Žádosti.

Poznámka: Balíčky VCS nejsou při změně pkgver považovány za zastaralé a v tomto případě nemají být označeny.

Odstraňování procesu sestavování balíčků

  1. Před sestavováním čehokoli se ujistěte, že je vaše sestavovací prostředí aktuální, a to tak, že jej aktualizujete.
  2. Ujistěte se, že máte nainstalovanou skupinu base-devel.
  3. Použijte volbu -s s makepkg, abyste zkontrolovali a nainstalovali všechny potřebné závislosti před zahájením procesu sestavování.
  4. Zkuste výchozí konfiguraci makepkg.
  5. Podívejte se na Makepkg#Řešení běžných problémů.

Pokud máte potíže se sestavením balíčku, přečtěte si nejprve jeho PKGBUILD a komentáře na jeho stránce AUR.

Je možné, že PKGBUILDje pro všechny nefunkční. Pokud na to nemůžete přijít sami, nahlaste to správci (např. zveřejněním chyb, které dostáváte, v komentářích na stránce AUR). Pomoc můžete také hledat ve fóru Problémy AUR, diskuse & Požadavky PKGBUILD.

Důvod nakonec nemusí být triviální. Vlastní CFLAGS, LDFLAGS a MAKEFLAGS mohou způsobovat selhání. Chcete-li se vyhnout problémům způsobeným konkrétní konfigurací systému, sestavujte balíčky v čistém chrootu. Pokud proces sestavení v čistém chrootu přesto selže, problém je pravděpodobně v PKGBUILD.

Podívejte se na Vytváření balíčků#Kontrola správnosti balíčků o použití namcap. Pokud chcete nechat PKGBUILD zkontrolovat, napište to do poštovní konference aur-general, abyste získali zpětnou vazbu od TU a ostatních členů AUR, nebo do fóra Vytváření & Úprava balíčků. Pomoc můžete také hledat v IRC kanálu #archlinux-aur na Freenode.

Předkládání balíčků

Uživatelé mohou sdílet PKGBUILDy pomocí uživatelského úložiště Arch. Podrobnosti naleznete v pokynech pro odesílání do AUR.

Překlad webového rozhraní

Podívejte se do souboru i18n.txt ve zdrojovém stromu AUR, kde naleznete informace o vytváření a udržování překladu webového rozhraní AUR.

Otázka

Jaké balíčky jsou v AUR povoleny?

Balíčky na AUR jsou pouze „sestavovací skripty“, tj. recepty na sestavení binárních souborů pro pacman. Ve většině případů je povoleno vše, co podléhá zásadám užitečnosti a rozsahu, pokud dodržujete licenční podmínky obsahu. V ostatních případech, kde je uvedeno, že „nesmíte odkazovat“ na soubory ke stažení, tj. obsah, který není redistribuovatelný, můžete jako zdroj použít pouze samotný název souboru. To znamená a vyžaduje, aby uživatelé měli omezený zdrojový kód v adresáři pro sestavení již před sestavením balíčku. V případě pochybností se zeptejte.

Jak mohu hlasovat pro balíčky v AUR?

Viz #Hlasování pro balíčky.

Co je to důvěryhodný uživatel / TU?

Důvěryhodný uživatel, zkráceně TU, je osoba, která je vybrána pro dohled nad AUR a komunitním repozitářem. Jsou to ti, kteří udržují populární PKGBUILDy v komunitě a celkově udržují AUR v chodu.

Jaký je rozdíl mezi Arch User Repository a komunitním repozitářem?

Uživatelský repozitář Arch je místo, kde jsou uloženy všechny PKGBUILDy, které odesílají uživatelé a které musí být sestaveny ručně pomocí makepkg. Když PKGBUILDse setkají s dostatečným zájmem komunity a podporou TU, jsou přesunuty do komunitního repozitáře (spravovaného TU), kde lze binární balíčky instalovat pomocí pacmanu.

Foo v AUR je zastaralý; co mám dělat?

Podívejte se na #Označování zastaralých balíčků.

Můžete mezitím zkusit aktualizovat balíček sami lokální úpravou PKGBUILD. Někdy aktualizace nevyžadují změny v procesu sestavování nebo tvorby balíčků, v takovém případě stačí pouze aktualizovat pole pkgver nebo source.

Foo v AUR se při spuštění makepkg nezkompiluje; co mám dělat?

Pravděpodobně vám chybí něco triviálního, viz #Debugging the package build process.

ERROR: Jeden nebo více podpisů PGP se nepodařilo ověřit!; co mám dělat?

S největší pravděpodobností nemáte ve svém osobním svazku klíčů požadovaný(é) veřejný(é) klíč(e) pro ověření stažených souborů. Podrobnosti najdete v části Makepkg#Ověřování podpisů.

Jak vytvořím PKGBUILD?

Podívejte se do pokynů pro odesílání v AUR#Pravidla odesílání, pak viz Vytváření balíčků.

Mám PKGBUILD, který bych chtěl odeslat; může ho někdo zkontrolovat, zda neobsahuje nějaké chyby?

K dispozici je několik kanálů pro odeslání balíčku ke kontrole; viz část #Proces sestavování balíčku.

Jak dostat PKGBUILD do komunitního úložiště?

Obvykle je potřeba alespoň 10 hlasů, aby se něco přesunulo do komunity. Pokud však TU chce balíček podporovat, často se v repozitáři najde.

Dosažení požadovaného minima hlasů není jedinou podmínkou, musí existovat TU, který je ochoten balíček udržovat. TU nejsou povinny přesunout balíček do komunitního repozitáře, i když má tisíce hlasů.

Obvykle když velmi populární balíček zůstává v AUR, je to proto, že:

  • Arch Linux již má v repozitářích jinou verzi balíčku
  • Jeho licence zakazuje redistribuci
  • Pomáhá získávat PKGBUILDy zaslané uživateli. Pomocníci AUR nejsou z definice podporováni.

Podívejte se také na Pravidla pro balíčky vstupující do komunitního repozitáře.

Jak mohu urychlit opakované procesy sestavování?

Viz Makepkg#Zlepšení časů kompilace.

Jaký je rozdíl mezi balíčky foo a foo-git?

Mnoho balíčků AUR se dodává ve verzích „stable“ pro vydání a „unstable“ pro vývoj. Vývojové balíčky mají obvykle příponu označující systém řízení verzí a nejsou určeny k běžnému používání, ale mohou nabízet nové funkce nebo opravy chyb. Protože tyto balíčky při spuštění makepkg stahují pouze nejnovější dostupné zdrojové kódy, jejich pkgver() v AUR neodráží změny v upstreamu. Stejně tak tyto balíčky nemohou provádět kontrolní součet pravosti žádného zdroje VCS.

Viz také Údržba systému#Použití ověřených softwarových balíčků.

Proč foo zmizelo z AUR?

Je možné, že balíček byl přijat TU a nyní je v komunitním repozitáři.

Balíčky mohou být smazány, pokud nesplňovaly pravidla pro předkládání. Důvod smazání najdete v archivu aur-requests.

Poznámka: Repozitář git pro smazaný balíček obvykle zůstává k dispozici. Podrobnosti viz AUR submission guidelines#Requests.

Pokud balíček existoval v AUR3, nemusel být převeden do AUR4. Podívejte se na repozitáře #Git pro balíčky AUR3, kde jsou zachovány.

Jak zjistím, zda některý z mých nainstalovaných balíčků zmizel z AUR?

Nejjednodušší způsob je zkontrolovat stav HTTP na stránce AUR balíčku:

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

Jak mohu získat seznam všech balíčků AUR?

  • Pomocí aurpkglist z python3-aurAUR

Viz také

  • Webové rozhraní AUR
  • AUR Mailing List
  • DeveloperWiki:AUR Cleanup Day

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.