Instalarea și actualizarea software-ul în FreeBSD, note de programator

1. Din ceea ce alegem?

Primul lucru ce trebuie să faceți în ceea ce privește instalarea software-ului în FreeBSD - este de a uita de „tradițional unix-metoda“, care constă în a descărca fișierul de la sursa, despachetarea și comanda ./configure rulează, face și make install. Poate câțiva ani în urmă, în unele Slackware fost, de asemenea, luate pentru a face acest lucru, dar chiar și în această distribuție a apărut deja sistem de porturi.

Așa cum am menționat mai devreme. FreeBSD oferă două moduri de a instala și software de actualizare - de la pachete binare (pachete) și sursa (porturi, porturi). Fiecare abordare are avantajele sale. Cu unele îngrijire le pot utiliza împreună. În primul rând, ia în considerare cele două cazuri extreme - utilizarea numai pakedzhey sau numai porturi.

2. Utilizarea pakedzhey

Pachete binare sunt fișiere de o anumită dimensiune și o anumită structură de directoare, ambalate într-o singură arhivă. Toate pachetele, cu excepția câtorva cazuri speciale, poate fi descărcat de ftp.freebsd.org. Deoarece pakedzhey în interiorul stocate fișierele executabile binare, pentru fiecare arhitectura de procesor și versiunea sistemului de operare are nevoie de pakedzhi său. Ce pachete pe care dorim să o folosiți este determinată de variabila de mediu $ PACKAGESITE. Aici este un exemplu pentru FreeBSD 8 și arhitecturi de procesoare i386:

# Este necesar să se înregistreze în /root/.cshrc
setenv PACKAGESITE \
http: // ftp.freebsd.org / pub / FreeBSD / porturi / i386 / Pachete- 8 -stable / Latest /

Așa cum este cazul cu sistemul de operare versiuni sunt versiuni pakedzhi Release, stabil și curent. Stabil - cea mai bună opțiune în ceea ce privește frecvența de reînnoire și de stabilitate, astfel încât de la versiunea curentă și sfătui să nu se implice deloc.

Dacă ați citit articolul meu despre instalarea rapidă a FreeBSD. vă puteți aminti, utilitarul pkg_add utilizat pentru a instala pakedzhey. În mod implicit, acesta caută pakedzhi în directorul specificat în variabila de mediu $ PKG_PATH. Schimbarea acest comportament, puteți utiliza comutatorul -r:

Programul se va descărca și instala Xorg, precum și toate programele și bibliotecile de care depinde. De fapt, caracteristica principală a sistemului și a porturilor pakedzhey constă în verificarea automată dependențe. Nu este nevoie să se uite peste programele sursă de rețea / biblioteci, le colectează și apoi dau seama de ce ai nevoie pentru a colecta alte versiuni. O echipă -, iar sistemul va face totul pentru tine. distribuțiile moderne de Linux și * BSD folosesc doar această abordare. De aceea, trebuie să uitați «./configure; face; make install », ca un vis urât.

A se vedea o listă cu toate programele instalate pot pkg_info echipa. Ca regulă generală, lista devine destul de voluminos, deci utilizați grep și mai puțin.

Pentru a elimina pakedzhey proiectat echipa pkg_delete. Utilizați-l fără tastele incomode, pentru că în acest caz, trebuie să specificați numele complet al pachetului. De exemplu, «pkg_delete xorg-fonturi-7,5» va funcționa ca «pkg_delete xorg-fonturi» afișează o eroare, spun ca pachetul nu este instalat. Pentru a schimba acest comportament, utilizați tastele -ix:

pkg_delete -ix Xorg

Această comandă va încerca să elimine toate pachetele ale căror nume conțin «Xorg» și înainte de fiecare eliminare va necesita confirmarea noastra. Nu este mai convenabil decât să tastați manual numele celor zece pachete, de pre-imaginind versiunea lor folosind pkg_info? Pkg_delete asigură, de asemenea, că eliminarea pachetului nu a condus la o încălcare a dependențe.

