23 korisnih primjera PKG komandi za upravljanje paketima u FreeBSD-u


U ovom vodiču ćemo objasniti kako upravljati unaprijed kompajliranim aplikacijama binarnog paketa u FreeBSD uz pomoć alata za upravljanje paketima pod nazivom PKG putem Portova > repozitorijum zbirke softvera.

Repozitorijum Portova nudi neophodne alate za kompajliranje aplikacija iz izvornog koda, zajedno sa njihovim zavisnostima, ali takođe održava ogromnu kolekciju unapred kompajliranih paketa, trenutno više od 24.000 paketa, koji se može instalirati na FreeBSD sistem sa pkg komandom.

Zahtjevi:

  1. Instalacija FreeBSD 11.x

Pretražujte i pronađite aplikacije u stablu portova u FreeBSD-u

1. Spremišta portova su podijeljena u kategorije u FreeBSDu, pri čemu je svaka kategorija predstavljena direktorijem u /usr/ports/ putanji sistema datoteka.

Jednostavna lista direktorija /usr/ports/ će prikazati sve dostupne kategorije kao što je prikazano na slici ispod.

ls /usr/ports/

2. Da vidite sve dostupne aplikacije koje pripadaju kategoriji, izdajte komandu ls za direktorij kategorija.

Pretpostavimo da želite da prikažete sve dostupne softverske pakete koje kategorija baze podataka može da ponudi, izvršite naredbu ispod u konzoli. Prenesite rezultat putem manje komande da biste lakše kretali kroz izlaz.

ls /usr/ports/databases/ | less

3. Da biste vidjeli koliko je paketa dostupno u kategoriji, navedite direktorij kategorije i prenesite rezultat preko wc komande kao što je prikazano u primjeru ispod.

ls /usr/ports/databases/ | wc -l

Kao što možete vidjeti na gornjoj slici ekrana, kategorija FreeBSD baze podataka sadrži više od 1000 paketa unaprijed usklađenih sa bazama podataka.

4. Da biste vidjeli da li je određena aplikacija dostupna u kategoriji, ponovo koristite naredbu ls i filtrirajte rezultat preko uslužnog programa grep kako biste tražili prilagođenu aplikaciju.

U primjerima ispod će se tražiti mongodb dostupni paketi baze podataka i clam antivirus sigurnosni paketi.

ls /usr/ports/databases/ | grep mongodb
ls /usr/ports/security/ | grep clam

Kao što vidite, više verzija aplikacije može biti dostupno u FreeBSD portovima.

5. U slučaju da ne znate kojoj kategoriji softver pripada, možete koristiti drugi pristup da pronađete kategoriju softvera. Koristite shell globbing wildcard znak * za traženje uzorka kroz cijelo stablo direktorija Ports.

Pod pretpostavkom da želite vidjeti u kojoj kategoriji možete pronaći softverske pakete za mailx uslužni program, možete pokrenuti sljedeću naredbu.

