Instaliranje softvera na GNU/Linux system-ima.

  • Začetnik teme Začetnik teme RiSK
  • Datum pokretanja Datum pokretanja
stanje
Zatvorena za pisanje odgovora.

RiSK

Primećen član
Poruka
682
::: Zbog sve cheshcih tema tipa 'kako instalirati program na Linuxu', mali tutorijal za novajlije :wink: :::

Softver na linuxu dolazi ili u obliku izvornog koda ili u obliku binarne arhive.

1. Instalacija programa iz izvornog koda

Prednosti ovakve distribucije programa su sledece: Imate citav kod aplikacije koji mozhete da menjate prema svojim afinitetima; Arhive sa izvornim kodom su obichno manje za download od binarnih kompajliranih verzija programa; Mozete ih kompajlirati na raznim sistemima; program je nakon kompajliranja na Vasoj masini optimizovaniji (citaj: brze radi) negoli program instaliran kao binarni paket. Mane su sledece: Za instalaciju je potreban odgovarajuci kompajler na sistemu na kom se program instalira (obicno je to gcc); Cesto su potrebne odgovarajuce biblioteke.

Izvorni kod programa se obichno nalazi u vidu neke arhive (tar.gz, tar.bz2, ...) Da bi se instaliralo program, potrebno je najpre raspakovati datu arhivu. To mozete uraditi iz X-a, koristeci neku aplikaciju za rad sa arhivama, obichno je to Ark ili FileRoller. One su dovoljno intuitivne da ce se svako ko je bar jednom video WinZip ili slichan program snaci u istom. Mozhete raspakovati arhivu i iz shell-a
$ tar xfvz ime_paketa

Nakon shto ste raspakovali arhivu, udjite u direktorijum u koji je raspakovana. Strogo je preporuchljivo u ovom trenutku prochitati sadrzhaj fajlova README i/ili INSTALL koji se obichno nalaze u tom direktorijumu. Tu su vishe-manje detaljno opisani nachini instalacije programa. Nadalje cemo se baviti samo 'standardnim' nacinom instalacije, tj. onom najceshcom varijantom za instaliranje softvera iz izvornog koda.

Nakon shto ste ushli u direktorijum u kom je raspakovana arhiva sa > $ cd /put/do/dira < ukucajte:
'confirure' je shell skripta koja se obichno nalazi u direktorijumu u kom je raspakovana arhiva sa izvornim kodom. Shta ona radi? Ova skripta ima dva glavna zadatka: prvo, proverava da li su na sistemu instalirane sve potrebne biblioteke i kompajleri koji su potrebni za kompajliranje izvornog koda. Ukoliko nisu, program ne mozhete kompajlirati! Drugo, ukoliko skripta configure nadje da su uslovi za instalaciju zadovoljeni, napravice fajl 'Makefile', ili vishe takvih fajlova (obicno za svaki poddirektorijum po jedan).
Makefile je fajl koji sadrzhi u sebi spisak 'targeta' i komandi koje se izvrshavaju pozivom tog 'target-a'. Npr. ukoliko postoji 'target' sa imenom nesto, kucanjem "make nesto" pozvacete niz naredbi koje su povezane sa ovim 'targetom'. Primetite da komanda make proverava samo Makefile koji se nalazi u TEKUCEM direktorijumu. Znachi ako se nalazite u direktorijumu /home/ja/instalacija pozivom "make nesto" izvrsicete niz naredbi koje su asocirane sa 'targetom' 'nesto' fajla /home/ja/instalacija/Makefile. Ukoliko ukucate samo "make" pozvace se podrazumevani (default) target! Makefile ima izuzetno slozhenu i korisnu sintaksu. Pogledajte 'manual pages' ako vas zanima vishe o ovome!
Ok. Kompajliranje programa je upravo 'default target' nasheg makefile-a. Znachi ukucajte:
Ovim cete iskompajlitati program. Tu je gotovo ceo posao zavrshen. Potrebno je samo iskompajlirane fajlove prebaciti na neko 'logichnije' mesto. Npr. negde unutar /usr direktorijuma. Za ovo postoji 'target' install u Makefile-u. Medjutim, obichan user najcesce nema ovlascenja da pishe po direktorijumima /usr, /bin, /etc (...) pa ovo moramo da uradimo kao korisnik koji ima pravo pisanja po potrebnim direktorijumima. To je obichno root (mada se mozhe dozvoliti i drugim korisnicima ovakva privilegija). Dakle, logujemo se kao 'super user':
Nakon unosa sifre imacemo pravo pisanja po navedenim direktorijumima. Pozivamo install iz Makefile-a:

I, to bi bilo to! Program je instaliran.... Uz put, u Makefile-u obichno postoje i 'target-i' clear i uninstal:

$ make clear --- uklanja binarne (kompajliranje fajlove iz direktorijuma u kom se nalazi source)
# make uninstall --- uklanja kompajlirane fajlove sa mesta na koje ih je kopirao 'make install'


2. Instalacija programa iz binarnih paketa

Binarni paketi su arhive iskompajliranih fajlova. Obichno sadrzhe neku skriptu za podeshavanje sistema prilikom instalacije. Sve shto treba uraditi prilikom instalacije je iskopirati odgovarajuce fajlove na odgovarajuce mesto. Medjutim, ovde mozhe doci do konflikta: moguce je da na sistemu ne postoje biblioteke koje su potrebne za rad programa koji zhelimo da instaliramo! Te biblioteke se obichno nalaze u nekom drugom binarnom paketu (koji je najceshce sastavni deo distroa :wink: ). U ovom sluchaju se kaze da prvi paket zavisi od drugog (za zavisnost se obichno koristi termin 'depedencies' shto ce Vas stalno pratiti ako instalirate binarne pakete, a narochito rpm :wink: ). Znachi ne mozete instalirati prvi paket ukoliko nije instaliran drugi. (To je odprilike ono shto proverava ./configure skripta na pochetku instalacije iz source-a)
Prednost instalacije binarnog paketa je u lakoci instalacije. Mane su sledece: obichno jedan binarni paket mozhete instalirati samo na jednoj distribuciji (chesto samo na jednoj verziji neke distibucije ili samo na odgovarajucoj verziji kernela!), gubi se na performansama u odnosu na instalaciju iz source-a.
Za instalaciju vecine paketa postoje grafichki front-endovi (npr. rpmdrake ili YaST), ali ce mo se mi zadrzhati na shellu. Postoji vishe vrsta binarnih paketa, a ovde cemo se osvrnuti na tri najrasprostranjenije: rpm, tgz i deb.

RPM Nekada skracenica od Red hat Package Mandatory, danas ih se Red Hat 'odrekao' pa je skracenica RPM Package Mandatory. Verovatno su najrasprostranjeniji i po broju distroa koji ih koriste i po broju paketa. Koriste se u Red Hatu i svim distroima koji su nastali iz njega (Mandrake, SuSE, Fedora, PCLinuxOS, ProtOS, Linuxo Live.....) Tehnichki su dosta slabi: programi instalirani iz rpm-a i iz source-a se ochigledno razlikuju po brzini, chesta je pojava 'broken dependencies' tj. deshava se da ne mogu da 'otkriju' od kojih paketa zavise. Tada je obichno na korisniku da sam ponadje zavisnosti, inache ne mozhe instalirati iste. Ova pojava je poznata kao 'rpm hell', i stvarno ume da izludi... Okusio sam ;)
Instaliraju se sa:
# rpm -ivh ime_paketa.rpm
Primetite da je dovoljno ukucati "rpm -i ime_paketa.rpm" ali gornja sintaksa sa switch-evima i, v i h omogucava ispisivanje vishe podataka tokom instalacije. Instalirani programi se uklanjaju sa:
# rpm -e ime_paketa
Za vishe informacija "rpm --help" i "man rpm".

