Mając windows’a zastanawiałem się: dlaczego muszę tyle czekać na kolejne wydanie danego programu czy sterowników?
Czy nie ma na system windows czegoś takiego, aby można było posiadać najnowszą wersje programu np. wersja beta lub alpha – od czego coraz częściej się odchodzi?

Wiem, że jest 🙂
Ale zrozumienie to kosmos, a program graficzny to mały potworek, którego nie można zrozumieć.

Poznając system linux, trafiłem wiele razy na pewne zwroty, których nie znałem. Wiele osób też mówiło o testach wersji rozwojowych, alpha i beta – jak by oni posiadali dany program na dysku. Jako początkujący długo odpychałem to od siebie, bojąc się kosmicznie trudnego korzystania z tejże technologi – jako użytkownika windows – kosmicznej technologi.
Bo przecież jak inaczej nazwać proces, że ja posiadam program, który jest dopiero tworzony, a ja z niego korzystam – kosmos.

Ale po jakimś czasie się przemogłem i zacząłem czytać o svn, git i hg.
I jak by mi ktoś strzelił w twarz – dosłownie.
To ja tyle czasu siedziałem na różnych programach mając możliwość testowania ich, poznania i normalnego (lub nie) korzystania z nich – przy okazji pomóc twórcom i zgłaszać błędy. To się nazywa, żyć w nieświadomości i nie wiedzy…

I tak naprawdę to chyba spotkanie z Arch’em zapoczątkowało to, że uparłem się i postanowiłem „nauczyć się” korzystania z kontroli wersji, czyli git, svn czy hg.
Kiedy odkryłem jakie to proste, nie wiedziałem – czy mam się śmiać z własnej głupoty, a może płakać nad sobą i zacofaniem jakie pozostało mi po użytkowaniu windows. A może miałem się załamać mając w pamięci to, że masę użytkowników windows’a żyje jak takie baterie dla maszyn jak w matrix.
To pokazało mi, jak bardzo windows więzi ludzi, ogranicza ich i skazuje na jeden właściwy tok myślenia, jak i korzystania z komputera. Takie w tamtym czasie miałem poczucie, że poznając coraz bardziej linux’a uwalniam się z jarzma ślepoty i zaślepienia. Jak i, jak bardzo windows mnie zniewolił i ograniczył.
To wszystko można porównać do oddychania: windows to taki respirator, który dawkuje nam tlen i decyduje za nas: jak mamy oddychać i w jakim tępię – czyli robi za nas wszystko – my mamy tylko przyjąć tlen. Linux to takie wyciągnięcie sobie tej rurki i zaciągnięcie się powietrzem pełną piersią, jak chce i kiedy chce, a nawet mogę wstrzymać oddech – bo mam taką ochotę. 🙂

Ale wracając do tematu…
Jak korzystać z najnowszych wersji programów na system linux (bo na windows tak naprawdę, nie ma czegoś takiego).
Sprawa jest prosta: potrzebujemy terminal i cierpliwości 😉
Wiele programów systemu linux (prawie większość) udostępnia możliwość korzystania z wersji rozwojowej, czy w fazie budowania/tworzenia. Dzięki temu możemy jak już napisałem, pomóc twórcą zniwelować błędy 🙂 a to już udzielanie się na rzecz innych, jak i siebie. Przecież każdy chce, aby dany program był lepszy dla niego w korzystaniu i użytkowaniu, prawda.

Jak korzystać z svn?
Nie będę tutaj wam marudził, czym jest svn – bo tu nie o to chodzi, co jest czym – ale jak z tego skorzystać, jak dany program daje nam taką możliwość.

Aby korzystać w systemie z tego co opiszę poniżej potrzebne nam będą paczki: subversion, git, mercurial – już nie wspomnę o paczkach z kończeniem -dev, czy potrzebnych do kompilacji 🙂
Aby pobrać pliki do kompilacji i stworzenia sobie programu (aby go zainstalować), wydajemy polecenie:
svn co [adres]
[adres] – to adres serwera, na którym znajduje się wybrana wersja rozwojowa/stabilna programu, np.
svn co http://tint2.googlecode.com/svn/trunk

Po pobraniu odpowiednich plików, czyli wszystkiego. Przechodzimy do kompilacji…
Nie będę pisał jak się wykonuje kompilację, bo tekst by musiał być jeszcze dłuższy. A dla każdego rodzaju programu, kompilacja wygląda trochę inaczej. W razie pytań, odpowiem w komentarzu.
Co zrobić, kiedy o danym programie przypomnimy sobie po trzech dniach? Nic trudnego… wykonamy sprawdzanie wersji programu 🙂 Tylko tym razem, nie będzie już nam potrzebny adres.
Wystarczy wejść do katalogu gdzie znajdują się wszystkie pliki programu (tam gdzie pobraliśmy pliki svn, a nie tam gdzie program został zainstalowany) i wydajemy polecenie:
svn up
To polecenie dokona nam aktualizacji wersji do najnowszej. I znowu wykonujemy kompilację i instalację, a na dysku znajdzie się najnowsza wersja programu.

Wielu może nie wiedzieć, że taki program zazwyczaj ma możliwość usunięcia go z dysku, np. kiedy chcemy sobie zainstalować na czysto program z repo.
W katalogu gdzie mamy pliki pobrane svn wydajemy polecenie: sudo make uninstall

Podobnie jest w git – następcą svn.
Aby pobrać dany program w wersji rozwojowej wydajemy polecenie:
git clone [adres]
np.
git clone git://gitorious.org/kadu/kadu.git
(adres dla git zaczyna się od git, choć może być zastąpionym http:// i kończy się .git)

Aby wykonać aktualizację plików/programu.
(w katalogu gdzie znajdują się pliki pobrane z git)
git pull

I np. kadu posiada odnośnik do kontroli wersji – chodzi o jabber’a. Aby komunikator mógł się właściwie skompilować, musimy podłączyć pod wersję git odnośnik. Więc wykonujemy:
git submodule init
git submodule update

Pierwsze polecenie inicjuje odgałęzienie, a drugie je aktualizuje i pobiera.

Teraz możemy zacząć kompilację programu i instalację 🙂

Jeśli chodzi o hg (mercurial) – to cała procedura obywa się tak samo jak w przypadku git’a. Różnica jest w adresie 🙂

=====================================
Jak widać, korzystanie z kontroli wersji i najnowszych wersji programu w systemie linux to tylko chęć nauczenia się kilka poleceń i zwrotów.
Warto pamiętać, że najnowsze wersje z svn, git, czy hg są często lub mogą być – niestabilne i nie działać poprawnie. Czasami twórcy potrafią w ciągu jednego dnia zmienić połowę programu, czy zamienić w programie wszystkie ikonki.

Ja tylko chciałem pokazać, wam że korzystanie z najnowszych programów w wersji rozwojowej to nic trudnego, czy skomplikowanego.
I chyba nie muszę pisać, że polecenia wydajemy w terminalu wchodząc do danego katalogu, czy w katalogu domowym – bo dla mnie to jest oczywiste.

Jednak uwaga. Po zainstalowaniu wersji z repo danej dystrybucji, katalog z plikami pobranymi z svn czy git możemy skasować – aby nie zajmował nam miejsca na dysku.

I muszę tu napisać coś odnośnie dystrybucji, bo tekst nie był by pełny.
Jedyną dystrybucją, która w dużej mierze opiera się na wersjach rozwojowych jest arch linux. Posiada on masę programów w AUR, gdzie sami użytkownicy tejże dystrybucji tworzą nowe odniesienia do nowych wersji, programów a nawet sterowników czy plików. I np. w Arch mamy gajim-hg, który zawiera najnowszą wersję, którą pobieramy w ramach systemu z hg. Oczywiście my nic nie robimy, ponieważ ktoś już stworzył plik, który wszystkim kieruje. My tylko wydajemy polecenie chęci instalacji danego programu w danej wersji.
Wiem że to pokręcone, ale sami sprawdźcie, wchodząc na http://aur.archlinux.org/ i wyszukajcie sobie program który używacie. Jeśli koło jego nazwy znajdzie się -svn, git lub hg – to będziecie wiedzieć jaka to jest wersja 🙂
W ubuntu podobne założenie ma spełniać ppa, ale jak wiemy – tam od tego, co znajduje się w repo danego użytkownika zależy od tego, jak dana osoba angażuje się w sprawdzanie i kontrolowanie wszystkiego.
W arch’u po instalacji, to program instalacyjny będzie zajmował się odświeżaniem za każdym razem naszej paczki i svn, git czy hg – my tylko musimy wydać zgodę, a wszystko zrobi się za nas 🙂

Innym dystrybucją daleko do takiego udziału społeczności w tym, aby każdy miał wybór: wersja stable z repo, czy może wersja rozwojowa z AUR, a do tego ta najnowsza, którą sami sobie sprawdzamy kiedy chcemy – przy okazji omijając procedurę kompilacji i instalacji na własną rekę – bo wszystko już zostało tak zrobione, że my o kompilację nie musimy się martwić. Wielu użytkowników tworzy wszystko tak, że i zależności nam się zainstalują, bo autor zaznaczył: co będzie nam potrzebne 🙂

==============================
Więc pozostaje mi, po tym dość długim wprowadzeniu was w świat svn, git i hg – kontroli wersji, pozostawić z tym wszystkim, abyście sami zadecydowali i sprawdzili – jak wiele czasami można zyskać posiadając najnowszą wersję programu czy sterownika 🙂 a inni muszą cierpliwie czekać.
Problemem może tu się okazać – kompilacja, której nie każdy podoła – dlatego każdy powinien się zastanowić czy chce się w to „bawić”.
I chyba nie skłamię, jak napisze – że na korzystanie z svn, git i hg potrzebna czasami naprawdę dużo miejsca na dysku. Ponieważ, niektóre programy mogą posiadać około 1GB danych do pobrania (np. kadu) – już nie wspomnę o kompilacji i zależnościach…

Ale uważam, że warto się zainteresować tym co napisałem, ponieważ niejednokrotnie może to nam pomóc niż coś zepsuć 🙂

Advertisements

3 myśli na temat “najnowsza wersja programu w systemie – bez czekania na jej wydanie

  1. Super sprawa. Zawsze się zastanawiałem co to te całe SVN, GITy..
    Fajny poradnik. Życzę Ci więcej takich wpisów 😉

    Mam jeszcze pytanie – jak szybko u Ciebie trwa proces jakiejś kompilacji? I czy spotkałeś się z większymi problemami?

    Lubię to

    1. To zależy od programu. np. kadu kompiluje się dobrych kilkanaście minut, a jak coś robię, to czasami było i 20 min. Zależy czym obciążam procesor jeszcze 🙂
      I jeśli chodzi o samą kompilację to problemów nie mam, bo wszystko się dzieje samo. Jeśli chodzi o proces przed kompilacją, no to zawsze pojawia się problem z zależnościami 🙂 ale jak ktoś ma internet to sobie poradzi 😉

      Lubię to

      1. Super. Mi kiedyś udało się skompilować jeden program (GRASS), ale to chyba 4 czy 5 godzin zajęło hehe. Nie wiem dlaczego. Później już nie próbowałem.
        Może jak będę miał trochę czasu, to zobaczę o co kaman 😉

        Lubię to

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s