19.05.2015.

Distribuiranje slobodnog softvera





                               
                                    Tekst je objavljen u LiBRE! časopisu broj 34. 
                                    Autor je Nikola Hardi.
                        



Povod za pisanje članka

Svi smo se mi, kao novi korisnici slobodnog operativnog sistema našli u situaciji da nam je neko na forumu, četu ili nekom sličnom mestu predložio da instaliramo pojedine pakete kako bismo rešili svoje probleme. Još češće smo se našli u situaciji da i sami zaključimo da treba da instaliramo dodatni softver na naš sistem. Neiskusni korisnici, koji su do tada uglavnom koristili Majkrosoft Vindouz operativne sisteme, navikli su se da uputstva za instalaciju i softver traže širom interneta, ali u svetu slobodnog softvera to funkcioniše malo drugačije. Strogo i izričito vam savetujemo da softver
instalirate isključivo iz zvaničnih riznica, putem softverskog centra ili paket menadžera. Druge mogućnosti koje se nekada mogu tolerisati su instalacija pomoću odgovarajućih paketa ( . deb, . rpm ) ili dodavanjem riznica (recimo PPA u slučaju Ubuntua). Poslednja mogućnost kojoj možete da pribegnete je instaliranje iz izvornog koda. Softver instalirajte iz zvaničnih riznica ili repozitorijuma (eng. software repository), osim kada imate potrebe za specifičnom verzijom nekog parčeta softvera i znate šta tačno radite i koju odgovornost time preuzimate.

Riznice softvera i ostale čudne reči

Kada se softver instalira pomoću nekog upravljača paketa ( apt, yum, pacman, yaourt i emerge), preuzima se iz zvaničnih riznica. Riznice su mesta na internetu gde su smešteni softverski paketi koji su provereni, testirani i koji će sigurno raditi u vašem sistemu. Dakle, proces instaliranja na primeru Ubuntua izgleda ovako:
• Softverskim centrom ili drugim alatom se izvršava pretraga paketa koji su dostupni u riznicama;
• Izabrani paket se preuzima iz riznice, uključujući sve dodatne pakete koji su potrebni za njegov rad;
• Vrši se provera da li su svi paketi ispravno preuzeti, kako bi se izbeglo instaliranje neispravnih paketa;
• Vrši se provera autentičnosti preuzetih paketa, proverava se da li je odgovorno lice potpisalo paket koji je preuzet;
• Instaliraju se sve „zavisnosti” (paketi koji su neophodni za rad) i željeni paket;
• Svi paketi se dodaju na listu instaliranih paketa kako bi upravnik paketima mogao da vodi računa o njihovim verzijama i izvrši kasniju nadogradnju.
U prethodnim redovima je upotrebljeno nekoliko termina kao što su softverski centar, paket, potpis, upravnik paketima i drugi, koje je možda potrebno razjasniti.

Softverski centar uglavnom predstavlja grafički alat za pretragu i upravljanje softverom na sistemu, odnosno samo grafički interfejs koji u pozadini poziva upravnik paketima. Upravnik paketima (eng. package manager) je najčešće konzolni alat ili skup alata za pretragu, instaliranje, nadogradnju i uklanjanje paketa. Paket je skup datoteka neophodnih za instaliranje i ispravan rad softvera. Potpisi i kontrolne sume su deo paketa za proveru integriteta i autentičnosti preuzetog sadržaja. Zavisnost je termin koji ukazuje da jedan paket ne može da bude instaliran pre drugog paketa jer se oslanja na njegove funkcionalnosti. Pod terminom zavisnosti podrazumevaju se sve veze koje mogu biti zamršene, ciklične, rekurzivne ili nezgodne na neki drugi način.

Šta su tačno paketi?

Paket je arhiva koja sadrži softver preveden u izvršni oblik koji odgovara vašem sistemu. Pored toga, paketi sadrže informacije o svom integritetu, poput kontrolnih suma i digitalnih potpisa. Unutar paketa se mogu nalaziti i uputstva, informacije o autoru paketa, autoru programa i pomoćni alati i dodatne procedure koji su neophodni za ispravan rad softvera koji taj paket sadrži. Slobodni operativni sistemi se na osnovu distribuiranja softverskih paketa mogu podeliti na „binarne” (eng. binary based) i „bazirane na izvornom kodu” (eng. source based ). Kod binarnih distribucija se unutar paketa nalaze već prevedene datoteke u izvršnom obliku, koje se potom samo smeštaju na odgovarajuće mesto u sistemu i odmah mogu da se koriste. Kod distribucija baziranih na izvornom kodu kao što je Džentu (eng. Gentoo ), u paketu se nalazi lokacija odakle izvorni kod treba da bude preuzet kao i skripta (spisak naredbi) kojim se taj izvorni kod prevodi u izvršni oblik i potom instalira. Upravnik paketa ume da preuzme i proveri preuzete podatke, a potom i da izvrši sve potrebne korake kako bi softver bio pravilno instaliran.