Acum, să presupunem că vrem să curățați sistemul de software-uri nedorite. Pachetul de deșeuri - este una care nu folosim și care nu depinde de alte pachete. Acestea din urmă pot fi verificate după cum urmează:

pkg_info -Ra | mai puțin

Problema este că rezultatul echipei este destul de voluminos și de a căuta în ea pachetele care pot fi eliminate în condiții de siguranță, destul de neplăcut. Simplifica munca, puteți, folosind Perl și expresii regulate:

pkg_info -Ra \
| perl -e „în timp ce (<>) @ T = $ t =

/ Informații pentru ([^:] +): (: \ s |?
\ SRequired de: \ s) / sig; print se alăture ( "\ n" "\ n", @ t);“.

Pentru a nu a reușit în mod constant să introducă toate aceste groază, sfătuim să vă înregistrați un alias ( «pkg_leafs»?) Pentru a menține echipa în /root/.cshrc .SH-script (de ce nu CSH?) Și apoi să utilizați acest script cu grep.

În cele din urmă, cel mai interesant - actualizarea pachetelor. Acesta este cel mai potrivit pentru acest scop pkg_upgrade. bsdadminscripts incluse în pachet. Nu fi surprins de faptul că sistemul nu are mijloacele de a actualiza programele „din cutie.“ Orice server de web este configurat de obicei o dată și apoi se execută 5-10 ani până când fierul nu se încadrează în afară. Dacă în acest timp în Apache nu va găsi o vulnerabilitate critică (și șansele de acest eveniment nu este prea mare), atunci nimeni nu ar fi niciodată actualizate.

Înainte de upgrade, este util să se știe că, de fapt, vom actualiza:

Același efect poate fi realizat cu:

pkg_version -v / var / db / uma / FTPINDEX | nevoile grep

Implicit pkg_version utilizează indexul, situat în arborele de porturi, și nu faptul că acest copac avem. Prin urmare, calea de fișier este specificat în mod explicit. fișier Sam FTPINDEX este actualizat sau pkg_upgrade'om, așa cum este arătat mai sus, sau de utilitate uma.

Actualizați pachete binare, de obicei, se produce rapid, astfel încât să puteți actualiza imediat toate aplicațiile software depășite:

Dacă aveți nevoie să faceți upgrade doar una sau câteva programe, nu uitați că puteți rupe dependenta. Evita astfel de probleme, puteți utiliza tastele-R (pentru a actualiza, în funcție de pachetul) și -r (pentru actualizare, depinde de ce pachet):

pkg_upgrade -RR Xorg

Și, în sfârșit - o căutare pentru pachete. Să presupunem că aveți nevoie de un anumit pachet, dar nu știi ce se numește. Există două moduri. În primul rând, puteți utiliza FTPINDEX fișier:

pisica / var / db / uma / FTPINDEX | tăiat -d '|' -f 1 | grep CodeBlocks -i

În al doilea rând, aveți posibilitatea să utilizați o căutare web pe freebsd.org.

3. Utilizarea porturilor

Port sistem vă permite să instalați programul, compilarea de la codul sursă. Porturile sunt actualizate mai des pachete, astfel încât prin ele veți obține mai multe programe proaspete. Deoarece sursele noastre sunt disponibile, putem configura aplicația pentru a include opțiunile necesare și dezactiva inutile. Puteți face, de asemenea, software-ul de optimizare utilizat de către noi sub CPU și să treacă opțiuni suplimentare la compilator.

Pentru a plăti pentru toate acestea este necesar în primele programe de instalare de timp. De exemplu, chiar și un foarte puternic de calculatoare compilării OpenOffice durează aproximativ o zi și are nevoie de mult acolo GB de RAM și spațiu pe disc. Cum exact - Nu-mi amintesc. Pentru comparație, instalarea OpenOffice prin intermediul pachetului durează câteva minute. Cu toate acestea, este - un caz extrem. utilități mici compilate de obicei în câteva minute pe software-ul mai mare poate merge o oră sau două.

Specificați argumente compilator și tipul de procesor poate fi în /etc/make.conf:

CPUTYPE = CORE2 tip # CPU
? CFLAGS = - argumente O3 -pipe # compilator, a se vedea 'om CGC'

