Instalacija i konfiguracija Cygwina. Šta je CYGWIN Instalacija i konfiguracija cygwin-a za početnike

Cygwin je skup Unix programa i biblioteka kompajliranih za Windows OS i smještenih u sistem datoteka na isti način kao u pravom Unixu. Zahvaljujući tome, dobijamo potpuni ekvivalent Unix okruženja, počevši od bash-a pa sve do gcc kompajlera, koji se, bez mnogo portiranja izvornog koda, može koristiti za sklapanje projekata za izvršavanje na Windows-u (prilično veliki broj cross-platform aplikacije koriste ovaj pristup, jer je najjednostavniji i najbrži).

Instaliranje Cygwina

Možete preuzeti Cygwin za 32 ili 64 bitne verzije na web stranici https://cygwin.com/install.html. Instalacija je vrlo jednostavna - možete jednostavno kliknuti "Dalje" u prozor Select Packages. Ovdje će se ispred vas otvoriti baza paketa, neki od njih će već biti označeni za zaustavljanje (osnovni), druge možete sami označiti. Da biste označili paket za instalaciju, potrebno je da unesete njegov naziv u polje "Traži", zatim proširite kategorije i pronađete ovaj paket. Zatim kliknite na "Preskoči", zbog čega bi se umjesto Skip trebala pojaviti verzija koja će biti instalirana. Za dalji rad označite paket wget, ostatak možete ostaviti na miru. Paketi se mogu ponovo instalirati ili ukloniti u bilo kojem trenutku jednostavnim ponovnim pokretanjem instalatera, ali to nije sasvim zgodno, pa ću vam kasnije u članku reći kako instalirati pakete iz komandne linije (za ovo će nam trebati wget).

Po defaultu, cygwin radi u standardnom Windows terminalu, što nije baš zgodno.

Terminal Console

Instaliranje python paketa koristeći pip

Paketi u python-u se često instaliraju pomoću pip-a, koji nije dostupan u sigwin repozitorijumima.

Stoga se mora instalirati zasebno:

MAN stranice za libc funkcije

Cygwin već sadrži priručnik stranice za standardne komande, ali man stranice za libc funkcije mogu se instalirati zasebno:

Inače, Cygwin je na neki način povezan sa ugrađenim sistemima, kako i koristi Newlib implementacija libc, za koju se zna da se široko koristi u različitim ARM lancima alata.

Vim u Cygwinu

Instalacija:

Konfiguracija se vrši u .vimrc datoteci u početnom direktoriju:

Koristim ove postavke:

set backspace=indent,eol,start

Sintaksa omogućena

postavi shiftwidth=4

postavi tabstop=8

postavi softtabstop=4

set expandtab

set broj

set showcmd

postaviti kursornu liniju

filetype indent plugin uključen

postaviti wildmenu

set lazyredraw

set showmatch

set incsearch

Korištenje izvornog Cygwin terminala

Standardni Cygwin instalater nudi svoj vlastiti mintty terminal (pokrenut preko ikone Cygwin terminala). U odnosu na Console, malo je inferioran u funkcionalnosti (na primjer, nema jezičke), ali ima i dobru funkcionalnost, a ima i manje pokreta tijela. Jedna od lijepih karakteristika je podrška za 256-bitne boje u terminalu:

Ovo vam omogućava da koristite zgodne teme za isticanje sintakse za vim, kao što je badwolf:

Da biste ga aktivirali, morate dodati u .vimrc:

To će izgledati ovako:

Kako sačuvati istoriju komandi u bash cygwin?

U .bashrc datoteci morate pronaći add:

Prvi označava veličinu fajla istorije (10 hiljada komandi), drugi omogućava uklanjanje duplikata naredbi (ako je uneta komanda već u istoriji, stara se briše radi uštede prostora), a treća omogućava bash istoriju održavanje.

Kako navigirati do date putanje u Windows stilu u Cygwinu?

Da biste pretvorili putanju nalik na win u putanju u unix stilu, možete koristiti uslužni program cygpath.

Kao rezultat, putanja će postati "/cygdrive/d/projects/some/src" i proslijeđena kao argument cd.

Ovaj članak je namijenjen za dvoje
tipovi ljudi: za one koji ne razumiju
Linux, ali ne mogu da ga instaliram na svoj računar
(razlozi su različiti), ili za one koji
zna malo o pingvinima 🙂 i ne bi imao ništa protiv
upoznaj ih "neutralno"
teritorija, odnosno na Win98/NT.