Jednostavnije instaliranje

U doba kada su pravi hakeri noćima instalirali nov softver i sami pisali upravljačke programe (eng. driver ) za svoje uređaje, softver je gotovo uvek bio instaliran iz izvornog koda, bez upravnika paketima. Gotovo svi paketi i programi se oslanjaju na neke druge biblioteke, programe ili pakete, iz čega sledi da je moguće formirati stablo zavisnosti, a potom i spisak i redosled svih paketa koje je potrebno instalirati. Uveravamo vas da nije tako lako pogoditi redosled instaliranja i odgovarajuće verzije za sve zavisnosti. Zato upravnik paketima to radi za vas.

Automatske nadogradnje

Velika prednost ovakve šeme distribuiranja paketa je u tome što postoje ažurni spiskovi instaliranih paketa. Upravljači paketima redovno preuzimaju spiskove aktuelnih verzija paketa u riznicama i porede verzije. Na zahtev ili automatski, moguće je proveriti da li postoje nadogradnje za instalirane pakete i preuzeti ih. Sigurni smo da ne želite da u crnoj svesci imate spisak ručno instaliranih paketa i njihovih verzija, a još manje da nekoliko puta mesečno obiđete sve sajtove i poredite najnovije verzije sa onima koje imate zavedene u svom spisku.

Bezbednost

Digitalno potpisivanje je procedura koja je prisutna i van konteksta distribuiranja slobodnog softvera. Reč je o procesu u kojem se za određene podatke generiše odgovarajući potpis pomoću ključa. Ono se bazira na konceptu asimetričnog šifrovanja i postoji uvek par koga čine javni i privatni ključ. Vlasnik ključa na osnovu podataka u paketu i svog privatnog ključa generiše odgovarajući potpis. Na osnovu preuzetih podataka i javnog ključa može se proveriti da li preuzeti podaci (u ovom slučaju paket) odgovaraju potpisu, tj. da li je neko usput promenio deo podataka. Kontrolne sume proveravaju da li je sadržaj ispravno preuzet. Potpisi garantuju i autentičnostpodataka. Ustaljeno je mišljenje da su slobodni operativni sistemi generalno bezbedniji od onih drugih. Međutim, ovo nije sasvim tačno jer svaki sistem ima svoje rupice, bubice, gremline i viruse. Razlika je u tome što su slobodni operativni sistemi vrlo neprijatno okruženje za širenje takvih računarskih bolesti. Mehanizmi kojima se softver distribuira i instalira su ključni za to. Pre nego što ovaj članak bude završen i pre nego što ponovimo šta sve loše može da se dogodi ako ne pazite kako i odakle instalirate softver, evo jednog teorijskog primera kada nešto pođe po zlu.

• Neiskusni korisnik želi da instalira program za video razgovore;
• Pretražuje internet u nadi da će pronaći verziju za Linuks i u mračnom ćošku interneta pronalazi nekakvu verziju;
• Instalira je i ubrzo primeti da njegov računar više ne radi kako treba;
• Korisnik zaključuje da je to delo zlonamernog programa i da slobodan softver i nije tako bezbedan.
Evo šta je zapravo moglo da se dogodi. Kada je korisnik preuzeo paket sa nepoznate lokacije, mogao je da preuzme verziju koja je izmenjena tako da u sebi ima bezbednosne propuste raznih vrsta (udaljeno upravljanje računarom, preuzimanje podataka sa računara i brisanje datoteka). Druga, blaža i više verovatna mogućnost je da je preuzet ispravan paket, ali ručnom instalacijom nije dodat na spisak instaliranih paketa i zbog toga nije bio ažuriran. U međuvremenu je otkriven bezbednosni propust, a nadogradnja koja rešava problem nije instalirana.

Imajte na umu

Pre nego što se opet nađete u situaciji da se pitate kako da instalirate neki paket, program ili bilo kakav drugi deo softvera, imajte na umu da će upravnik paketima uraditi sledeće stvari umesto vas, kao i stvari koje bi trebalo vi da uradite umesto upravnika paketima.
• Proveriti autentičnost lokacija odakle je paket preuzet;
• Kontrolnom sumom proveriti da li je paket ispravno preuzet;
• Proveriti potpis paketa kako bi se isključila mogućnost da je neko presreo preuzimanje i tako podmetnuo zlonameran kod;
• Razrešiti potrebne zavisnosti (ponoviti prethodne stavke za sve zavisnosti);
• Ispratiti proceduru za ručno instaliranje;
• Redovno proveravati obaveštenja o otkrivenim bezbednosnim propustima i dostupnim nadogradnjama.

Jednostavnije je pokrenuti softverski centar ili napisati sudo apt-get install, zar ne?

https://libre.lugons.org/index.php/broj-34/