În principiu, este posibil ca fișier și să nu se atingă. Dar, odată ce ne-am decis zayuzat de port, de ce nu profita de toate avantajele lor? Dacă nu sunteți sigur despre ce tip de procesor pentru a specifica uite la /usr/share/examples/etc/make.conf. Acesta listează toate tipurile de procesoare suportate. Conținutul I au fost următoarele:

# În prezent, următoarele tipuri de CPU sunt recunoscute:
# Intel arhitectura x86:
# (AMD) opteron athlon64 athlon-mp athlon-xp athlon-4
# Athlon-tbird Athlon K8 k6-3 K6-2 K5 K6
# (Intel) CORE2 core Nocona pentium4m pentium4 prescott
# Pentium3m pentium3 pentium-m Pentium2
# Pentiumpro pentium-MMX pentium i486 i386
# (Via CPU-uri) c3 C3-2
# Alpha Arhitectura / AXP: ev67 EV6 pca56 ev56 EV5 ev45 ev4
Arhitectura # AMD64: Opteron, Athlon64, Nocona, Prescott, CORE2
# Intel arhitectura IA64: Itanium2, Itanium

Dacă nu ați găsit tipul de procesor, fie nu-l specificați (nu prea mult va afecta rata de aplicare), sau consultă oamenii pricepuți orice forum. Dacă introduceți un oribil, este posibil pentru a obține programul rupt.

Acum - despre argumentele compilatorul (CFLAGS). Cu cât nivelul de optimizare, mai lent programul merge, dar cu atat mai repede va funcționa. De exemplu, flag -O0 dezactivează toate optimizările (gcc este utilizat implicit) și -O3 include toate tehnicile de optimizare disponibile. Totuși, există -OS pavilion, proiectat pentru a optimiza dimensiunea programului. Folositi-l dacă trebuie să conduci bine, foarte puțin spațiu. În general, nu ar trebui să vă faceți griji prea mult pe faptul că programul va încetini, în cazul în care compilați cu -O2 cheie în loc de -O3. În plus, există o șansă (mică, dreapta), că unele programe nu se adună cu -O3 cheie.

De asemenea, doresc să se constate că cheile pe care le specificați în CFLAGS, afectează doar porturi. Acest lucru, în special, înseamnă că nu trebuie să vă faceți griji cu privire la faptul că experimentele cu make.Conf va duce la faptul că nu puteți actualiza kernel-ul sistemului de la sursă. Astfel, nota informativă.

Arborele porturi este stocat în directorul / usr / porturi /. Dacă aveți acest director este gol, porturile pot fi descărcate prin intermediul programului portsnap:

portsnap adu extract

Notă: Se recomandă să utilizați utilitarul cvsup, dar este o metodă învechită În manualele vechi. Uita cvsup precum și despre «./configure; face; make install »!

În cazul în care arborele de porturi este deja acolo, nu uita din când în când să-l actualizeze:

portsnap fetch actualizare

Pentru a instala software-ul de porturi, trebuie să găsească mai întâi directorul său corespunzător. Numele Directory sunt formate după cum urmează: / usr / porturi / grup / programe /. De exemplu, în directorul / usr / porturi / ftp / Puteti gasi toate programele legate de protocolul FTP. bsdadminscripts așa cum sa menționat anterior sunt în porturi / usr / / SysUtils / bsdadminscripts /.

Există mai multe modalități de a găsi programul corect, dar a spus căutare pe freebsd.org. De exemplu:

# În primul rând du-te la directorul porturilor
cd / usr / porturi
# Seek portul de nume
face un nume de căutare = firefox
# "Re în căutarea unui cuvânt cheie
face cheie de căutare = browser-
# Căutare rapidă
echo / usr / porturi / * / * * firefox

Navigați la directorul, este suficient să spunem

make install curat

Sistemul se va descărca și despacheta codul sursă al programului, precum și toate programele și bibliotecile de care depinde, apoi se adună și să le instalați, apoi îndepărtați toate resturile. Acum, imaginați-vă că, odată ce toate acestea au avut de a face cu mâinile tale!

