Bevezetés
Biztosan voltál már olyan helyzetben, ahol jó lett volna ha egy linuxra írt program lefut Windows rendszereken is, vagy egy shell scripttel lett volna a leg egyszerűbb megoldani valamilyen problémát. Az alább bemutatott eszköz pontosan erre ad lehetőséget.
A Cygwin egy disztribúció, amely Windows alatt elérhetővé tesz pár Linux-szolgáltatást (szignálrendszer, a GCC és hasonló eszközök MinGW-vel, sh/ash/bash, coreutils stb.).
A félreértések eloszlatása végett a Cygwin nem egy Windowsra kiadott Linux emulátor, hanem egy olyan környezet, ahol a megfelelően előkészített Linuxos csomagok elfutnak.
Letöltés, telepítés, csomagok kiválasztása
Fontos: A Cygwin eszközök parancssorosak, így csak akkor érdemes belevágni, ha nem idegen a parancssor és az alapvető parancssori műveletek sem okoznak gondot.
Látogasd meg a
cygwin.com oldalt, keresd meg az Install Cygwin hivatkozást, majd a címsorok közül válaszd ki a számítógépednek megfelelő architektúrát (32 vagy 64 bit), lefele nyíllal keresd meg a setup_x86.exe vagy setup_x86_64.exe fájlt, és töltsd le.
A telepítő elindítása után a tükör kiválasztásáig mindent hagyj alapon (a tükörről letöltött csomagok helyét átállíthatod, de nem fontos).
megjegyzés: a feltelepített Cygwin a csomagoktól függően foglal helyet, egy minimális telepítéssel csak 600 mb - 1 gb, a fejlesztői eszközökkel nagyjából 3-4 gb. A tükörről letöltött csomagok mappája is foglal helyet, de ezeket a telepítés után letörölheted.
Ha eljutottál a tükör kiválasztása párbeszédpanelig, akkor válaszd ki az első tükröt (ez általában a cygwin.mirror.constant.com) innen fognak letöltődni a csomagok. Egy tovább gomb után letölti a telepítéshez szükséges információkat, majd felugrik a csomagok kiválasztására szolgáló panel. Ez az ablak nehezen használható képernyőolvasóval, PC kurzorral nem lehet a kategóriákon navigálni, ezért válts jaws kurzorra. (telepítésnél nem célszerű külön-külön kiválogatni a csomagokat, erről a következő részben lesz szó) Alapértelmezetten kategóriákat láthatsz a keresőmező alatt, a sorban a kategória neve és egy "default" felirat szerepel. A legfelső kategória, az "all" bejelölésével vigyázz, mert minden csomagot telepít, ez 40 gb helyet foglal el. Kategóriát telepítésre a default szóra kattintással jelölhetsz ki (állj rá a jaws kurzorral a default szóra, és bal egérgombbal kattints rá, meg fog változni a felirat install-ra). A fejlesztői eszközök (gcc, g++, git, perl, algol, fortran, python2, python3, as, objdump, stb.) a devel kategóriában vannak. Ezután tovább gomb, a függőségek telepítésére szintén tovább, ezután a telepítő megkezdi az alaprendszer és a csomagok felpakolását. A telepítés nálam kb. 1 órán keresztül futott, de ez a csomagok mennyiségével és az internet sebességével változhat.
Befejezés után egy Cygwin terminal nevű parancsikon kerül az asztalra. A parancsikon a mintty nevű terminálalkalmazást indítja, de vakon nehezen használható.
használat
Használat előtt:
vezérlőpult > rendszer > speciális > speciális > környezeti változók > rendszerváltozók - path változó szerkesztése:
a végére másold be a következőt a rendszerednek megfelelően:
;c:\cygwin\;c:\cygwin\bin\
;c:\cygwin64\;c:\cygwin64\bin\
ezután ok gomb az összes nyitott ablakon. Nyiss egy parancssort (cmd.exe), és gépeld be:
bash
Ha mindent jól csináltál be is töltődik a bash parancsértelmező.
User@Host /cygdrive/c/users/user
$
Itt térnék ki az első érdekességre: a Cygwin egy Linuxhoz igazított könyvtárstruktúrát használ. A / könyvtár jelenesetben a c:\cygwin(64), a meghajtókat pedig a /cygdrive mappába mountolja (ez a struktúra csak a shell-ben látható, a gép normál viselkedését nem módosítja, és az intéző a c:\cygwin könyvtárból nem látja a cygdrive mappát)
Egy speciális könyvtár a /dev, ami intézőből szinte üresnek látszik, de shellből nem. (Akit a technikai részletek is érdekelnek, ez egy virtuális könyvtár ami csak a cygwin rendszerében létezik, nem lehet rá intézőt nyitni az explorer . paranccsal)
A rendszergazdai hozzáféréshez el kell végezned még egy lépést:
$ cd /cygdrive/c/cygwin/bin
$ printf 'cygstart --action=runas "$@"' > ./sudo
$ chmod +x ./sudo
Csak röviden: létrehoztuk a sudo parancsot, ami nem úgy viselkedik mint linux rendszereken, de szükség szerint felemeli a feladat futási jogait.
Nézzünk pár Linux-parancsot:
$cd /cygdrive/c
$ mkdir cygtest
$ cd cygtest
$ touch test.txt
$ sudo chmod 777 ./test.txt
$ echo "asdf" > test.txt
$ echo "asdf2" >> test.txt
$ cat test.txt
$ cat test.txt | grep s
ha fel van telepítve a devel csomagcsoport:
$ touch prog.c
$ notepad prog.c
írd bele:
#include
int main()
{
printf("Hello world!\n");
return 0;
}
mentsd el
$ gcc -o prog prog.c
Létrehoztunk egy kis C-ben írt programot, amit a gcc fordítóval bináris fájllá fordítottunk.
$ ./prog.exe
Ha lefutottak a fenti parancsok, akkor sikerült beállítani a rendszert, és ha a Hello World! felirat is megjelent, akkor a gcc is működik.
Összegzés, megjegyzések
A telepítőt és a mintty-t leszámítva a parancssori eszközök teljesen használhatóak, és sok lehetőséget nyitnak meg. Hátrány a telepítő devel csomagjában talán hogy sok felesleges dolgot is feltelepít (konverterek pl), de ha ettől eltekintünk akkor egy kényelmes és sokoldalú eszközt kapunk.
A csomagok egyenkénti telepítése, eltávolítása és frissítése egy eléggé eltérő folyamat, ezért itt nem tértem ki rájuk, a következő részben tervezem bemutatni a lehetőségeket. Ha bármilyen kérdésed van, akkor kérdezz a cikkhez tartozó fórumtémában.