![]() | ![]() |
![]() |
| ![]() |
| ||||||||||||||||||
Instaliranje softvera u Linuxu (1)
Na ovo se naslanjaju problemi u vezi sa instaliranjem softvera. Umesto udobnog rada sa instalacionim čarobnjacima u Windowsu, kod Linuxa se instaliranje često obavlja kucanjem naredbi, a ponekad i kompajliranjem programskog koda. Upravo je ovo bio jedan od glavnih razloga zašto je autor teksta u svoje vreme imao prilično razvijen animozitet prema Linuxu. Istina je da savremene distribucije imaju grafičke klijentske programe za instaliranje softvera, ali i pored toga kursor miša često moramo zameniti kucanjem po tastaturi. Ipak, nakon kraćeg vremena, korisnici se navikavaju na osnovne CLI naredbe i one im „ulaze pod kožu”, tako da njihovo korišćenje predstavlja rutinu koja na neki način postaje i zarazna, pa se bez njih u radu oseća izvesna praznina. U ovom tekstu ćemo pokušati da objasnimo neke stvari u vezi sa instaliranjem programa u Linuxu i one su, pre svega, namenjene početnicima na toj platformi, ali će tu da bude i zanimljivosti za iskusne korisnike. Akcenat ćemo staviti na rad sa Debian/Ubuntu baziranim distribucijama, pošto su one danas najrasprostranjenije, ali ćemo se ukratko osvrnuti i na rad sa ostalim važnijim distribucijama. Alhemija sorsa Iako odavno nemamo naročitu potrebu za kompajliranjem kao načinom za instaliranje softvera, svakako je dobro poznavati kako se to radi. Ovo je posebno korisno kada želimo da instaliramo najsvežiju verziju nekog programa koja se još ne može naći u repozitorijumima. Dodatna pogodnost ovakvog pristupa je veliki stepen portabilnosti, malo veća brzina izvršavanja, mogućnost optimizacije, konfigurabilnost i mogućnost da se analizira funkcionisanje koda. Da bi se program kompajlirao, potrebno je da na računaru budu instalirani alati koji taj posao čine mogućim. Najčešće sve što nam je potrebno za kompajliranje dolazi sa distribucijom, a ukoliko to nije slučaj, neophodne programe instaliramo sa: sudo apt-get install build-essential Posle ovoga sistem ima sve potrebno (C/C++ kompajler, make, asembler, linker, osnovne biblioteke i alat za formiranje paketa) za početak procesa pretvaranja sorsa u izvršni program. Izvorni kod programa se obično distribuira unutar arhiva sa ekstenzijama .tar.gz, .tar.bz2 i tar.xz. Dakle, prvi korak je da raspakujemo njihov sadržaj: tar -xzvf sors_fajl.tar.gz Argument x znači da želimo da raspakujemo arhivu, z sugeriše da sadržaj bude procesiran kroz program gzip, v ispisuje ekstraktovane fajlove, dok f prethodi nazivu fajla. Slično je i u slučaju tar.bz2 arhiva: tar -xjvf sors_fajl.tar.bz2 jedino se razlikuje argument j koji arhivu procesira kroz bzip2. Za tar.xz arhive pišemo: tar -xvf sors_fajl.tar.xz Na kraju krajeva, moguće je raspakovati arhivu i pomoću drugih arhivatora, uključujući i one za rad iz grafičkog režima. Nakon ovoga prelazimo u direktorijum sa raspakovanim fajlovima i kucamo: ./configure && make && make install „./„ nam govori da je u pitanju direktorijum u kojem se trenutno nalazimo i obavezan je deo sintakse u ovakvim situacijama. Zatim sledi izvršenje configure skripta iz tekućeg direktorijuma, koji proverava da li sistem trenutno raspolaže svim sredstvima potrebnim za kompajliranje. U pojedinim scenarijima ovaj fajl može da bude odsutan. Sledeće dve naredbe – make i make install -završavaju posao oko instaliranja. Nažalost, retko se dešava da se instaliranje završi „iz prve”, pošto na sistemu obično nedostaju određene biblioteke potrebne za kompilaciju. Pokušaćemo da opišemo situaciju na konkretnom primeru instaliranja poznatog torrent menadžera Transmission. Nakon prvog startovanja ./configure, dobijamo sledeću poruku: No package ’libcurl’ found Pomenuti libcurl predstavlja biblioteku za podršku raznoraznim mrežnim protokolima. Postoji nekoliko načina da se instalira, a mi smo koristili OpenSSL varijantu biblioteke: sudo apt-get install libcurl4-openssl-dev Nakon ovoga ponovo pokrećemo ./config i dobijamo grešku: No package ’libevent’ found Libevent je biblioteka za obradu asinhronih sistemskih događaja i taj paket instaliramo preko: sudo apt-get install libevent-dev Paketi koji imaju „-dev” u nazivu, uglavnom sadrže zaglavlja C fajlova i statičke biblioteke. Nakon novog pozivanja ./configure, pojavljuje se dosta specifična greška iz koje ne možemo zaključiti koja biblioteka je u pitanju: error: Unable to find any supported crypto library. U takvim situacijama nam preostaje da se oslonimo na pretraživanje interneta i tamo smo saznali da se ono što nedostaje ispravlja instaliranjem biblioteke libssh (omogućuje upotrebu SSH protokola): sudo apt-get install libssh-dev Nakon što se uverimo da više nema grešaka, možemo krenuti sa izvršavanjem make i make install naredbi (ili sve zajedno, kao u primeru sa početka), što će nakon par minuta rezultirati izvršnom verzijom programa. Ponekad će biti potrebno da make install izvršavamo uz pomoć naredbe sudo. Da bi sebi olakšali život, prilikom instaliranja najnovije verzije nekog programa putem sorsa, pod uslovom da se njegove starije verzije nalaze u okviru dostupnog repozitorijuma, možemo se poslužiti malim trikom kucajući: sudo apt-get build-dep neki_program Sistem od nas traži da prihvatimo instalaciju zavisnih fajlova koji će stvoriti preduslove da se željeni program kompajlira. Da se razumemo, instaliranje programa preko sors koda ne spada u najjednostavnije poslove u kosmosu, ali nije ni naročito teško. Ceo posao se svodi na instaliranje nedostajućih biblioteka nakon izvršenja ./config skripta. Svaki računar ima instalirane različite biblioteke, pa tako nije moguće znati tačnu recepturu i broj fajlova koje treba da instaliramo da bi uopšte došli u poziciju da kompajliramo izvorni kod. Generalno, što više kompajliramo sors, to će više biblioteka biti prisutno na računaru. Nakon stečenog iskustva sa nekoliko uspešno instaliranih naslova, sve postaje mnogo jednostavnije i pretvara se u rutinu. Odmah da upozorimo, kompajliranje zahteva dosta vremena i dosta prostora na disku. Proces može generisati po više gigabajta pratećih fajlova. Razni programi imaju razne zahteve, pa se najtoplije savetuje da pogledamo u neki od pratećih tekstualnih fajlova koji dolaze kao deo sors arhive i koji se najčešće zovu INSTALL ili README, pošto ćemo u njima pronaći instrukcije potrebne za uspešnu instalaciju. Binarni paketi Pomenuti Transmission je relativno mali program čija arhiva zauzima oko tri megabajta, pa stoga nekoliko minuta za njegovo instaliranje ne predstavlja problem. Problemi nastupaju kada sors kod počinje da se meri desetinama i stotinama megabajta. Takvi programi zahtevaju dosta više vremena, pa proces zna da potraje i po nekoliko časova. Zbog toga su još davno u upotrebu uvedeni takozvani binarni paketi (binary packages) koji u sebi sadrže unapred kompajlirani kôd, zajedno sa još nekim propratnim fajlovima. Osim ubrzavanja procesa, oni olakšavaju nadogradnju novih verzija i uklanjanje programa koje ne nameravamo koristiti.
Ukoliko imamo neki paket sa .deb ekstenzijom (podrazumeva se da odgovara našem hardveru), instaliramo ga sa: dpkg -i paket.deb Deinstalacija se vrši sa: dpkg -r paket.deb Jasno je da ovde parametar -i predstavlja install, a -r je remove. Možemo ih pisati kao --install i --remove. Tabela sadrži spisak nekih od najkorisnijih oblika upotrebe naredbe dpkg. Ove komande su od koristi kada instaliramo program koji se nalazi na lokalnom disku. Inače se ne koriste naročito često. Program dpkg ne može da rešava pitanja zavisnosti paketa, pa je u tu svrhu nakon njega potrebno izvršiti: sudo apt-get -f install
Iako je .deb format paketa zbog Ubuntua i drugih distribucija baziranih na Debianu danas najpopularniji, on nije i jedini predstavnik svoje vrste. Solidan deo distribucija za instaliranje koristi pakete sa ekstenzijom .rpm. RPM Package Manager je potekao sa platforme Red Hat Linux i danas je u upotrebi od strane distribucija kao što su OpenSUSE, CentOS, Fedora, PCLinuxOS, Oracle Linux i mnoštva drugih. Na sreću, lako možemo izvršiti konverziju iz jedne vrste paketa u drugu, a to se postiže korišćenjem CLI programa Alien. Ukoliko želimo konvertovati neki fajl iz .rpm formata u .deb, kucamo: sudo alien paket.rpm Alien izvorno prevodi rpm pakete u deb oblik, pa mu nije potrebno zadavati dodatne parametre. U slučaju da želimo postići suprotno, tj. prevesti deb paket u rpm, sintaksa je sledeća: sudo alien -rcv paket.deb
Da bismo konvertovali .deb pakete u format pogodan za upotrebu sa Pacmanom, koristimo sledeću naredbu: debtap paket.deb
Igor S. RUŽIĆ |
| ||||||||||||||||||||
![]() | |
![]() | ![]() |
Home / Novi broj | Arhiva • Opšte teme | Internet | Test drive | Test run | PD kutak | CeDeteka | WWW vodič • Svet igara Svet kompjutera Copyright © 1984-2018. Politika a.d. • Redakcija | Kontakt | Saradnja | Oglasi | Pretplata • Help • English | |
SKWeb 3.22 |