This post comes from the first version of this blog.
Please send me an email if anything needs an update. Thanks!
Każdy, kto kiedykolwiek zetknął się z Linuksem, czy też innymi “Uniksopodobnymi” systemami operacyjnymi na pewno zauważył, że przeniesienie przyzwyczajeń i sposobu myślenia z Windowsa nie jest proste. Sam zmagam się teraz z tym problemem, ponieważ na nowym komputerze, który mam zamiar nabyć w [mam nadzieję] niedalekiej przyszłości, chciałbym po raz kolejny [chyba już trzeci] dać szansę Debianowi na zajęcie pozycji głównego OSa - zwykle po pewnym czasie wracałem do niedających się wyrzucić “wspomnień” okienek, z których, w wersji XP, aktualnie korzystam. “Dysk” C: zamiast /dev/hda0, Panel Sterowania zamiast ustawień w /etc, klikanie myszą zamiast wpisywania poleceń oraz wiele innych “spraw życia codziennego” skutecznie uniemożliwiało mi “przezwyczajenie” się do otwartych rozwiązań. Tym bardziej, że uczelnia przez program MSDNAA daje darmową licencję na produkty Microsoftu… W każdym razie w życiu każdego człowieka, a szczególnie takiego związanego z nowymi technologiami [wszystko się zmienia w bardzo szybkim tempie], w pewnym momencie przychodzi czas na rewolucję, a przynajmniej przygotowanie do niej. Takim właśnie przygotowaniem była instalacja i konfiguracja “prawie natywnego” środowiska Linuksowego… pod Windowsem.
Czego potrzebuję? Na początku pozwolę sobie opisać jak to zrobiłem, tak, abyś czytając kolejne rozdziały mógł skonfrontować swoje poglądy z moimi wnioskami. Tak więc - do dzieła!
Aby w pełni zastąpić konsolę Windowsa, czyli zrealizować zarówno postulaty wydajności / funkcjonalności jak i wyglądu / szeroko pojętego usability [wybaczcie - jest to jedno ze słów które mnie strasznie “uwiera”, bo jest bardzo pomocne, ale nie mogę znaleźć dla niego dobrego polskiego odpowiednika] będziemy potrzebowali dwóch programów. Będą to:
- Cygwin [sprawdzona, aktualna wersja 1.7.1-1]
- Console2 [sprawdzona wersja 2.00b144, najnowsza 2.0b145]
- możliwość podpięcia innego interpretera poleceń niż cmd.exe
- przezroczystość okna
- dowolna zmiana rozmiaru, zarówno wzdłuż, jak i wszerz
- zakładki
"Cygwin is a Linux-like environment for Windows."Co to oznacza? Otóż - za pomocą biblioteki cygwin1.dll, która emuluje zachowanie systemów operacyjnych zgodnych ze standardem POSIX, w środowisku Windows zostaje nam udostępniona możliwość uruchamiania dowolnych narzędzi znanych z systemów opartych na jądrze Linuxa. Fajnie? Proste, że fajnie, rzekłbym nawet MEGA. ;] Pomyśl - gcc, vim, cat, ls, tar, ssh oraz masa innych narzędzi staje się dostępna pomimo korzystania z zupełnie innego środowiska! Cygwin zmienia także nasze podejście do struktury systemu, bowiem wewnątrz jego konsoli mamy standardowego "roota", czyli element "/" wraz z wszystkimi partycjami zamontowanymi w drzewie /cygdrive. Byłbym zapomniał - normalne "exeki" także możemy uruchamiać, żeby nie było. Ktoś chce coś jeszcze? Nie? To idziemy dalej. ;]
Jak to zrobić?
Pakiet instalacyjny.Aby stworzyć opisane wyżej środowisko należy w pierwszej kolejności zaopatrzyć się w pakiety instalacyjne obu programów. Najlepiej będzie, jeśli po prostu podam odnośniki do stron obu projektów, a zatem:
- Cygwin: http://cygwin.com/
- Console2: http://sourceforge.net/projects/console/
Instalacja.
Console2 jest spakowany w zwykłym archiwum, więc wypakowujemy go gdziekolwiek na dysku - przy okazji polecam wykonanie jakiegoś skrótu, np. na pulpicie, żeby się wygodniej uruchamiało.
Z Cygwinem jest trochę więcej zabawy, ponieważ pakiet instalacyjny to tylko interfejs zawierający informacje o serwerach, z których będą ściągane docelowe dane. Uruchamiamy setup.exe, wita nas ekran informacyjny, który szybko pomijamy klikając przycisk “Dalej”. W kolejnym oknie mamy wybór źródła, z którego będą pobierane pakiety środowiska - polecam zaznaczenie pierwszej, domyślnej opcji “Install from Internet” - wtedy nie będziemy musieli się praktycznie o nic martwić. Ze stoickim spokojem klikamy więc “Dalej” i stajemy przed wyborem katalogu, w którym zostaną umieszczone wszystkie instalowane narzędzia. W moim przypadku jest to “D:\Cygwin”, ale możecie wybrać dowolny inny - nie testowałem tego, ale odradzałbym standardowy wybór większości użytkowników, czyli “C:\Program Files”, ze względu na spację w nazwie. Jeszcze tylko wybór opcji, dla jakich użytkowników będzie dostępna ta instalacja i możemy przejść do kolejnego okna, w którym wybieramy katalog “tempa”, w którym zostanie zachowana konfiguracja aktualnej instalacji Cygwina [potrzebna do ewentualnej aktualizacji / instalacji nowych pakietów]. Z oknem wyboru typu połączenia [skorzystałem z “ftp://ftp.easynet.be”] i serwera każdy powinien sobie raczej poradzić, wybór pakietów proponuję na razie zostawić, więc po kliknięciu któregoś już z kolei “Dalej” nie pozostaje nic innego jak zaczekać chwilę na ściągnięcie wszystkich danych i instalację samego środowiska.
Konfiguracja.
Voila! Cygwin i Console2 zainstalowane. Teraz najważniejsza część - konfiguracja. Nasze linuksowe środowisko jest, kolokwialnie mówiąc, “gołe”, więc wypadałoby zainstalować potrzebne narzędzia. Jeśli w poprzednim akapicie nie posłuchałeś[aś] mnie i wybrałeś[aś] już odpowiednie rzeczy - gratuluję - jeden akapit czytania mniej. ;] Tym jednak którzy posłusznie opuścili ekran wyboru paczek polecam teraz ponowne otwarcie instalatora setup.exe i przejście tych samych kroków, co w powyższym akapicie, ale należy zatrzymać się na ekranie konfiguracji programów [bardzo duża lista rozwijana]. W tym miejscu polecam dogłębne zapoznanie się z pozycjami dostępnymi do zainstalowania, ponieważ jest ich naprawdę sporo. Nie musimy się martwić o zależności między pakietami, ponieważ instalator, jak przystało na Linuksa, sam wykrywa zależności i zaznacza odpowiednie pozycje. Ze swojej strony polecę kilka narzędzi wartych uwagi:
- vim - jedni go kochają, inni nienawidzą, ale fakty są takie, że bez znajomości tego edytora tekstu nie możemy się nazywać prawdziwymi informatykami / programistami. ;] Absolutna podstawa w środowisku konsolowym.
- ssh - klient SSH pozwalający na łatwe łączenie się ze zdalnymi hostami.
- wget - konsolowe narzędzie pobierania plików [ogólnie danych] z internetu i innych źródeł.
- gcc - zestaw kompilatorów do różnych języków programowania [dodatkowe pakiety].
- nano - program dla lubiących "normalne" edytory tekstu, ale dalej w konsoli. ;]
- bash - moja ulubiona powłoka systemowa, oczywiście do wyboru, do koloru - csh, zsh, ksh, rxvt - wszystko jest, wystarczy zaznaczyć. ;]
W czym mi to pomogło?
Głównym problemem jaki został rozwiązany dzięki postawieniu Cygwina było to, że nie musiałem się w myślach "przełączać" pomiędzy poleceniami basha i ich windowsowymi odpowiednikami, dzięki czemu praca stała się o wiele bardziej wydajna. Zwykle robiąc coś w konsoli musiałem kombinować, jak kilka prostych i "normalnych" poleceń znanych z konsoli Linuksowej przełożyć na "dialekt" interpretera cmd.exe, a teraz znikła "warstwa abstrakcji" i mogę w pełni wykorzystać moc otwartych rozwiązań. Będzie to genialne rozwiązanie dla ludzi, którzy potrzebują czasem zrobić kilka rzeczy na Windowsie, a nie potrafią się obyć bez poleceń i programów dostępnych w Linuksie.Inną sprawą jest dostępność klienta SSH w Windows, której to funkcjonalności mi bardzo brakowało. Oczywiście jest PuTTY, ale on nie integruje zwykłej konsoli z funkcjonalnością SSH, tak więc nie ma możliwości interakcji z tym, co mamy na dysku. Jako programista ukierunkowany na strony / aplikacje internetowe bardzo często piszę i testuję projekt na lokalnym serwerze WAMP, a kiedy prace osiągną odpowiedni poziom zaawansowania, przerzucam kod na serwer, do czego bardzo przydaje się SSH - do tej pory korzystałem głównie z WinSCP ze względu na dostęp do graficznego interfejsu. ;]