FreeBSD Portai
== Demesio puslapio informacija yra pasenusi! ==
FreeBSD portų kolekcija duoda galimybę vartotojams ar sistemų administratoriams įdiegti programas. Kiekviename porte yra visos reikiamos pataisos kurios reikalingos originalaus atviro kodo programos kompiliavimui bei įdiegimui į FreeBSD OS. Kompiliuoti programas labai paprasta tereikia parašyti make porto kataloge. Makefile automatiškai atsiunčia programos kodą, jį išpakuoja, pataiso failą su pataisymais (patches), sukompiliuoja kodą. Jai kompiliavimo procesas be klaidų, galima įdiegti programą paprastai, parašę make install. Toliau skaitykite kaip paruošti bei atnaujinti portų medį.
Portų paruošimas[keisti]
Portų paruošimas tai, portų medžio sudarymas (jeigu jo nebuvo po sistemos diegimo /usr/ports). Bei paruošimas portų medžio atnaujinimui. Į portų paruošimą įeina cvsup diegimas bei /etc/make.conf redagavimas.
Pirmas etapas tai cvs įdiegimas
pkg_add -rv cvsup-without-gui
Antras etapas tai /etc/make.conf failo redagavimas pridedant šias eilutes
SUPRELEASE=cvs tag=RELENG_5_5 SUP_UPDATE=yes SUP= /usr/local/bin/cvsup SUPFLAGS= -g -L 2 SUPHOST= cvsup5.FreeBSD.org # cvs mirroras (visi mirrorai surašyti čia) PORTSSUPFILE= /usr/share/examples/cvsup/ports-supfile
Vietoj RELENG_5_5 turite parašyti tikslią dabar naudojamos FreeBSD OS versiją (pvz RELENG_6_2 jai 6.2 versija ir t.t), ją galite sužinoti parašę uname -r SUPHOST= tai nustatymas iš kokio šaltinio bus siunčiama informacija apie portus. Visus šaltinius galite rasti čia išsaugokite failą ir pereikite į kitą etapą.
Trečias etapas tai portų medžio atsiuntimas iš šaltinio kurį nurodėte /etc/make.conf faile. Įeiname į /usr/ports katalogą ir ten rašome
cvsup -g -L2 /usr/share/examples/cvsup/ports-supfile
Jai viskas gerai tuomet po kelių minučių turėtumėte turėti portų medį, jai kas nors neveikia tuomet atsidarykite /usr/share/examples/cvsup/ports-supfile failą ir taip pat pakeiskite šaltinį iš kurio siunčiate portų informaciją bei pakeiskite FreeBSD OS versiją į savo tai padarę išsaugokite failą ir bandykite vėl. Kai portų medis jau bus galime jį suindeksuoti parašę
make index
Štai ir viskas, portai yra nauji ir paruošti naudojimui.
Portų atnaujinimas[keisti]
Prieš pradedant atnaujinti reikia įsitikinti ar jūsų portų medis yra sveikas, ar jis iš viso yra, jai jo nėra skaitykite pirmą "Portų paruošimas". Jei viskas gerai tuomet galime atnaujinti įėję į /usr/ports katalogą ir parašę:
make update
Jai tai nesuveikia galbūt yra sugadintas /etc/make.conf arba gerai nenustatytas /usr/share/examples/cvsup/ports-supfile, tuomet skaitykite pirmą straipsnio dalį apie portų paruošimą.
Portų diegimas[keisti]
Portų diegimas - tai iš portų medžio programų diegimas į sistemą. Tai vyksta labai paprastai, portų medis suskirstytas į tam tikras kategorijas, pvz multimedia, x11, audio, science, net ir t.t. Tam tikroje kategorijoje yra suskirstytos programos, taip padaroma kuo patogiau vartotojui atsirinkti iš tam tikros kategorijos, programas. Taip pat yra portų paieška kuri veikia taip
make search key=raktas
Rakto vietoje galima rašyti pvz audio, xmms, firefox, apache. Tai maždaug atrodytu taip
make search key=apache
Šis veiksmas suras visus paketus susijusius su apache bei patį apache. Kiekvienas portas turi informaciją bei aprašymą apie jį faile pkg-descr esančiame jo kataloge. Failai kurie bus įdiegti paketo diegimo metu yra surašyti pkg-plist faile jis praverčia kai nežinote kur yra programos paleidžiamasis failas, galima tai sužinoti labai paprastai, parašius
grep bin pkg-plist
Taip pat dar prie tam tikrų paketų būna pridėtas failas pkg-message kuris nurodo specifinių paketų papildomą konfigūravimą FreeBSD sistemoje. Portų diegimas yra labai paprastas tereikia įeiti į norimo porto katalogą (pvz /usr/ports/multimedia/xmms) iš pradžių jį sukompiliuojame
make
Kompiliavimo procesas prasideda, tiesa yra keletas papildomų kompiliavimo parametrų jie pasislėmę Makefile faile, juo galima pamatyti parašius
grep WITH Makefile
Pamatysime kažką panašaus į
.if !defined(WITHOUT_MIKMOD) @${ECHO_MSG} "You can disable support for mikmod by defining WITHOUT_MIKMOD." .if !defined(WITHOUT_VORBIS) @${ECHO_MSG} "You can disable support for vorbis by defining WITHOUT_VORBIS." .if !defined(WITHOUT_SIMD) && ${OSVERSION} >= 400021 @${ECHO_MSG} "You can disable x86 SIMD (3DNow!/MMX) optimized decoding routines by defining WITHOUT_SIMD." @${ECHO_MSG} "You can disable support for esound by defining WITHOUT_GNOME=esound."
norint sukompiliuoti portą pvz be vorbis palaikymo rašome
make -DWITHOUT_VORBIS
Rašome viską didžiosiomis raidėmis kaip parašyta.
Kompiliuojant kai kuriuos paketus neretai išmetama lentelė su pasirinkimais (paketų nustatymais ar funkcijų pasirinkimais), jai jos nerodo galime ją iškviesti parašę make config
Įdiegus paketą galima išvalyti atsiustą nebereikalinga kodą bei archyvą parašius
make clean distclean
Įdiegtų paketų atnaujinimas[keisti]
Jei įdiegėte kurį nors portą ir norite jį arba visus juos atnaujinti tuomet pradžiai reiktų įdiegti portupgrade programą kuri palengvins jums darbą.
cd /usr/ports/ports-mgmt/portupgrade && make && make install
Pirmiausia prieš ką nors atnaujinant reikia sutvarkyti portų versijas bei dublikatus ir šiaip nesklandumus, kad nekiltų didesnių problemų
pkgdb -F
Korektiškai atsakome į visus užduotus klausymus ir žygiuojame toliau. Vieno porto atnaujinimas
portupgrade -R firefox
Visų paketų atnaujinimas
portupgrade -a
Laikas nuo laiko portų medis vis didėja dėl to, kad jūs įdiegę tam tikrą paketą pamirštate parašyti make clean, norint išvalyti visų portų nereikalingą atvirą kodą rašome
portsclean -C
Taip pat galime išvalyti archyvus (distfiles aka parsiusti archyvai)
portsclean -D
Archyvų išvalymas kurie net nesusiję su į sistemą įdiegtais paketais
portsclean -DD
Įdiegtų paketų šalinimas[keisti]
Tai vyksta taip, kiekvieno porto direktorijoje kurį norite pašalinti, rašote
make deinstall
Portas bus pašalintas, taip pat galima pašalintas jo kodą bei atsiustą archyvą
make clean distclean
Taip pat galima naudoti interaktyvų įrankį paketams ir jų priklausomybėms šalinti ports-mgmt/pkg_rmleaves
cd /usr/ports-mgmt/pkg_rmleaves && make install clean pkg_rmleaves