Sajt je već opisao Cygwin kao najbolji
izvadite Linux emulator, ali nije rečeno
ništa o instalaciji, konfiguraciji i greškama Cygwin-a.
Evo reći ću vam o tome :) Zapravo, ako
Kad bolje razmislim, Cygwin uopće nije emulator, ali
samo Linux distribucija napisana za Win32 😉

Prestanite lutati... Idemo na http://www.cygwin.com,
Odatle preuzimamo instalacioni program setup.exe. Za nju
povući ćemo već prethodno kompajlirane
binarne datoteke (u ekstenziji exe), sjećate li se rpm?
😉 sa web stranice programera ili sa ogledala.
PREPORUČUJEM samo ovaj program za preuzimanje
Ove datoteke ćemo instalirati ručno, jer Ako
instalirate koristeći setup.exe, gcc ne radi - sl
zna zašto... Možda su programeri već uzeli u obzir
ovo je greška, ali još ne znam za to...

Dakle, preuzmite sve glavne binarne datoteke (izvori
ne morate da preuzimate) i nekoliko
dodatno - ko bi odbio wget, lynx,
BitchX, Python :) Ali ne morate da preuzimate Perl... ja jesam
postojao je ActivePerl - napredni Perl emulator. Preuzmi
dostupno na http://www.acriveperl.com.
Nisam primetio nikakve greške :) (Reći ću vam kako sam
implementirao ga u cygwin).

Postavke

I u "group" fajlu u istom folderu "etc":
root:x:0:root

Ako želite šifrirati svoju lozinku, i
ne "lozinka" kao što sam ja uradio u svom primjeru,
napisati Perl skriptu

#!/usr/bin/perl
chomp ($pass= );
print $crypt("SA",$pass);

Gdje, SA - salta, koja će se koristiti za šifriranje
lozinka... možete je napraviti nasumično, ali
Ovaj članak će biti van teme.

Sada uredite datoteku "c:\cygwin\cygnus.bat" -
u njemu menjamo PATH, jednostavno menjajući putanju do
emulator i putanju do datoteke login.exe. Pokrenimo
fajl.

Prijavite se: u mom primjeru, "root": "password".
Tako smo ušli u sam emulator. Ja ne
Svidio mi se upit za unos. Hajde da ga promenimo
- varijabilni PS1. Otvorite (kreirajte) datoteku "c:\cygwin\etc\profile"
i napiši tamo:

# /etc/profile
PROFILE_LOADED=1
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/local/sbin:$PATH"
poništiti DOSDRIVE
poništi DOSDIR
poništi TMPDIR
unset TMP
izvoz HOSTNAME=test
PS1="[\u@$HOSTNAME \W]# "
LOGNAME=$USER
izvoz PATH PS1 KORISNIČKI LOGNAME

Evo... Onda ćemo se ponovo prijaviti i sve će biti uključeno
mjesto i prelijepo :) Poziv će biti: # - standardni, Linux :)

To je to, početna instalacija je završena.
Idemo dalje na instalaciju servisa :)

Standardna isporuka uključuje thuja hucha
usluge. Morate ih pokrenuti ovako:
/usr/sbin/inetd -R /usr/sbin/in.ftpd (primjer za ftpd).

Bolje je da sami instalirate SSHD - radio je sa praskom i
Vozim sa SecureCRT, legalno na 127.0.0.1 -
potpuno drugačiji izgled :)

Što se tiče rada sa TCP/IP, nemam nedostataka
Primetio sam :) Sve se povezuje i radi kao
neophodno...

A sada nekoliko savjeta:

1) Pristup SVIM diskovima je otvoren. Neka bude
oprezno. Na primjer, pogon d: se nalazi ovdje -
"/cygdrive/d".

2) Što se tiče Perla, kreirajte simboličku vezu do datoteke
Perl.exe, na primjer, tako da "ln -s /cygdrive/c/perl/bin/perl.exe
/usr/bin/perl"

3) Ako iz nekog razloga nemate
instaliranje Linux aplikacije -
samo popravite C kod. Možda
uspeće.. (tako sam sastavio
micq).

4) Pratite Cygwin ažuriranja na web stranici http://www.cygwin.com
- binarne datoteke se često ažuriraju.

Pitanja? Pišite mi na e-mail - probaću
pomozi...

Da biste pisali prijave za Unix nije ga potrebno instalirati (ispod word Unix Promisliću o svemu *nix sistemi). Ova izjava zvuči prilično paradoksalno, ali je istinita i u ovom članku ću vas pokušati uvjeriti u to.

Ako niste pravi Unix guru, onda da biste napisali nekoliko aplikacija za ovaj OS ili kompajlirali postojeće programe ne morate instalirati Unix. Emulator je savršen za ove svrhe. Unix. Postoji mnogo sjajnih programa koji savršeno rade ovaj zadatak, na primjer: UWin, MinGW, Cygwin itd.

Pogodno za kompajliranje jednostavnih programa: MinGW, ali za složenije nije prikladan. Uwin je napredniji emulator, ali je njegova funkcionalnost znatno inferiorna u odnosu na drugi popularniji emulator Cygwin.

Cygwin je vrlo funkcionalan, besplatan emulator Unix. Distribuira se kao jedan fajl ( setup.exe), nemojte da vas zavara veličina ovog fajla ( ~300 kb), ovo nije on sam Cygwin, već samo njegov instalater. Svi potrebni uslužni programi i biblioteke će se morati zasebno preuzeti tokom procesa instalacije, ili možete odrediti lokalni direktorij kao izvor ako već imate potrebne datoteke.

Cygwin uključuje ogroman broj različitih uslužnih programa i biblioteka, od kojih vam mnogi vjerovatno nikada neće trebati, ali prilikom instalacije Cygwin omogućava vam da odaberete samo komponente koje su vam potrebne. Dakle, ako želite samo da prevedete program, onda ćete morati samo da instalirate kompajler GCC, skup potrebnih biblioteka i uslužnih programa napraviti. Lično sam instalirao sve aplikacije jer Cygwin olakšava da ih se "oslobodite" u bilo kom trenutku. U stvari Cygwin sastoji se od samo jednog fajla cygwin1.dll, sve ostalo su softverski paketi GNU, posebno ponovo kompajliran za rad Cygwin.



Mislim da nije bilo problema sa instalacijom. Pogledajmo sada nekoliko suptilnosti u postavljanju i korištenju Cygwin. Nakon instalacije, struktura fascikle u kojoj je program instaliran će ličiti na strukturu *nix sistemima. Da bi se pokrenuo Cygwin, samo trči BAT fajl, cygwin.bat, koji se nalazi u korijenskom direktoriju Cygwin(pod osnovnim direktorijumom podrazumevamo fasciklu u kojoj je Cygwin, ubuduće ćemo računati iz ovog kataloga). Nakon lansiranja BAT fajl Pred vama će se pojaviti konzolna aplikacija. Ovo je taj Bash, što je veza između Unix I Windows. Bash- ovo nije samo analog cmd.exe. Bash je punopravni programski jezik u kojem možete pisati skripte za obavljanje raznih zadataka. Upravo to ga čini suštinski drugačijim od cmd.exe (command.com).

Poziv Bash, praktično se ne razlikuje od cmd.exe (~ - znači vaš početni imenik). Ovdje nema logičkih pogona (A, C, D, itd.), odbrojavanje je iz korijenskog direktorija označenog " / ". Također morate imati na umu da je slučaj ovdje važan, dakle itd I itd- dva potpuno različita kataloga. Pokušajmo otići u korijenski direktorij, da biste to učinili, samo pokrenite naredbu koja vam je poznata " cd/" (~ treba promijeniti u / ). Nakon toga ukucajte naredbu " dir", ili " ls", da biste vidjeli sadržaj korijenskog direktorija. Mislim da ste sada shvatili šta je korijenski direktorij.





Ne mogu opisati sve naredbe u ovom članku, pa idemo odmah na najvažniju fazu, za koju smo zapravo postavili Cygwin. Pokušajmo sastaviti neki program. Za kompilaciju sam izabrao program Htop(http://freshmeat.net/projects/htop/), ovo je poboljšana verzija standardnog programa top, koji je upravitelj procesa konzole. Prvi korak je raspakivanje arhive. Ovo možete učiniti kao u Windows, i direktno u Cygwin. IN Cygwin ovo se radi naredbom:

tar zxf htop-0.6.tar.gz

Naravno, trenutno morate biti u istom direktoriju u kojem se nalazi arhiva htop-0.6.tar.gz. Nakon raspakivanja idite na kreirani direktorij htop-0.6 i izvršite tri standardne komande za kompajliranje aplikacije.

./configure
napraviti
napravi instalaciju



To je to, kompilacija je završena. Slobodno regrutujte tim htop i diviti se rezultatu. Rezultirajući "EXE" nalazi se u direktoriju /usr/local/bin/.



Sada pokušajmo sami napisati jednostavan program ( Hello world) i kompajlirajte ga sa GCC. Prvo treba da napišemo sam program, to ćemo uraditi pomoću programa mačka. Unesite naredbu mačka nova.c, Gdje novo.c naziv datoteke koja sadrži izvorni kod. Nakon izvršenja naredbe, napišite sljedeći kod:

#include
int main())(
printf("Hello World");
vrati 1;)

Nakon što unesete kod, pritisnite Ctrl+C. Sada ga kompajlirajmo koristeći GCC. Ovo se radi naredbom:

Gcc new.c -o new.exe

U istom direktoriju gdje se nalazio novo.c pojavit će se drugi fajl - new.exe. Kada ga pokrenete, vidjet ćete očekivanu poruku " Hello World".



Ovo bi mogao biti kraj članka, ali sam odlučio da pričam i o grafičkom okruženju Cygwin da se kasnije ne vraćam na ovu temu. Mislim da ste to primijetili prilikom instaliranja paketa Cygwin predlaže instaliranje školjki Gnome I KDE. Zapravo, to nisu samo školjke, već i njihove biblioteke, koje su neophodne za pokretanje aplikacija. Na primjer, grafička verzija poznatog urednika emacs, pokrenut će se direktno ispod Windows kao da jeste win32 aplikacija. Da ne budemo neosnovani, probajmo ovo Emacs trči. Ovo se radi naredbom:

xemacs

To je ono što ćemo vidjeti.



Kao što vidite, sve se pokreće i radi dobro. Ali ovo se ne dešava svima. Grafičko okruženje je vrlo kapriciozno. Stoga, morate biti u mogućnosti da ga konfigurirate. Setup Documentation X serveri Ima ih puno na internetu i lako ih možete pronaći.

Na kraju bih vas podsjetio da bez obzira koliko je dobar Cygwin, to je samo emulator. I kao što znate, kopija ne može biti bolja od originala, pa ako želite postati pravi Unix guru, nemojte biti lijeni instalirati punopravnu Unix distribuciju. Po mom mišljenju, bolje je početi od toga Linux. Od svih mogućih distribucija preporučujem Vas Slackware.

Razvoj višeplatformskih aplikacija nije lak. Posebno je teško zahvaljujući Windowsu, u kojem nije sve kao kod ljudi. Ovdje nemate ni normalan terminal, ni normalne konzolne uslužne programe, baš ništa! Još jednom suočen sa ovim problemom, odlučio sam da ponovo isprobam Cygwin. I pogodite šta, ispostavilo se da to zapravo čini Windows nečim što gotovo možete koristiti!

Možete preuzeti Cygwin instalacijski program ovdje. Zapravo, ovo nije toliko instalater koliko menadžer paketa, koji, kada se pokrene, direktno pita koje pakete želite da instalirate. Momci! Package Manager! Pod Windowsima! Instalater kreira keš memoriju u direktoriju iz kojeg će biti pokrenut. Stoga je prije početka bolje napraviti neku posebnu mapu na radnoj površini i staviti instalater u nju.

Koje pakete po mom mišljenju treba instalirati:

  • openssh- masthev;
  • inetutils, bind-utils, ping, nc I nc6- masthev;
  • wget, curl- masthev;
  • python i/ili python3— Mislim da je to must have;
  • vim, gvim— za uređivanje malih datoteka neće biti suvišno;
  • diffutils, pwgen, raspakujte, rzync- neka budu za svaki slučaj;
  • gcc i/ili clang, cmake, gdb- ako je potrebno;
  • ekran, tmux, mc- za amatere;
  • git- ispod veoma veliki pitanje, vidi ispod;

Obratite pažnju! Da biste instalirali pip u Cygwin, označite polje pored paketa python-setuptools i/ili python3-setuptools. Nakon instalacije, u terminalu recite:

easy_install-2.7 pip

easy_install-3.4 pip

..., ovisno o tome koju verziju ili verzije Pythona ste instalirali.

Dakle, nakon instalacije Cygwina, možete otvoriti terminal:

Momci! Normalan terminal koji mijenja veličinu vam omogućava da kopirate i zalijepite tekst, i to je sve! Pod Windowsima! Sa svim dobro poznatim i poznatim komandama id, ls, pwd, cat, ssh, scp i ostalima. Sa ljudskim okruženjem - .bashrc, ~/.ssh/config i tako dalje. Plus, za razliku od sramnog haka koji se zove PowerShell, Cygwin ne vuče .NET Framework. Možemo čak otvoriti više terminala i prebacivati ​​se između njih pomoću prečice Ctr + Tab. Skoro kao tabulatori! Naravno, radi i stari dobri Alt + Tab.

Gore nisam preporučio instaliranje Gita, a evo zašto. Činjenica je da u Cygwinu značajno usporava. Preporučuje se da pokrenete naredbe:

git config --global core.preloadindex true
git config --global core.fscache true
git config --global gc.auto 256

Ali to, nažalost, ne rješava problem u potpunosti. Dakle, na velikom projektu, naredba git status može se izvršiti za 20 sekundi.

Jednostavno i u osnovi dobro za sve. Samo verzija Gita nije najnovija, barem za sada. Ali to je sasvim dovoljno za svakodnevni rad sa Gitom. Ako pogledamo verziju, vidjet ćemo:

$git --verzija
git verzija 1.9.5.msysgit.0

Ali ako vam iznenada zatreba nešto novije, možete instalirati Git iz Cygwin paketa. Da biste to učinili, naravno, morate instalirati sam Cygwin. U ovome nema ništa komplikovano. Idemo ovdje i preuzmimo instalacioni program. Ovo je tačno instalater, A nije distribucija. Pošto preuzima sve pakete sa mreže. Osim toga, mora se koristiti za ažuriranje instaliranih paketa ili instaliranje novih.

I tako preuzimamo

I pokrenite instalater

Uradite jedan, dva, tri

U svakom slučaju, ako vam nešto zatreba kasnije, možete to preuzeti i instalirati. Kao što vidite, Git verzija u ovom paketu je 2.1.4, što je očigledno novije od 1.9.5. Iako je 2.3.1 već dostupan za Linux i Mac OS X.

Za svaki slučaj, daću vam još par brzih servera za preuzimanje

Ovo je samo bajka

Pa, sve je spremno

Pokrećemo se i vidimo da nam je pri prvom pokretanju rečeno gdje se nalaze konfiguracijski fajlovi:

Slika sa desne strane pokazuje gdje se nalazi korisnički direktorij. Ovo je instalacioni folder (u mom slučaju C:\cigwin64), zatim folder kući, onda folder korisničkog imena i već sadrži konfiguracijske datoteke .bashrc, .bash_profile, .inputrc I .profil.

Sva konfiguracija terminala se vrši u ovim datotekama. Neću ovo ovdje opisivati, jer je to velika posebna tema.

Samo da napomenem da su glavne bash postavke napravljene u datoteci .bash_profile.

Također možete primijetiti da će se Git datoteka postavki – .gitconfig – također nalaziti u početnom direktoriju

Osim toga, možete prilagoditi izgled terminala klikom na ikonu terminala u gornjem lijevom kutu i odabirom Opcije.

Ako su vam potrebni dodatni paketi za Cygwin, možete ih potražiti.

Nakon svih podešavanja, moj Cygwin terminalski prozor izgleda ovako. Zatim ćemo pogledati verziju instaliranog Gita.

Pa, ovdje imamo punopravni Git. Sada hajde da (brzo) proverimo njegov rad na pravom spremištu.

Sve radi.

P.S. Ono što još jednom vrijedi napomenuti je da su globalne i sistemske (globalne, sistemske) postavke msysGit-a i Git-a instalirane sa Cygwin-a pohranjene na različitim mjestima, i ne ometaju se i ne preklapaju jedna s drugom, po mom mišljenju to je zgodno, jer sve što je Windows alati pokušavaju da zapišu svoje postavke u datoteku globalnih postavki file.gitconfig i to ponekad može stvoriti neugodnost i zabunu.

  • Sergej Savenkov

    nekakav “kratki” osvrt...kao da im se negdje žuri