Arch Linux alapok

Arch Linux
Arch Linux

Ha komolyabb disztribúció váltást teszünk, akkor pár új dolgot is meg kell tanulni, meg kell szokni. Én egy Debian alapúról (MX Linux) tértem át egy Arch alapú (Arcolinux) terjesztésre. Ez kissé más elveket követ, és a csomagkezelése is más. Legtöbb ember a csomagkezelést grafikus megoldással végzi el, de én most a parancssoros, szerintem kényelmesebb és gyorsabb megoldást mutatom be.

Arch Linux rendszer frissítése

Az egyik leggyakoribb teendőnk Linux rendszerek alatt a rendszerfrissítés, programcsomag telepítés, programcsomag eltávolítás a rendszerből. Ez sajnos nincs egységesítve. Most nem arról beszélek, hogy a parancs neve más, hanem a kapcsolók mások. Így aki Debian vagy rpm alapú Linux disztribúcióról tért át, annak szokatlan lehet a paraméterezés. Gyakorlatilag a rendszer karbantartása, pontosabban a csomag telepítés, eltávolítás illetve rendszerfrissítés maximum fél tucat, azaz hat darab parancs, így nagy problémát a tanulás nem fog okozni. Ezeket érdemes megtanulni, felírni, a többit, az egyéb érdekességeket, lehetőségeket a későbbiek folyamán hozzá tanuljuk, ha szükség van rá.

Az Arch Linux első lépése

Az első lépés, ahogy az egyik videóban is írtam: elmagyarázzuk a csomagkezelő rendszernek, hogy hány darab szálon szeretnénk a telepítést illetve a csomagok fordítását elvégezni. Egyértelmű, hogy alapbeállítás esetek nagy részében nem jó nekünk, hiszen akinek több szál, illetve mag van a processzorában, annak kellemes ezeket 100%-ig kihasználni. Ezt a

/etc/makepkg.conf

fájlban tudjuk megtenni.

Ezt egy grafikus, vagy éppen parancssoros szövegszerkesztővel megnyitjuk. Ilyen lehet a

sudo nano /etc/makepkg.conf

majd megkeressük ezt a sort:

MAKEFLAGS="-j13"

és beírjuk a magok száma plusz egy értéket a j betű mögé. Ahogy látjátok, nekem 13 van beírva, ami azt jelzi, egy 12 szálas processzorral üzemel ez a gép.

Ezt a lépést mindenképp érdemes megtenni, hiszen nem mindegy, hogy egy processzormag vagy esetleg 12 szálon történik a fordítás. Gyakorlatilag így tizedére csökkent nálam a programok fordításának az ideje. Ez nem minden esetben gyorsít, hiszen vannak kész, előre lefordított csomagok. Ezek a jellemzőbbek. De ha AUR-ból telepítesz, akkor nagy esély van, hogy a forráskódot kapod meg, plusz egy előre elkészített parancsfájlt, ami a készítési módot szabályozza. Ezzel nem lesz dolgod. A telepítő parancs fogja neked automatikusan elkészíteni a gépeden a telepíthető csomagot.

Pár egyéb megoldást is szoktak javasolni, ezeket egy github oldalon olvastam:

Cseréljük le a  CFLAGS és CXXFLAGS értékeket -march=x86-64 -mtune=generic  bejegyzésről -march=native bejegyzésre.

Második lépés Arch Linuxon

Miután a fordítás lényegesen gyorsabb lett, ezután a csomagok tömörítése, "építését" érdemes kicsit meggyorsítani, azaz a fordítás után elkészíti számodra a rendszer automatikusan azt a csomagot amit tud telepíteni. Ismétlem, ezzel neked nem lesz semmi teendőd, ez automatikusan le fog futni. De jó lenne hogyha ez is gyorsabban történne meg! A csomagoló rendszernek is megmondjuk, bizony legyen szíves az összes szálat, magot használni! Ezt pedig ugyanebben a fájlban az alábbi sorban lehet megadni:

COMPRESSXZ=(xz -c -z - --threads=xx)

Az XX helyére a szálak száma kerül. Beírod azt az értéket, utána már gyorsabban fog elkészülni a csomag. Ezután valóban közel tizedére csökkent nálam az ilyen teendőkre felhasznált idő. Bár ez nyilvánvalóan attól függ, milyen a processzorod. Eléggé érdekes dolog, hogy nem automatikusan ismeri fel a magok számát! Kézzel kell megadni, ami nem nagy dolog, de kezdőnek ijesztő lehet egy rendszer fájlban turkálni! Ha nem tudod a megadandó szálak számát: nproc parancs megadja neked.

Használjunk kevésbé erős tömörítést:

COMPRESSXZ=(xz -c -z -2 - --threads=xx)

A -2 egy jobb megoldás, mint az alapértelmezett -6, a -0 pedig gyorsabb. Így a 0 és a -6 közt skálázhatod.

Nem kell félni: három értéket változtattunk meg. Ez azt jelzi számunkra, hogy már kezdünk professzionálisan, bátran hozzányúlni a dolgokhoz… Nem kell félni, csak oda kell figyelni! Természetesen ezután a fájlt le kell menteni, úgy, ahogy a kedvenc szövegszerkesztőben szokás. Próbálkozzunk meg olyan szövegszerkesztőt használni, amit ismerünk is! 🙂 Miután ezt a minimális adminisztratív tevékenységet megtettük, elindítjuk a „Szoftver telepítése/eltávolítása” programot, és ahogy a videóban bemutattam, jelöljük be az AUR-t, tehát a felhasználók által karbantartott csomagok összeállításának a helyét. Ezután kilépünk a grafikus felületből és megtanuljuk hogyan lehet terminálból villámgyorsan maximum féltucat paranccsal karbantartani a rendszerünket.

Arch Linux rendszer frissítése

Az első feladatunk a rendszer frissítése. A rendszer frissítése az alábbi paranccsal történik meg:

yay -Syu --noconfirm

ez a parancssor annyit jelent, hogy kérdés nélkül lefrissíti az adatbázist, majd kérdés nélkül felfrissíti az összes programot a legfrissebbre. Azaz érdemes ezt akkor használni, ha nem szeretnéd megnézni melyik programokat frissíti a rendszered. Ismétlem! Akkor érdemes használni hogyha nem szeretnéd egyesével ellenőrizni a frissítéseket! Azt, hogy melyik programot frissíti fel, és melyik verzióra, mennyit tölt le, vagy egyéb, ki fogja neked írni, de nem vár az engedélyedre.
Gyakorlatilag az emberek nagy része - legalábbis véleményem szerint - nem fogja egyesével végig tallózni egy esetleges nagyobb frissítésnél az összes programot a változás listából. Mi változott pontosan? Ezt keresgélni az interneten, esetleg van benne hiba, vagy bármi ilyesmi – sok esetben ez nem hozza meg a kívánt eredményt! Gyakorlatilag ez a leggyorsabb módja annak, hogy az Arch alapú Linuxodat felfrissítsd a lehető leges-leges-legfrissebb programverziókra.
Azt tudni kell, hogy az Arch alapú Linuxok - legalábbis a legtöbb - olyan, hogy azonnal a legfrissebb programverziókat adja neked. Ez azzal a veszéllyel jár ha abban van egy probléma, vagy kisebb-nagyobb buktató, ami elő szokott fordulni, akkor gondjaid lehetnek egy-egy programmal. Bár nem sokszor van ilyen, de akkor azt neked kell megoldani. Erre jellemzően villámgyorsan születnek megoldások. Az elmúlt negyedévben, négy hónapban gyakorlatilag nekem három darab megoldandó problémám volt, amit fél perc internetes keresés után egyértelműen meg tudtam oldani. A háromból egy olyan volt, ami komolyabb, azaz a frissítéseket nem tudta megtenni a rendszer emiatt (egy csomagfüggőség miatt) de a rendszer működött, azaz jellemzően nem olyan hibák fordulnak elő melyeknél a rendszered összecsuklik. Az elmúlt két, két és fél év alatt emlékeim szerint két-három komolyabb probléma volt ezen a téren. Azok is csak a felhasználók egy kisebb rétegét érintették. Azokra is megszületett hamar a megoldás! Így nem kell tartanod attól, hogy ha egy rolling rendszert használsz akkor naponta kell különböző konfigurációs fájlokba turkálni, kilométer hosszú parancsokat beírni. A rendszer stabil, a frissítések jellemzően probléma nélkül le futnak.

Ha a pacman-t szereted jobban, azzal is megteheted

sudo pacman -Syyu

Én az előző megoldást használom, bár a parancsot SOHA nem írtam még le a mai napig! Érthető okok miatt érdemes ezekhez a rendszerkarbantartó parancsokhoz egy alias-t létrehozni, ahogy az Arcolinux-ban már alapból ott is van. A yay komplettebben, azaz valóban az összes elérhető tárolóból, az AUR-ból is dolgozik. Így én azt használom.

alias upall="yay -Syu --noconfirm"

A bashrc-be, zshrc-be kell beírni az aliast, és akkor csak az upall-t írjuk be parancssorba, bekéri a jelszót és… ennyi. Gyorsabb.

A pacman és a yay paraméterei ezen a szinten megegyeznek, így nem jelent problémát egyik vagy másik használata sem. Ha bekapcsoltad az AUR-t, akkor a yay jobb választás - szerintem. Próbáld ki majd a kereséseknél az egyiket, és a másikat is, és meglátod a különbséget.

Adatbázis frissítése Arch Linuxon

A komplett frissítés után egy kicsit boncolgassuk a kérdést. Az adatbázis frissítéseket a külön le tudod hívni az alábbi paranccsal:

pacman -Sy
yay -Sy