Unele porturi au setări suplimentare pe care vi se cere să specificați procesul de instalare. Dacă nu înțelegi, trebuie să vrea să se stabilească pentru setările implicite. dependența sa de multe ori în timpul instalării aveți nevoie, de asemenea, portul sunt stabilite. Unele dependențe sunt interesați, ce setări doriți să le colecteze. Ca urmare, trebuie să urmeze întregul proces din timp în timp pentru a răspunde la întrebări. Nu este foarte convenabil.

Cele mai multe porturi înțeleg comanda:

După finalizarea acestuia, configurați portul și dependențele sale, iar apoi va fi posibil pentru a colecta totul fără a răspunde la orice întrebări. Există, de asemenea, o comandă care vă permite să acceptați toate setările implicite:

face -DBATCH instalați curat

Porturile cele mai interesante, care, după compilarea tuturor aplicațiilor sunt colectate în saci, după care este instalarea de cele mai multe pachete. Cu alte cuvinte, întregul set economic al porturilor, care pot fi controlate prin aceleași mijloace pe care le folosim pentru a gestiona pachetele - pkg_info, pkg_delete și așa mai departe!

Notă: Construiți un pachet binar din porturile pot face «pachet» echipa. Pentru a crea un pachet de aplicații deja instalate, utilizați pkg_create comanda. De exemplu, echipa «pkg_create -R -b xorg-fonturi 7.5» crea pachete binare xorg-fonturi și toate dependențele sale, iar comanda «pkg_create -vb«*»», puteți face o copie de rezervă a tuturor aplicațiilor instalate. Detalii - in-om pagini.

Următorul mai interesant, așa cum s-ar putea aștepta, există o actualizare. Există două utilități pentru actualizări de software din porturile - portupgrade și PortMaster. Am PortMaster pare că în toate privințele mai bine. În primul rând, pentru că nu are nevoie de nimic altceva decât porturile din copac. În contrast portupgrade funcționează cu baza de date proprie, care se deteriorează de multe ori, și, prin urmare, trebuie să fie reconstruit. În al doilea rând, PortMaster, spre deosebire de portupgrade, nu trage Ruby. Deoarece programele folosind Ruby, destul de un pic, nu a vrut să-și petreacă timpul de asamblare dragul lui singur portupgrade. Ne amintim că fiecare port in plus - e prea mult timp cu instalarea lui compilare și upgrade-ul?

În general, am de gând să presupunem că utilizați PortMaster (/ usr / porturi / porturi-Manag / PortMaster /). Cu toate acestea, în cazul în care nu este, nu vă faceți griji - portupgrade are exact aceeași interfață ca și PortMaster. Aceasta este, cu aceleași argumente, aceste programe (de obicei) face același lucru.

Deci, am actualizat porturile folosind portsnap și de a afla ce programe au crescut vechi de acum familiar pentru noi pkg_version. Apropo, acest utilitar nu face parte din bsdadminscripts, și merge împreună cu sistemul. Puteți rula PortMaster? Nu, nu poți!

Primul lucru de făcut înainte de a actualiza aplicarea porturilor - este de a citi cu atenție fișierul / usr / porturi / ACTUALIZAREA și să respecte toate instrucțiunile cu privire la noi. Nu-ți face griji, sunteți obligat să uitați să facă acest lucru, așa că este mai bine să se înscrie la o bandă cu toate modificările în acest fișier. Dacă te uiți rar în RSS-Reader, vă rugăm să folosiți rss2email.ru de serviciu.

Programul de actualizare portmasterom este foarte simplu (de altfel, cu ajutorul ei este posibil să se efectueze instalarea):

# Comutator -d înseamnă „pentru a elimina fișierele vechi de la sursă“
# Dacă nu specificați, PortMaster vei primi
# O mulțime de întrebări despre ea
PortMaster -d Vim

Dificultățile apar atunci când vă amintiți despre dependența. Cea mai buna decizie este de a actualiza toate porturile care depind de acest lucru (cerere, pe care portul este mereu actualizat):

PortMaster Vim -rd

Puteți actualiza încă o dată de știri a software-ului învechite: