Akinek valaha volt dolga a GNU userland-del, annak jó valószínűséggel akadnak jól megszokott eszközei a kisebb-nagyobb programok széles választékából, melyek használatáról nem szívesen mondana le, ha csak nem lenne feltétlenül szükséges. Amikor “switcher”-ré váltam, tehát az Apple személyi számítógépeinek használatára adtam a fejem, viszonylag hamar feltűnt, hogy a korábbi jó néhány év, amit Linux disztribúciók használatával töltöttem, rászoktatott bizonyos programok napi használatára, melyek sem a Leopard, sem a Snow Leopard alapértelmezetten elérhető kínálatának nem képezték részét. Lett volna nyilván “kerülőút”, de úgy éreztem, elég az új terminológiákat, GUI shell-t, környezetet megszoknom – nem óhajtottam tovább bonyolítani az életem. Megoldást kerestem a megszokott eszközök és az általuk nyújtott kényelem elérhetővé tételére…
…Itt jött be a képbe a MacPorts. (…és az igazat megvallva a Fink is, de erről később szólok) A BSD licensz jogi hátterével terjesztett alapcsomag felkészíti a rendszert megközelítőleg tízezer program forráskódból történő helyi telepítésére és használatára.
Amire szüksége van: X11 és XCode – ezek beszerezhetőek az operációs rendszer telepítőlemezéről kiegészítő komponensként, valamint az Apple weboldaláról. (Utóbbi teljes telepítése javasolt.)
Maga a MacPorts keretrendszer .dmg formátumú image-en tárolt szabványos telepítőcsomag formájában érhető el a projekt weboldalán. Telepítése egyszerű, kézenfekvő lépésekben zajlik.
Innentől válik a dolog valamivel izgalmasabbá: a továbbiakban a „port
” parancsot fogjuk használni.
(Alapértelmezett telepítési helye a rendszeren az /opt/local/bin könyvtár, melyet az /opt/local/sbin könyvtárral egyetemben a telepítő hozzáad a PATH környezeti változó értékéhez a .profile állomány beállításaiban.)
Célszerű frissítéssel kezdeni, hogy minden szükséges komponens az elérhető legfrissebb legyen:
sudo port -v selfupdate
(A -v
kapcsoló természetesen elhagyható, én szeretem látni, mi történik a “motorháztető alatt”. Ugyanígy a sudo
használata is opcionális, de én az egyszerű és szabványos megoldásokat részesítem előnyben. YMMV. A későbbiekben a sync
parancs is használható a selfupdate
helyett, ez azonban a MacPorts keretrendszer frissítését nem, csak a ports-fa szinkronizálását végzi el.)
Ha kíváncsiak vagyunk az elérhető programok listájára, a következő parancs kiadása segíthet:
port list all
Ez megmutatja a jelenleg szinkronizált struktúrában szereplő csomagok nevét, verziószámát és a hierarchiában megkülönböztetésére szolgáló besorolási kategóriáját. Szabadszavas kereséssel:
port search csomagnév
Találat esetén rövid leíráshoz és kurrens verziószámhoz is juthatunk. A MacPorts támogat ún. “variánsokat” bizonyos csomagokból, melyek alternatív, az alapértelmezéstől eltérő telepítési módokhoz használhatóak fel. Ezek lekérdezése adott csomagra vonatkoztatva:
port variants csomagnév
További információkhoz juthatunk a csomagokról az info parancs meghívásával:
port info csomagnév
A csomagfüggőségek előzetes felderítésére is van módunk (bár telepítéskor feloldásra kerülnek):
port deps csomagnév
Ha kinéztünk ezek során valamit, amire szükségünk van, hasonlóan komplikált maga a telepítés is:
sudo port -vc install csomagnév
Ennek folyamatában a keretrendszer feloldja a csomagfüggőségeket, majd azokat a szükséges sorrendben feltelepíti a rendszerre – a -c kapcsolónak hála az átmeneti állományokat törli is.
A telepítés folyamata a következő:
Az ún. “Portfile” állományokban foglaltak alapján, amelyek minden szükséges információt tartalmaznak az adott csomagról, letöltésre kerül egy ideiglenes könyvtárba először is a kívánt csomag forráskódja tömörített állomány formájában. Ez kitömörítésre kerül egy átmeneti munkakönyvtárba. Itt konfigurálásra, majd fordításra kerül sor. Az eredményül kapott futtatható bináris állományok, függvénykönyvtárak és konfigurációs file-ok ezt követően kerülnek az “éles” filerendszerünk alá eltárolásra, majd a MacPorts keretrendszer nyilvántartásában rögzítésre.
Természetesen a folyamat minden lépése tartalmaz előzetes és utólagos ellenőrzést és hibakezelést.
Lehetőség van a lefordítandó csomagokat grafikus telepítőkészlettel ellátva, szabványos .pkg formátumban is előállítani a következőképpen:
sudo port -v pkg csomagnév
Ezzel egy későbbi telepítést könnyíthetünk meg akár a saját rendszerünkön, akár egy másik, egyező műszaki karakterisztikájú számítógépen, a forráskóddal érintkezést és a várakozást elkerülve.
Telepítést követően az annak folyamatában keletkezett, immáron szükségtelen állományoktól is megszabadulhatunk, ha nem használtuk az autoclean opciót:
sudo port clean --work csomagnév
(Használható a --work
helyett a --dist
, az --archive
vagy az --all
kapcsoló is, belátásunk szerint; okos döntés pediglen az „installed” placeholder használata konkrét csomag helyett, főleg, ha még sosem takarítottunk eleddig magunk után)
A feleslegessé vált, már telepített csomagok eltávolítása az alábbi módon történik:
sudo port -v uninstall csomagnév
Alternatívaként szóba jött, mint már említettem, a Fink is – mivel azonban évekkel ezelőtt megpróbálkoztam a FreeBSD-vel is, ahol már találkoztam a Ports-szal, no és a Gentoo az, amihez mostanában nyúltam/-ok, ha Linux kell(ett) – nem akartam megint az apt-tel megszokott dependencia-tengert viszontlátni, bármily kényelmes volt is többnyire…
A MacPorts project weboldala elérhető itt.
Telepítés előtt érdemes esetleg megtekinteni az elérhető portok listáját itt.
Telepítést követően az itt felsoroltaknál nagyságrendekkel több információhoz juthatunk a man port
parancs kiadásával.
Bízom benne, hogy sikerült elmondanom annyit, amennyivel az érdeklődő olvasó már maga is nekiláthat a MacPorts használatának – sok sikert!