én jellemzően ezt nem szoktam külön megtenni. Én az adatbázis frissítést és a programok, a rendszerszintű frissítését is egy lépésben végzem el. Ha valaki külön szeretné az adatbázist frissíteni, ezzel a paranccsal megteheti. Olyan esetekben érdekes, ha egy programot szeretnél feltelepíteni, és előtte az adatbázist a legfrissebb szintre hoznád. Én azt a szokást vettem fel, ha programot telepítek, előtte lefuttatom a rendszerfrissítést. Upall, és a legfrissebb rendszer legyen fenn, az adatbázis is a lehető legfrissebb legyen. Villámgyors a csomagkezelés, viszonylag gyors interneten, ez egy fél perc alatt lefut, majd az új programokat telepítem.

Program telepítése Arch Linuxon

A programok telepítése viszonylag egyszerű. Az alábbi paranccsal meg fogod tudni tenni:

pacman -S programneve
yay -S programneve

ez nem okozhat senkinek gondot. Pár kérdést feltesz, amit értelemszerűen megválaszolsz, majd elvégzi a munkát. A legtöbb esetben az alapértelmezett válaszok jók, de mindenképp olvasd el a kiírt szöveget, és dönts megfelelően. A csomag nevének vagy a csomagok keresésének az alábbi paranccsal tudsz eleget tenni. Ha van egy csomag, amit szeretnél megkeresi, akkor

pacman -Ss kulcsszó
yay -Ss kulcsszó

A „kulcsszó” keresése az elérhető csomagok listájában, a leírás részben is. Így megkapod azt a listát amiből kiválaszthatod pontosan azt, ami kell. Próbáld ki, hogy a spacefm kulcsszóra mennyi találat érkezik. Látni fogod, hogy egy rövidke leírást is kapsz.

pacman -Qs kulcsszó
yay -Qs kulcsszó

Point, mint az előbbi, de a telepített csomagok között keresgél. Bár általában úgy keresünk, hogy egy adott programot kiszemelünk az interneten, majd az adatbázisban megkeressük a pontos nevét és telepítjük, de ha egy-egy ilyen keresésben találunk valamit, ami tetszik, akkor nem kellene azonnal felrakni. Előbb tájékozódjunk az interneten, az AUR-ban a pontos leírásról. Főleg ha azt látjuk, mint az alábbi esetben:

aur/spacefm-git 1.0.6.r80.ge257d15-1 (+19 0.00%) (Orphaned)

Ez egy árva, azaz magára hagyott projektet jelez általában. Az árvasága nem a programra vonatkozik, hanem az AUR-ba felrakó, ott ezt karbantartó hagyta magára a gyerekét! A program attól még fejlesztés alatt lehet.

pacman -Si programnév
yay -Si programnév

Kicsit hosszabb lista, de ez is elég szűkös. Én jobban szeretek felmenni a program honlapjára, ha felhasználói programot telepítek, mindent elolvasni, és csak azután felrakni.

pacman -R programnév
yay -R programnév

A program sima törlése. Az -Rs eltávolítja a továbbiakban nem használt függőségeket is, ami hasznos lehet.

pacman -U programnév.tar.gz

A gépeden lévő, letöltött programcsomag telepítése. Pontos elérési utat meg kell adni, vagy abból a könyvtárból kell futtatni, amiben a csomag van. Maga a művelet nem jelenthet problémát. Én ilyenkor lefuttok egy víruskeresést is a csomagra. Bár egyértelműen előtte elolvasom az adott program oldalán leírtakat, és használom a google varázsos erejét a tájékozódásra, de mindenképp óvatosan járjunk el a leszedett csomagokkal! Viszonylag kicsi az esélye, hogy probléma lesz, de a kicsi az nem nulla! Csak biztos forrásból szedj le valamit!

pacman -Sc
yay -Sc

A csomaggyorsítótár kitisztítása, azaz a nem kellő, nem telepített csomagok archívumának törlése történik meg ilyenkor. Itt feltesz egypár kérdést, és csak azt töröltesd, ami biztosan nem kell. Ez nem a legnagyobb törlési parancs, van ennél mélyebb törlési lehetőséged is, de én kerülöm, hogy a telepített csomagok archívumát is leszedessem. Az interneten ellenjavallják a -Scc használatát.

Összefoglalva:

  • yay -Syu –noconfirm – rendszerfrissítést
  • yay -S programneve – telepítés
  • yay -Ss kulcsszó – keresés
  • yay - R(s) programneve – törlés
  • pacman -U programnév.tar.gz – helyi fájlból telepítés
  • yay -Sc – takarítás

Ezzel a hattal már a legtöbb alapvető feladatot ellátod, gyorsan és hatékonyan. Akár pacman, akár a yay leírását érdemes átfutni, mert sok egyebet is tudnak, a fenti feladatokat is lehetne finomítani. De most nem volt egyéb célom, csak annyi, hogy bemutassam a hasznos, és egyszerű módját a rendszer frissítésének, program feltelepítésnek, és letörlésnek az Arch alapú rendszereken.

A fentieket Arcolinux alatt teszteltem, 2020. januárjában.
Átnézve: 2023-08-28