Unix Shell környezet Cygwin segítségével

Néha napján nagyon hasznos tud lenni (számtalan egy okból) egy Unix kompatibilis shell környezet. Ez Linux, Mac, BSD és gyakorlatilag minden Unix alapú rendszer felhasználójának megadatott. Azonban ott a Windows, ami nem Unix alapú rendszer. Itt is van lehetősége az embernek Unix shell környezet kialakítására, méghozzá nem is egy. Ezen írásban a Cygwin projektel ismerkedünk meg.

Windows-on tudomásom szerint két lehetősége van az embernek, ha Unix shell környezetet akar létrehozni. A MinGW és Cygwin. A MinGW környezet előnye az, hogy a fordítóival lefordított programok nem kötődnek szorosan a futtató környezethez, vagyis olyan gépen is futtathatóak a programok amelyek nem rendelkeznek MinGW telepítéssel. Azonban az előnyei itt ki is merülnek a környezetnek. Joggal merülhet fel a kérdés, ha ez ilyen előnnyel jár, akkor miért nem erről írok? A válasz egyszerű: Nagyon nincs karbantartva a projekt. A fordító programok igen, de a környezet egyéb eszközei nincsenek,. így egy csomó szívás és manuális hekkelés kell ahhoz, hogy használható legyen a rendszer.

A Cygwin környezet lelkét a cygwin1.dll képezi, ami nem más, mint egy Linux API réteg fordító. A ráépülő programoknak Linux API réteget biztosít Windows rendszeren. Így értelem szerűen ebben a környezetben fordított programok igényelnek egy Cygwin telepítést. (vagy legalábbis a támogató fájlok nagy részét, ami megdobhatja a programok méretét rendesen) Ezen kis kellemetlenségért cserébe azonban kap a felhasználó egy viszonylag jó telepítőt, amivel pillanatok alatt beszerezheti a környezet legfrissebb komponenseit, valamint alkalmazás fejlesztőknek is nagy előny ezen rendszer, hiszen nem kell vagy csak minimálisan kell módosítaniuk a programjukat, hogy fusson ezen környezetbe is.

Telepítés

A környezetet érdemes külön partícióra, vagy virtuális lemezre telepíteni, mivel igencsak sok kis méretű fájlt tartalmaz, amelyek belassíthatják a fájlrendszert. Virtuális lemez kezelésről Windows 7 alatt korábban volt már szó, így most ez kimarad. Telepítési célnak egy 1GB-os partíció is bőven sok, bár igény függően ez változhat. (Az alap rendszer ~80Mb) A Partíció szektor méretét érdemes 2Kb-ra vagy 1Kb-ra állítani a lehető legjobb helykihasználás végett. Demonstrációnak itt egy képernyőkép alapértelmezett (4Kb) szektor méretű lemezre telepítésnél és egy 2Kb szektor méretű lemez esetén:

4kb szektor méret esetén a Méret és a lemezen elfoglalt terület között 14% eltérés van, míg 2Kb szektor méret esetén “csak” 7%

A Telepítő egy üdvözlő képernyővel indul, mint a többi telepítő. Sok érdekes dolog itt nincs.

A Következő lépésben ki kell választanunk, hogy internetről telepítünk most, letöltünk csomagokat telepítés nélkül, vagy helyi mappából telepítünk. Jelen esetben internetről telepítünk.

Ezután meg kell adni a mappát, ahova települ a környezet, majd azt, hogy a parancsikonok minden felhasználó számára készüljenek el, vagy csak az aktuális felhasználó számára.

Ezt követően meg kell adni egy mappát, amibe a letöltött csomagok kerülni fognak. Ezen csomagok későbbi telepítések folyamán felhasználhatóak.

Mivel a csomagok internetről töltődnek le, a következő lépésben be kell állítani, hogy Proxy szerveren keresztül csatlakozunk vagy közvetlenül az internetre.

Majd némi letöltés után megjelenik a választható telepítési források listája. Itt válasszunk ki egyet.

Ezt követően ismét némi letöltés következik.

Ezután a telepítő egy hiba üzenetet (valójában figyelmeztetést) dob fel, miszerint a Cygwin 1.7-es aktuális kiadása nem igazán kompatibilis az előző változatokkal, ezért mindenképpen nézzük meg a dokumentációt, ha frissítünk egy korábbi telepítést. De mivel friss telepítést csinálunk, egyszerűen figyelmen kívül hagyjuk ezen üzenetet.

Ezt követően megjelenik a csomag kezelő, ahonnan kiválaszthatjuk a telepíteni kívánt csomagokat. Amennyiben egyet sem választunk ki, akkor csak az alap rendszer fog települni, ami bármikor bővíthető/módosítható a telepítő segítségével.

A csomagok kiválasztása után azok letöltése és telepítése történik meg. Ez az internet kapcsolat sebességétől és a kiválasztott csomagok méretétől függően eltarthat egy darabig.

A telepítés végén parancsikonok helyét kell megadni.

Terminál csere

Az alap terminál a Windows parancssorára épül, amely alapértelmezetten 80×25 karakteres. Ez nem éppen ideális, kényelmes Unix terminálnak. Ezért célszerű az alap terminált lecserélni. Erre a célra, a Kitty nevezetű terminál emulátor & SSH kliens programot ajánlom, amely képes Cygwin terminálként is üzemelni.

Először is be kell szerezni a programot a http://www.9bis.net/kitty/?page=Download címről. Továbbá a http://www.9bis.net/kitty/?page=PuTTYCyg&zone=en címről be kell szerezni a csomagot az 1.7-es Cygwin kiadáshoz is. Ezen csomag tartalmát ugyan oda kell kicsomagolni, ahol a Kitty.exe található. A kicsomagolt Cygwin1.dll fájl nem fog kelleni, ezért törölhető. (amennyiben nem törlöd és így próbálod meg használni a programot, akkor nem fog működni a dolog)

A Kitty elindítása után a Connection beállítások kategóriában lesz egy Cygterm bejegyzés. Itt ellenőrizd, hogy az “Autodetect Cygwin installation”  opció aktív.

Ezután a Session beállításoknál a Cygterm opciót kell kiválasztani, majd futtatandó parancsnak a következőt kell megadni:

bash --login -i

Ha minden jól megy, akkor megnyílik a terminál az Open gomb megnyomása után.