Debian csomagok Arch alatt?

Arch Linux
Arch Linux

Debian csomagok Arch Linux alatt? Az első pillanatban elég fura gondolat, hiszen nem egyeznek a csomagkezelők. A probléma ennek ellenére valós, és sokan napi szinten használják ezt.
Mi az Arch Linux előnye? Az egyik nagy előny az AUR. Így nem csak a hivatalos tárolókból, hanem egy közösségi fenntartású tárolóból is telepíthetünk csomagokat. Plusz teljesen támogatja a flatpak, appimage és a snap csomagokat is. Így nem lesz gond jó eséllyel a kívánt csomag, program beszerzésével.

Mi a hátránya az Arch Linuxnak?

De van egy hátránya is. Ha felmegyünk egy (a tárolóban nem szereplő) program oldalára, vagy a github oldalára akkor szembesülünk a problémával: bizony sok esetben csak deb, esetleg rpm csomag van. Akinek Arvch csomag kellene, annak ez nem kellemes élmény. Bár sok esetben az AUR-ban felhasználótársaink jóvoltából megtaláljuk a keresett anyagot, de van amikor nem. Ilyenkor két utat választhatunk. Vagy a legtöbb oldalon közzétett forráskódot lefordítjuk, vagy a már kész Debian csomagot próbáljuk adaptálni az Arch rendszerbe.
Sok AUR csomag is ezt a metódust követi. Ennek ellenére érdemes tudni: ez bizony nem túl jó megoldás. Lehetnek problémák és lehetnek komolyabb megoldandó feladatok is. Ha a kívánt program kiváltható mással, akkor érdemes azt a programot elfelejteni, aminek a készítője volt olyan hanyag, hogy nem adott natív csomagot.

Ami fontos tudni!

Bármelyik egyéb megoldás jobb lehet, mint egy deb csomaggal való próbálkozás. Így ha van AUR csomag, akkor azt használjuk. Ott vélhetőleg nálam hozzáértőbb készíti el az Arch telepítésre alkalmas csomagot, így kisebb lesz a kockázat.
Ezzel kapcsolatos téma a „régebbi verziók vannak csak az AUR-ban” problémakör. Ez előfordulhat, hiszen ha valaki elkészítette régebben a régi verzióhoz a csomagot, de későbbiekben már nem tartotta karban, akkor fennáll majd ez a gond. Ez csak látszólag gond, mert z AUR csomag letöltésével (nem telepítésével!) megkapjuk azt a szkriptet, leírást is amivel az eredeti készítő dolgozott. Ebbe mindenképp érdemes lesz belenézni: mit és hogyan csinál, mit kellett még telepíteni stb. Ez a szkript felel az Arch csomag elkészítéséért, így jó támpont lehet.

A deb csomagot elvileg két megoldással lehet integrálni, de ezek közt van egy nagy eltérés. Az elsőnek bemutatott megoldásnál egy viszonylag intelligens program alakítja át a csomagot telepíthető Arch csomaggá. Ez kezeli valamilyen szinten a függőségeket, de a másodiknak bemutatott megoldás már nem. Így ha bármi probléma lépne fel mindig gyanakodjunk a nem megfelelően kezelt függőségekre. Azaz a Debian csomag függőségeit meg kell nézni és azt is, hogy a rendszerünkben a kívánt fájlok rendelkezésre állnak, vagy nem. Ami nem is olyan egyszerű, mert a nevekkel szeretnek kavarni, és nem feltétlen azonos néven találunk meg egy-egy függőségét elvárt csomagot.

Debtap csomag átalakító

Maga a debtap az AUR-ban elérhető, de mindenképp érdemes a github oldalra is ellátogatni: https://github.com/helixarch/debtap Itt pár hasznos kérdésre választ kaphatsz.

Miután a debtap-ot telepítetted a sudo debtap -u parancsot le kell futtatni. Ez a debtap saját adatbázisát frissíti. Ha nem teszed meg, nem fog működni!

Ez egy olyan program, amely „szétszed” egy Debian-csomagot, és olyan Arch csomagot készít belőle, amelyet a csomagkezelő „megért”. Így már telepíteni is tudjuk a kívánt csomagot.

Figyelmeztetés: Ezt a módszert saját belátásod szerint használd. A telepített csomag működése leállhat, ha a függőségeknél az upstream csomagkarbantartói olyan frissítéseket kapnak, amelyek eltávolítják a az adott szolgáltatásokat vagy funkciókat. Ez nem mindig történik meg, de tudnod kell, hogy ez a módszer nem mindig működik! Itt nem fog senki figyelni arra, hogy a program működjön, ha valamilyen függősége frissül.
A lépesek nagyon egyszerűen követhetőek, a legtöbb esetben nem kell semmi extra dolgot tenned.
Logikusan az első lépés, hogy letöltöd a kinézett Debian csomagot és egy külön könyvtárba bemásolod. Majd a könyvtárban kiadod a
debtap packagetoconvert.deb
parancsot.

