User Tools

Site Tools


freebsd_-_portovi_i_paketi

Zgodno upakovani i brzi sistemi instaliranja i održavanja softvera

IAKO SAM U PRVOM BROJU REKAO DA CE SE PRICA O BSD SISTEMIMA NASTAVITI PRIZIVANJEM DEMONA NA NAŠ KOMPJUTER OVOG PUTA CU SEBI DATI SLOBODU I NAPRAVITI MALI IZLET U SVET PORTOVA I PAKETA (NEŠTO BEZ CEGA JE NAŠ FANTAZIJSKI PUT BESMISLEN). MOŽDA CE NEKOME OVA DIGRESIJA IZGLEDATI CUDNO ALI JE CINIM ZBOG ONIH KOJI NEMAJU ISKUSTVA SA BSD SISTEMOM. IZ ISKUSTVA ZNAM DA LJUDI NASTAVLJAJU SA INSTALIRANJEM PROGRAMA NA LINUKS NACIN IAKO SU U BSD-U. DA SE TO NE BI DEŠAVALO NAŠA PRICA CE NA TREN BITI ZAUSTAVLJENA (PRINCEZA CE MORATI DA CEKA … A I AKO JE POJEDE ZMAJ NIJE VAŽNO, IONAKO NE TRAGAMO ZA NJOM).

BSD sustemi su opskrbljeni velikom kolicinom programa potrebnih za svakodnevni rad. Pored onih prebacenih baš za BSD tu je i mogucnost emulacije Linuksa tako da ce vam skoro svi programi koje imate za svoj Linuks raditi na nekom od *BSD sistema. Da bi ste bili valjano informisani o svežem softveru za našeg demona predlažem da redovno posecujete FreshPorts sajt. U trenutku pisanja ovog teksta FreeBSD je imao 12369 prijavljenih programa na FreshPorts sajtu.

FreeBSD nudi dva podjednako dobra sistema instaliranja i održavanja softvera. Jedan predstavlja BSD pakete (jedna datoteka sa vec kompajliranim programom koji se samo raspakuje na odgovarajuce mesto) i portove (skup datoteka koje imaju za cilj automatizovanje procesa instalacije).

Kako se to radi na UNIX-u?

Ako ste ranije koristili UNIX® ili neki UNIX® slican operativni sistem znate da se procedura instaliranja softvera ugl. svodi na:

  • preuzimanje softvera u obliku izvornog koda ili binarnog paketa
  • raspakivanje softvera koji obicno dolazi kompresovan
  • lociranje pomocnih datoteka koje ce nam reci pojedinosti vezane za instalaciju softvera
  • ukoliko je softver distribuiran u obliku izvornog koda konfigurisanje i kompajliranje istog

Sve ovo važi samo za slu ajeve da je konfigurisanje prošlo kako treba. Ovo nije preporucen nacin instaliranja softvera za *BSD sisteme. Iako medju vama možda ima dosta tradicionalista, dve tehnologije koje donosi FreeBSD ce vam olakšati život.

Kao što sam ve rekao, FreeBSD nudi dve tehnologije za održavanje softvera na va em ra unaru. Prvi je sistem paketa - jedna datoteka sa vec kompajliranim programom koji se samo raspakuje na odgovarajuce mesto. Drugi je sistem portova - skup datoteka koje imaju za cilj automatizovanje procesa instalacije.

I paketi i portovi imaju sjajno rešen problem zavisnosti softvera od drugih paketa. Koliko vam se puta desilo da po nete instalaciju nekog programa na Linuksu i da vas komanda .-configure obavesti da program nije u stanju da se instalira jer mu nedostaje neka biblioteka ili neki drugi program? I kad vi jednom instalirate potreban program i po nete ponovo instala c - ciju željenog programa dobijete obaveštenje da opet nešto fali. Bez obzira koji sistem instalacije da koristite ovakvih problema ne ete imati jer su i paketi i portovi c podešeni da prvo instaliraju sve potrebne datoteke pa tek onda željeni program.

Sada se neko može pitati zašto bi koristio dva na ina prizivanja istog softvera. c Zar se sve ne može izvesti korišcenjem jedne cini? Naravno da može, medjutim, sve cini u sadržane u knjizi Port Daemonica imaju svoje prednosti i mane. Navešu neke od njih a vi sami odlucite koje cete cini koristiti.

Paketi

  • Kompresovana i vec kompajlirana datoteka je po pravilu manja te ju je moguce brže preuzeti sa Interneta (ovo je zgodno ako ste u žurbi jer vas ganja gomila pobesnelih gnoma).
  • Nema potrebe ponovo kompajlirati kod što je zgodno za vece aplikacije tipa GNOME, KDE i sl.
  • Ne zahevaju poznavanje procesa potrebnih za kompajliranje softvera na FreeBSD-u.

