23 Korisni primjeri naredbi PKG za upravljanje paketima u FreeBSD-u


U ovom vodiču objasnit ćemo kako upravljati prekompajliranim binarnim aplikacijama paketa u FreeBSD-u uz pomoć alata za upravljanje paketima pod nazivom PKG putem spremišta za prikupljanje softvera Ports.

Spremište portova nudi potrebne alate za kompajliranje aplikacija iz izvornog koda, zajedno s njihovim ovisnostima, ali također održava ogromnu kolekciju unaprijed kompiliranih paketa, trenutno više od 24.000 paketa, koji se mogu instalirati na FreeBSD sustav pomoću naredbe pkg.

  1. Instalacija FreeBSD 11.x

Pretražite i pronađite programe u drvetu portova na FreeBSD-u

1. Spremišta luka su podijeljena u kategorije u FreeBSD-u, a svaka kategorija predstavljena je direktorijom u/usr/ports/file system path.

Jednostavan popis direktorija/usr/ports/prikazat će sve dostupne kategorije kao što je prikazano na donjem snimku zaslona.

# ls /usr/ports/

2. Da biste vidjeli sve dostupne programe koji pripadaju kategoriji, izdajte naredbu ls protiv direktorija kategorija.

Pretpostavimo da želite prikazati sve dostupne softverske pakete koje kategorija baza podataka nudi, izvršite donju naredbu u konzoli. Upotrijebite rezultat putem manje naredbe za lakšu navigaciju kroz izlaz.

# ls /usr/ports/databases/ | less

3. Da biste vidjeli koliko je paketa dostupno u kategoriji, navedite direktorij kategorija i usmjerite rezultat putem naredbe wc kao što je prikazano u donjem primjeru.

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

Kao što možete vidjeti na gornjoj snimci zaslona, kategorija baze podataka FreeBSD sadrži više od 1000 prethodno usklađenih paketa baze podataka.

4. Da biste provjerili je li određeni program dostupan u kategoriji, opet upotrijebite uslužni program grep kako biste potražili prilagođeni program.

U sljedećim primjerima tražit će dostupne pakete baze podataka mongodb i zaštitne pakete školjkaša.

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

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

5. U slučaju da ne znate kojoj kategoriji pripada softver, možete koristiti drugi pristup za pronalaženje kategorije softvera. Upotrijebite zamjenski znak * za globaranje ljuske da biste potražili uzorak kroz cijelo stablo direktorija Ports.

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

# ls /usr/ports/*/*mailx

6. Sljedeća metoda pretraživanja softverskog paketa i kategorije kojoj paket pripada je upotreba naredbe locate prema uzorku niza.

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

# /usr/libexec/locate.updatedb

7. Nakon što ažurirate bazu podataka locate, potražite određeni softverski paket pomoću obrasca ključne riječi iz naziva paketa. Na primjer, ako želite potražiti uslužni program mailx, možete pokrenuti donju naredbu.

# locate mailx

Kao što vidite, za uslužni program mailx dostupna su dva paketa, oba smještena u/usr/ports/mail/kategoriji.

8. Slično pronalaženju paketa s naredbom whereis, za pregled kategorije aplikacije.

# whereis mailx

Pretražite softver putem PKG naredbe u FreeBSD-u

9. Najlakši način pretraživanja i pronalaska programa u FreeBSD-u je putem naredbenog retka za upravljanje paketima PKG. Da biste pretražili binarne pakete za aplikaciju, na primjer postfix softver, izdajte naredbu u nastavku.

# pkg search package_name

10. U slučaju da želite vidjeti kojoj kategoriji pripada paket, pokrenite istu naredbu kao gore sa zastavicom -o , kao što je prikazano u primjerima u nastavku.

# pkg search -o package_name

Upravljanje softverom u FreeBSD-u

11. Da biste instalirali unaprijed kompilirani paket iz spremišta Ports u FreeBSD, izdajte naredbu pkg kako je prikazano u donjem primjeru.

# pkg install package_name

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

# pkg info package_name

13. Prekidač naredbe pkg info prikazat će poruku „Nema paketa (a) koji se podudaraju s imenom_paketa“ ako softverski paket još nije instaliran u vašem sustavu, kao što je prikazano na donjoj snimci zaslona.

# pkg info tcpdump

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

Naredba grep filter protiv pkg info može vam pokazati jesu li neki određeni paketi ili aplikacije već prisutni u sustavu, kao što je prikazano u donjem primjeru.

# pkg info | grep ftp

15. Da biste uklonili paket iz sustava, izdajte naredbe u nastavku.

# pkg remove package_name
or
# pkg delete package_name

16. U slučaju da želite spriječiti uklanjanje ili izmjenu instaliranog paketa, možete upotrijebiti prekidač zaključavanja za naredbu pkg, kao što je prikazano na donjoj slici.

# pkg lock package_name

Otključaj naredbu prekidača pkg omogućit će vam uklanjanje ograničenja paketa i izmjenu ili deinstalaciju paketa.

# pkg unlock package_name

17. Da biste saznali kojem instaliranom paketu pripada naredba ili izvršna datoteka, izdajte sljedeću naredbu, kao što je prikazano u primjerima zaslona u nastavku.

# pkg which /path/to/executable

18. Da biste lokalno preuzeli paket iz spremišta Ports, bez instaliranja paketa na sustav, pokrenite naredbu pkg s prekidačem za dohvaćanje.

Preuzeti binarni paket, koji je komprimirana .txz datoteka, može se naći u/var/cache/pkg/system path.

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

19. Da biste provjerili jesu li instalirani paketi izloženi uobičajenim ranjivostima ili programskim pogreškama, izdajte naredbu u nastavku.

# pkg audit -F

Da biste vidjeli popis starih ranjivosti koje u utjecaju na softverski paket u ranijim verzijama izdaju naredbu u nastavku.

# pkg audit package_name

Ispod je odlomak svih poznatih ranjivosti koje su pronađene na web serveru Nginx 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 uslužnog programa za upravljanje paketima u FreeBSD-u

20. Da biste osigurali da su spremišta softvera i svi instalirani paketi te da su u toku s najnovijim verzijama ili sigurnosnim zakrpama, izdajte sljedeće naredbe.

# pkg update
# pkg upgrade

21. Da biste prikazali statistiku udaljenih spremišta i lokalnih paketa, na primjer koliko je paketa instalirano u vaš sustav i koliko prostora na disku zauzima instalirani softver, izvršite sljedeću naredbu.

# pkg stats

22. Da biste izbrisali sve ovisnosti koje su iza sebe ostavili instalirani paketi u sustavu, izdajte naredbu u nastavku.

# pkg autoremove

23. Da biste automatski izbrisali direktorij lokalne predmemorije upravljanja paketima za udaljeno preuzete pakete, pokrenite donju naredbu. Prvo biste trebali provjeriti popis lokalno preuzetih binarnih paketa.

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

To je sve! Kao što vidite, FreeBSD ima impresivan sustav prikupljanja paketa, sličan alatima za upravljanje paketima koji se koriste u Linux distribucijama poput APT-a, s ogromnim brojem unaprijed sastavljenih softverskih binarnih datoteka i jednostavnom i učinkovitom naredbenom retku, pkg, koji se može koristiti za upravljati softverom na pristojan način.