Repozitář AUR (Arch User Repository) obsahuje softwarové balíčky operačního systému Arch Linux, které jsou dodávány komunitou uživatelů. Tyto balíčky nejsou zpravidla součástí oficiálních repozitářů Core, Extra ani Community a mohou obsahovat nestabilní a částečně nefunkční kód. Pokud ale takový software potřebujeme, jedná se o nejsnazší cestu, jak jej do systému nainstalovat.
Velká většina balíčků se bude překládat ze zdrojových kódů. Musíme brát v úvahu, že budeme muset nainstalovat nástroje pro vývoj a překlad těchto kódů. Tyto nástroje zaberou na pevném disku cca 300 MB. Pro ulehčení práce s repozitářem AUR nainstalujeme balíček Yaourt
a jeho závislosti.
Vytvoření uživatele
Z důvodu bezpečnosti a oddělení procesu překladu a vytváření nových balíčků z AUR nemůžeme pracovat pod privilegovaným uživatelem root. Přihlásíme se jiným lokálním uživatelským kontem nebo vytvoříme nové. Tím bude v našem případě builder
:
1 |
[root@localhost ~]# useradd --create-home --groups wheel builder |
Tento uživatel bude součástí skupiny wheel
, která slouží pro eskalaci oprávnění:
1 2 |
[root@localhost ~]# id -a builder uid=1000(builder) gid=1000(builder) groups=1000(builder),10(wheel) |
Nastavíme heslo pro nový účet:
1 2 3 4 |
[root@localhost ~]# passwd builder Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully |
Instalace vývojářských nástrojů
Nyní se dostáváme k instalaci základních vývojářských nástrojů:
1 2 3 4 5 6 7 8 9 10 |
[root@localhost ~]# pacman -S --needed base-devel :: There are 25 members in group base-devel: :: Repository core 1) autoconf 2) automake 3) binutils 4) bison 5) fakeroot 6) file 7) findutils 8) flex 9) gawk 10) gcc 11) gettext 12) grep 13) groff 14) gzip 15) libtool 16) m4 17) make 18) pacman 19) patch 20) pkg-config 21) sed 22) sudo 23) texinfo 24) util-linux 25) which Enter a selection (default=all): … … |
Po instalaci povolíme skupině wheel
možnost eskalace oprávnění. Tuto změnu provedeme v souboru /etc/sudoers
, změnou sekce ## Uncomment to allow members of group wheel to execute any command
, odkomentováním příslušného řádku:
1 |
%wheel ALL=(ALL) NOPASSWD: ALL |
V tomto případě nebude pro eskalaci oprávnění potřeba zadávat heslo uživatele.
Přihlásíme/přepneme se do prostředí uživatele builder
:
1 2 |
[root@localhost ~]# su - builder [builder@localhost ~]$ |
V domovském adresáři vytvoříme adresář work
a změníme svůj pracovní adresář:
1 2 3 |
[builder@localhost ~]$ mkdir ~/work [builder@localhost ~]$ cd ~/work [builder@localhost work]$ |
Instalace yaourt
Instalace závislostí pro yaourt
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[builder@localhost work]$ curl -o PKGBUILD "https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=package-query" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 730 100 730 0 0 2952 0 --:--:-- --:--:-- --:--:-- 2955 [builder@localhost work]$ makepkg -si ==> Making package: package-query 1.6.2-1 (Fri Jul 31 16:24:15 CEST 2015) ==> Checking runtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Packages (1) yajl-2.1.0-1 … … |
Instalace yaourt
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[builder@localhost work]$ curl -o PKGBUILD "https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=yaourt" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 928 100 928 0 0 6030 0 --:--:-- --:--:-- --:--:-- 6065 [builder@localhost work]$ makepkg -si ==> Making package: yaourt 1.6-1 (Fri Jul 31 16:25:26 CEST 2015) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Retrieving sources... -> Downloading yaourt-1.6.tar.gz... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 113k 100 113k 0 0 292k 0 --:--:-- --:--:-- --:--:-- 292k ==> Validating source files with md5sums... yaourt-1.6.tar.gz ... Passed ==> Extracting sources... -> Extracting yaourt-1.6.tar.gz with bsdtar ==> Removing existing $pkgdir/ directory... ==> Starting build()... GEN yaourt.sh … … |
Test yaourt
Pokud proběhlo sestavení a instalace bez problému, můžeme vyzkoušet, zda máme operační systém aktuální:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[builder@localhost work]$ yaourt -Syua --devel :: Synchronizing package databases... core is up to date extra is up to date community 2.7 MiB 586K/s 00:05 [#######################] 100% Foreign packages: \ 3 / 3 ==> Software upgrade (new version) : core/dbus 1.8.18-1 -> 1.8.20-1 core/libdbus 1.8.18-1 -> 1.8.20-1 core/libsystemd 222-1 -> 223-1 core/systemd 222-1 -> 223-1 core/systemd-sysvcompat 222-1 -> 223-1 extra/syslog-ng 3.6.2-1 -> 3.6.3-1 ==> Continue upgrade ? [Y/n] ==> [V]iew package detail [M]anually select packages ==> -------------------------------------------------- ==> ^C |
Příkazem yaourt -Syua
můžeme v budoucnu kontrolovat a instalovat softwarové balíčky ze všech repozitářů, včetně AUR. Standardní nástroj pacman
nebere repozitář AUR v úvahu.
Hint
Proces kompilace balíčků probíhá v adresáři, který je definován proměnnou prostředí TMPDIR
. Standardně je to v adresáři /tmp
, který bývá umístěn v operační paměti a může dosahovat až 50 % její velikosti (dle nastavení systému). V některých případech nám tato velikost nemusí vyhovovat, případně při kompilaci dochází k nebezpečnému vyčerpání operační paměti. Pokud se dostaneme do takové situace, změníme proměnnou TMPDIR
, nebo upravíme soubor /etc/yaourtrc
, a tento adresář nastavíme na adresář nacházející se na našem pevném disku.
Používání yaourt
Nepřeberné možnosti aplikace yaourt
jsou popsány na webu projektu.
Statistika nainstalovaných balíčků:
Update systému Arch Linux s předefinovanou proměnnou prostředí TMPDIR
: