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!