ls /usr/ports/*/*mailx

6. Druga metoda za pretraživanje softverskog paketa i kategorije kojoj paket pripada je korištenje naredbe locate u odnosu na uzorak niza.

Prije izvođenja niza pretraživanja, trebali biste ažurirati locate bazu podataka sljedećom naredbom.

/usr/libexec/locate.updatedb

7. Nakon što ažurirate bazu podataka o lokaciji, potražite određeni softverski paket koristeći obrazac ključne riječi iz naziva paketa. Na primjer, ako želite da tražite uslužni program mailx, možete pokrenuti naredbu ispod.

locate mailx

Kao što vidite, postoje dva paketa dostupna za mailx uslužni program, oba se nalaze u kategoriji /usr/ports/mail/.

8. Slično pronalaženju paketa sa komandom locate, takođe možete koristiti komandu whereis, da vidite kategoriju aplikacije.

whereis mailx

Pretraži softver preko PKG komande u FreeBSD-u

9. Najlakši način za pretraživanje i pronalaženje aplikacije u FreeBSD-u je putem komandne linije za upravljanje paketima PKG. Da biste pretražili binarne pakete za aplikaciju, na primjer postfix softver, izdajte naredbu ispod.

pkg search package_name

10. U slučaju da želite da vidite kojoj kategoriji paket pripada, pokrenite istu komandu kao gore sa zastavicom -o, kao što je ilustrovano u primerima ispod.

pkg search -o package_name

Upravljajte softverom u FreeBSD-u

11. Da biste instalirali unaprijed kompajlirani paket iz portova spremišta u FreeBSD-u, izdajte naredbu pkg kao što je ilustrovano u primjeru ispod.

pkg install package_name

12. Da biste zatražili informacije o određenom instaliranom paketu u sistemu, izdajte naredbu ispod.

pkg info package_name

13. Komandni prekidač pkg info će prikazati poruku “Nema paketa koji se podudaraju sa imenom paketa ” ako softverski paket nije već instaliran u vaš sistem, kao što je prikazano na slici ispod.

pkg info tcpdump

14. Da biste prikazali sve instalirane softverske pakete u FreeBSD-u, izvršite naredbu pkg info bez ikakvih opcija ili prekidača.

Grep filter protiv naredbe pkg info može vam pokazati da li su neki specifični paketi ili aplikacije već prisutni u sistemu, kao što je ilustrovano u primjeru ispod.

pkg info | grep ftp

15. Da biste uklonili paket sa sistema, izdajte donje naredbe.

pkg remove package_name
or
pkg delete package_name

16. U slučaju da želite spriječiti uklanjanje ili modifikaciju instaliranog paketa, možete koristiti lock prekidač za pkg komandu, kao što je prikazano na donjoj slici.

pkg lock package_name

Otključaj pkg komandni prekidač će vam omogućiti da uklonite ograničenje paketa i izmijenite ili deinstalirate paket.

pkg unlock package_name

17. Da biste saznali kojem instaliranom paketu pripada komanda ili izvršna datoteka, izdajte sljedeću naredbu, kao što je ilustrovano u primjerima snimka ekrana ispod.

pkg which /path/to/executable

18. Da biste lokalno preuzeli paket iz Portova spremišta, bez instaliranja paketa na sistem, pokrenite pkg komandu sa dohvati prekidač.

Preuzeti binarni paket, koji je komprimirana datoteka .txz, može se pronaći na /var/cache/pkg/ sistemskoj putanji.

pkg fetch package_name
ls /var/cache/pkg/ | grep package_name

19. Da biste provjerili da li su instalirani paketi izloženi uobičajenim ranjivostima ili greškama, izdajte naredbu ispod.

pkg audit -F

Da biste vidjeli listu starih ranjivosti koje utječu na softverski paket u ranijim verzijama, izdajte donju naredbu.

pkg audit package_name

Ispod je izvod svih poznatih ranjivosti koje su pronađene na Nginx web serveru kompajliranom za FreeBSD.

pkg audit nginx
nginx is vulnerable:
Affected versions:
<= 0.8.41 : > 1.4.4,1
nginx -- Request line parsing vulnerability
CVE: CVE-2013-4547
WWW: https://vuxml.FreeBSD.org/freebsd/94b6264a-5140-11e3-8b22-f0def16c5c1b.html

nginx is vulnerable:
Affected versions:
< 1.0.15
nginx -- Buffer overflow in the ngx_http_mp4_module
CVE: CVE-2012-2089
WWW: https://vuxml.FreeBSD.org/freebsd/0c14dfa7-879e-11e1-a2a0-00500802d8f7.html

nginx is vulnerable:
Affected versions:
< 1.4.7
nginx -- SPDY heap buffer overflow
CVE: CVE-2014-0133
WWW: https://vuxml.FreeBSD.org/freebsd/fc28df92-b233-11e3-99ca-f0def16c5c1b.html
...

Održavanje programa za upravljanje paketima u FreeBSD-u

20. Da biste osigurali da softverska spremišta i svi vaši instalirani paketi i da su ažurirani sa najnovijim verzijama ili sigurnosnim zakrpama, izdajte sljedeće naredbe.

pkg update
pkg upgrade

21. Da biste prikazali statistiku udaljenih spremišta i lokalnih paketa, kao što je koliko je paketa instalirano u vašem sistemu i koliko prostora na disku je popunjeno instaliranim softverom, izvršite sljedeću naredbu.

pkg stats

22. Da biste izbrisali sve zavisnosti koje su zaostali instalirani paketi u sistemu, izdajte naredbu ispod.

pkg autoremove

23. Da biste automatski izbrisali lokalni keš direktorij upravljanja paketima za udaljeno preuzete pakete, pokrenite naredbu ispod. Prvo trebate provjeriti listu lokalno preuzetih binarnih paketa.

pkg clean -a -n  
pkg clean -a -y

To je sve! Kao što možete vidjeti, FreeBSD ima impresivan sistem prikupljanja paketa, sličan alatima za upravljanje paketima koji se koriste u Linux distribucijama kao što su Yum, RPM i APT sa ogromnim brojem unaprijed kompajliranih softverskih binarnih datoteka i jednostavnim i efektivna komandna linija, pkg, koja se može koristiti za upravljanje softverom na pristojan način.