Portovi

  • Paketi se obicno kompajliraju sa minimumom ukljucenih opcija programa da bi radili na što je vecem broju sistema. Kada koristite portove u stanju ste da sami odredite koja ce se od mogucnosti programa aktivirati a koja ne.
  • Neke od nama dragih aplikacija imaju zabranu distribuiranja u binarnom obliku te su portovi jedino rešenje.
  • Portovi su zgodni za sve one koji nemaju poverenja u binarne pakete jer vole da vide šta im se sve to instalira na racunar.
  • Ukoliko koristite neke posebne zakrpe za program bice vam potreban izvorni kod.

Koju cete tehniku bacanja cini vi koristiti je vaša licna stvar. Licno sam ljubitelj portova jer paketi umeju ponekad da daju nestabilan softver… Pored toga, volim da mi se satima preko ekrana slivaju zeleni znaci i slova pri kompajliranju…

Gde je ono što mi treba?

FreeBSD svoju listu raspoloživog softvera drži na jednom mestu: /usr/ports/. Kada jednom prizovete daemona prošetajte kroz taj direktorijum i bicete prijatno iznenadjeni. Sav softver je lepo sredjen po kategorijama tako da cete moci da nadjete više mogucnosti ukoliko ne znate koju aplikaciju da upotrebite.

Ukoliko pak tacno znate šta vam treba (recimo Beep Media Player) postoji nekoliko nacina da saznate u kojoj se kategoriji nalazi željeni softver. Ukoliko želite da preko Mreže saznate koja je najnovija verzija tog programa za FreeBSD i u kojoj kategoriji se ona nalazi potrebno je da posetite gore navedeni www.freshports.org i da u polje za pretraživanje ukucate ime programa. Dobicete informaciju o poslednjoj verziji programa, komandi potrebnoj da se isti instalira i naravno, lokaciji programa.

Ukoliko ste se prošetali do /usr/ports/ imate dve mogucnosti na raspolaganju. Prva je komanda “whereis”. Ukoliko datu komandu primenimo da bi smo našli xcdroast dobicemo sledeci rezultat:

 moyra# whereis xcdroast
 xcdroast: /usr/ports/sysutils/xcdroast

Druga mogucnost zahteva da budete baš u direktorijumu ports. U pitanju je komanda “make search name=” koja ce pretražiti dati direktorijum i dati vam listu sa nekim dodatnim informacijama:

moyra# make search name=xcdroast
Port: xcdroast-0.98.a.15_2
Path: /usr/ports/sysutils/xcdroast
Info: Another X11 frontend to mkisofs/cdrecord
Maint: oliver@FreeBSD.org
B-deps: autoconf-2.53_3 expat-1.95.8 fontconfig-2.2.3,1 freetype2-2.1.7_4 gdk-pixbuf-0.22.0_3
gettext-0.14.1 glib-1.2.10_11 gtk-1.2.10_12 jpeg-6b_3 libiconv-1.9.2_1 m4-1.4.1 perl-5.8.6_2
pkgconfig-0.15.0_1 png-1.2.8_1 tiff-3.7.1_2 xorg-libraries-6.8.1_1
R-deps: cdrtools-2.01 expat-1.95.8 fontconfig-2.2.3,1 freetype2-2.1.7_4 gdk-pixbuf-0.22.0_3
gettext-0.14.1 glib-1.2.10_11 gtk-1.2.10_12 jpeg-6b_3 libiconv-1.9.2_1 perl-5.8.6_2 pkgconfig-0.15.
0_1 png-1.2.8_1 tiff-3.7.1_2 xorg-libraries-6.8.1_1

Magija paketa

Ukoliko se odlucite da kao borbenu magiju na našem putu koristite pakete potrebno je da znate nekoliko trikova. Pakete možete sami preuzeti sa Interneta i dodati jednostavnom komandom pkg_add ime_paket.tbz/tgz. Ukoliko datom programu nedostaje neka biblioteka bicete obavešteni pa cete je morati dodati. Druga mogu nost je komanda

#  pkg_add -r ime_paketa.tbz/tgz

Ova komanda ce preuzeti najnoviji paket sa Interneta kao i sve potrebne pakete. Ukoliko želite sami da dodajete pakete najsvežiji softver cete uvek moci da nadjte na adresi:'ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages/.'

FreeBSD generiše informacije o instaliranom sofveru u direktorijumu / var/db/pkg/. Tu cete u svakom trenutku moci da vidite šta je sve instalirano na vašem racunaru. FreeBSD sam generiše listu bez obzira da li koristite pakete ili portove. Ipak, moj vam je iskren savet da po instalaciju bilo kog softvera izvršite komandu

# pkgdb -F

koja ce za vas osvežiti generisanu listu.

Jednom instaliran softver možete po volji ukljanjati komandom pkd_delete ime_programa_verzija. Ukoliko niste sigurni koja je verzija programa pogledajte u /var/db/pkg jer prosto pokretanje pkg_delete ime programa ce vas obavestiti sledece:

moyra# pkg_delete xcdroast
pkg_delete: no such package 'xcdroast' installed

Još dve zanimljive komande su svakako “pkg_info” i “pkg_version”. Prva ce dati listu i opis instaliranog softvera, dok druga daje sumiran spisak instaliranog softvera uporedjujuci ga sa trenutnim spiskom u listi portova:

moyra# pkg_info
Hermes-1.3.3_1          Fast pixel formats conversion library
ImageMagick-6.1.6.7 Image processing tools
ORBit-0.5.17_2          High-performance CORBA ORB with
support for the C language
ORBit2-2.12.0           High-performance CORBA ORB with
support for the C language

Portovi

Kao što sam ve rekao, portovi su drugi vid bacanja cini u daemonskom svetu. Listi raspoloživog softvera možete pristupiti ulaskom u /usr/ports/. Ovde u objasniti kako se portovi instaliraju i brišu a onda i to kako se lista softvera ažurira jer ona to ne radi sama. To bi izgledalo ovako:

moyra# make install clean
===> Vulnerability check disabled, database not found
=> xcdroast - 0.98alpha15.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch <nowiki>from http://prdownloads.sourceforge.net/xcdroast/xcdroast - 0.98alpha15.tar.gz</nowiki> 
96% of 3205 kB 60 kBps

Sve portove koje ste pruzeli sistem ne briše i možete ih naci u /usr/ports/distfiles/.

Kada ste primenili neku od navedenih tehnika da nadjete željeni softver potrebno je da udjete u direktorijum istog i da pokrenete komandu

# make install clean

Port ce biti preuzeti sa Interneta zajedno sa potrebnim dodacima, kompajliran i instaliran. Jednom instaliran program možete obrisati na dva nacina. Upotrebnom komande

# pkg_delete ime_programa_verzija

ili ulaskom u direktorijum programa u stablu portova i pokretanjem obrnute cini

# make deinstall clean

Jedna od predivnih mogucnosti portova je ta da ne morate brisati vec instaliran program kako bi ste ga ažrirali. Sve štovam treba je portupgrade program koji se nalazi u sysutils/portupgrade. Sve što treba da uradite je da pokrenete komandu

# portupgrade -r
ime_programa_verzija

Program ce sa Interneta preuzeti onu verziju programa koja se trenutno nalazi u stablu portova i instalirati je. Komanda “-r” omogucava da se pored željenog programa ažuriraju i svi programi koji od njega zavise, a komanda “-R” ce ažurirati i sve one od kojih on zavisi. Najbolja je kombinacija ova dva u vidu “-rR”.

Ažuriranje cini

Kao što sam vec rekao, lista raspoloži vog softvera u /usr/ports/ se na ažurira sama od sebe vec cete morati to sami s vremena na vreme da uradite. Postoji nekoliko nacina da se to izvede ali cu se ja zadržati na najjednostavnijem - metod CvSup.

U pitanju je program cvsup koji se nalazi u / usr/ports/net/cvsup/. Kada ga jednom instalirate kao root kopirajte datoteku ports-supfile koja se nalazi u /usr/share/examples/ cvsup/ u svoj root direktorijum. Zatim je otvorite u omiljenom uredjiva u teksta. Potrebno je da promenite adresu servera koja je oznacena kao CHANGE_THIS.FreeBSD.org. Tu cete staviti najbliži FTP server jer cete na taj nacin najbrže ažurirati svoje stablo sa portovima. Listu servera možete naci na: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ cvsup.html#CVSUP-MIRRORS. Ukoliko ne želite da ažurirate kompletno stablo stavite # ispred ports-all, pa uklonite # sa onih grupa paketa koje želite ažurirati.

Kada završite ažuriranje ports-supfile datoteke u konzoli pokrenite komandu “cvsup /root/ports-supfile” i dobicete prozor koji predstavlja graficki deo cvsup programa. Kliknete na zeleni trougao u donjem levom uglu i ažuriranje pocinje.

Postavlja se pitanje koliko cesto ovo treba raditi? Sve zavisi od vaših potreba za svežim softverom. Ukoliko imate sporiju vezu sa Internetom te ne možete baš svakog dana ažurirati port stablo dovoljno je da to cinite jednom nedeljno. Najbolje je otic i na FreshPorts sajt i tamo videti ono što vas zanima. Ukoliko je se pojavila nova verzija vašeg omiljenog programa onda je vreme da uradite cvsup.

Cestitam! Upravo ste savladali znanje sakriveno u velikoj misticnoj knjizi Port Daemonica i zaslužili zvanje Velikog Majstora 33 stepena Portova i Paketa. Zapravo ne, naucili ste nešto jako važno. Naucili ste kako da instalirate i održavate softver na našem daemonu jer iako je sam FreeBSD izuzetno bezbedan sistem softver koji svakog dana koristimo ga može oslabiti ukoliko se ne koristi na valjan nacin.

~Marko Milenovic

freebsd_-_portovi_i_paketi.txt · Last modified: 2017/04/28 10:25 (external edit)