A konvertálás elindul, közben párszor feltesz kérdéseket, amiket most figyelmen kívül hagyunk, és az Enterrel lépünk tovább.
Nem kell meglepődni, mert ez elég lassú folyamat lesz, egy szálon fut, így hiába van sok magod a processzorban, nem lesz gyorsabb. Ami fontos, bár nem sok helyen jelezték, de tapasztalat: nem szakítjuk meg a konvertálást. Ha mégis, akkor a könyvtár összes állományát törölni érdemes, kivéve az eredeti deb csomagot. Majd újra kezdeni.
Amikor készen van, kapunk egy kész – és remélhetőleg hiba nélküli – Arch telepítésre alkalmas csomagot. Ezt már a megszokott mód a sudo pacman -U [ csomagnév ] paranccsal installálni tudjuk.

Manuális telepítés

Ez már kockázatosabb dolog, és nagyobb odafigyelést kíván. Maga az eljárás azon alapul, hogy a Linux rendszerek nagyjából egyforma fájlrendszert használnak, ha kézzel minden fájlt, ami kell bemásolunk a programnak, akkor az lehet, hogy működik. Itt sok a lehet, és az esetlegesség! Kisebb programoknál, amiknél pár fájl van és még véletlenül sem érinti az alaprendszert ez működőképes lehet. De komolyabb, a rendszert érintő dolgoknál már nem! Ennek tudatában kell dolgozni.
Bár nem a legelegánsabb megoldás, de amikor nincs mód egy .deb fájl konvertálására debtap segítségével vagy AUR pkgbuild-del történő fordítására, a legjobb módszer magának a Debian-csomagnak a kibontása, és a fájlok elhelyezése a megfelelő helyre. Régebben, amikor sokkal egységesebb rendszert használtak a disztribútorok, ez nagyon jó módszer volt.

Bár ez sokkal unalmasabb lehet, sokkal platformfüggetlenebb megoldás. Ami azt jelenti, hogy ezt a módszert sok más disztribúcióban is használhatjuk, például a Void Linuxban, a Fedorában és az openSUSE-ban.
A Debian csomagok archívumok, amelyekben binárisok vannak, így nincs szükség fordításra. Azaz negyon kényelmes lehet ezek berakása a megfelelő helyre, hiszen elvileg ezek futtatható állományok, nem forráskódok.
Bár parancssorban is megoldható, de most a kényelem kedvéért használhatunk grafikus fájlkezelőt is.

Teszteljük le

A példa a Ranger lesz, ami alapvetően elérhető Arch csomagban is, így összehasonlíthatom a működését. Itt kell kitérni egy nagyon fontos dologra. Érdemes egy teszt telepítésben kipróbálni a módszert, nem az éles, mindennapi használatra, munkára szánt telepítésben. Így megszerezhető a gyakorlat, és kipróbálható a tényleges működés.

A ranger_1.9.3-3_all.deb kicsomagolása, kitömörítése után két újabb tömörítvényt kapunk. Az egyik a data.tar, amit szintén ki kell csomagolni. A másik a control.tar most nem szükséges számunkra. A data.tar kér könyvtárat tartalmaz, az etc és a usr. Ezek után már nincs más feladatunk, be kell másolni a rendszerünkbe a két könyvtárat. Az usr a főkönyvtárunk, aza a gyökér könyvtár usr könyvtárnak felel meg, így simán (emelt jog kell!) ezt rámásoljuk. Ilyenkor a megfelelő könyvtárszerkezet bemásolódik a /usr könyvtárba. Az etc hasonló mód másolandó. Így majdnem olyan eredményt kaptunk, mintha telepítettünk volna egy csomagot. A megfelelő fájl a megfelelő helyre került.
Ami eltérés lesz az a postinstall műveletek, amikre nincs jó megoldás automatizálni. Van a control csomagban egy postinstall fájl, amibe érdemes lesz belenézni, hogy mit is tenne a Debian telepítés.

A telepítés előtt – ahogy már erről volt szó – a Debian csomag oldalán meg kell nézni az elvárt, minimális függőségeket. Ezek a csomagban is fel lettek sorolva, a control fájlban, amiben a Depends: sorban lévő függőségek mindenképp kellenek. A többi a javasolt, ajánlott kiegészítőket adja meg. Ezeket a függőségeket jó eséllyel az Arch Linux is tartalmazza, így a paru, pacman stb. segítségével simán telepíthetjük. Ha nem? Akkor ár nagyobb gond van, mert akkor újabb Debian csomag kerül a képbe, aminél hasonló probléma lehet. Ez már kérdésessé teszi a munkánkat. Ha ilyen van, érdemesebb nem folytatni a munkát, hanem más, alternatív megoldást keresni a kívánt program kiváltására.
Miután mindent kész, ki lehet próbálni. Én a Ranger-t raktam fel egy teszt rendszerre, alapvetően semmi problémám nem volt vele.

Ha nem működik?

Szépen sorban visszafele letörölgetjük a felmásolt fájlokat. Ezt érdemes megtenni, mert így tisztább lesz a rendszerünk, és nem maradnak aknák a későbbi telepítéseknél. Előfordulhat, hogy egy frissítésnél, vagy telepítésnél azonos helyre, azonos nevű csomag kerülne, és akkor a pacman, a paru hibajeleket ad, esetleg nem tudja folytatni a telepítést.
Bár maga a módszer nem egy különösebben nagy szakmai tudást igényel, de a pontosság az fontos.

Related Posts