TGZ su paketi koje koristi Slackware i distroi bazirani na njemu. Tehnichki to je samo arhiva kompajliranog softvera sa skriptom za instalaciju. NE PROVERAVAJU zavisnosti, tako da ce se uvek instalirati, ali nece raditi ukoliko zavisnosti nisu ispunjene :wink: Programi su optimizovani, i vrlo je mala razlika izmedju programa instaliranog iz tgz-a i sourcea.
Instaliraju se komandom
# installpkg ime_paketa.tgz
Najjednostavnije se brishu korishcenjem alata 'pkgtool', koji je, iako radi u text-modu, dovoljno intuitivan za upotrebu, ili komandom
#removepkg ime_paketa.tgz

DEB su paketi koji koristi Debian i distroi bazirani na njemu (Xandros, Linspire[ex Lindows], Mepis, Knoppix, LibraNet, ....) Tehnichni su najsavrsheniji. Programi instalirani iz njih imaju gotovo iste performanse kao i instalirani iz izvornog koda, a zavisnosti odlichno proveravaju. Velika prednost za korisnike Debiana je centralizovana baza skoro svih zhivih .deb paketa na netu, i apt-get sistem kojim se mogu oni downloadovati i instalirati.
Instalacija .deb paketa mozhe se izvrshiti komandom
# dpkg -i ime_paketa.deb
Za sklanjanje instaliranih paketa je najlakshe koristiti alatku 'dselect' koja omogucava lako manipulisanje .deb paketima iz shella.

Toliko za sad. Nadam se da Vam je instalacija programa na GNU/Linux sistemima korak blizha.
Unapred se izvinjavam na greshkama i na pola srpskoj a pola engleskoj terminologiji. To je nash stari problem....
 
lepo si to sastavio. ;) Ali, mislim da samo jedno fali ovoj listi. Je si li probao autopackage? Trebalo bi da bude nezavisan od distribucije.

E, da... Imam i jedno pitanje... Da li je moguće koristiti Debianove alatke za DEB pakete na drugim distribucijama? Imao sam na umu preuzimanje sourcea ovih alatki i njihovo prevođenje na svojoj Red Hat mašini... Da li bi instaliranje DEB paketa bilo moguće na taj način i na RHu?
 
Moguce je konvertovati formate alatkom ALIEN. Ja sam je koristio u knoppix-u 3.4. Alatka radi iz terminala, upisivanjem alien "ENTER" dobijas opcije. Konkretno ja sam *.rpm konvertovao u *.deb komandom
#alien -d ime_paketa.rpm
I u istom folderu dobijas paket *.deb.
Koliko se secam -r bi trebalo da konvertuje u rpm.
PoZdrAV :roll:
 
Hvala. Medjutim nasao sam jedan skript koji vrsi otpakivanje RPM i DEB paketa... Dobro... Nije to neko resenje, jer se ne omougcava laka deinstalacija... Ali, za neke osnovne potrebe moze posluziti... MC nudi veoma korisni funkciju kretanja po RPM arhivama, tako je da je moguce utvrditi zavisnosti ili procitati opis paketa... Sto olaksava ovakvo (polu-rucno) instaliranje.

Videcu na netu za Alien... Zvuci interesantno..
 
primedba za rpm instalaciju.
ako instalirate rpm pakete pre ili kasnije dozivecete da vam se paket ne instalira zbog zavisnosti od drugog paketa zato na Red Hat baziranim distribucijama imate alat yum koji brine o zavisnostima medju paketima uputstvo za yum pogledajte ovde

ako koristite SuSe koristite Yast na Mandrivi sam zaboravio kao se zove alat :oops:
 
stanje
Zatvorena za pisanje odgovora.

Back
Top