FreeBSD Portai

Iš Žinynas.
Jump to navigation Jump to search

== 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