23 Nyttige eksempler på PKG-kommandoer for å administrere pakker i FreeBSD


I denne opplæringen vil vi forklare hvordan du administrerer forhåndskompilerte binære pakkeapplikasjoner i FreeBSD ved hjelp av pakkeadministrasjonsverktøyet kalt PKG via Porter > programvaresamlingslager.

Ports-repository tilbyr de nødvendige verktøyene for å kompilere applikasjoner fra kildekode, sammen med deres avhengigheter, men opprettholder også en enorm samling av forhåndskompilerte pakker, for tiden mer enn 24 000 pakker, som kan installeres på et FreeBSD-system med kommandoen pkg.

Krav:

  1. FreeBSD 11.x-installasjon

Søk og finn applikasjoner i Ports Tree i FreeBSD

1. Portlagre er delt inn i kategorier i FreeBSD, hver kategori er representert av en katalog i /usr/ports/ filsystembane.

En enkel liste over katalogen /usr/ports/ vil vise alle tilgjengelige kategorier som vist i skjermbildet nedenfor.

ls /usr/ports/

2. For å se alle tilgjengelige applikasjoner som tilhører en kategori, utfør en ls-kommando mot kategorikatalogen.

Anta at du vil vise alle tilgjengelige programvarepakker som databasekategorien har å tilby, utfør kommandoen nedenfor i konsollen. Pipe resultatet via mindre kommando for å navigere lettere gjennom utdata.

ls /usr/ports/databases/ | less

3. For å se hvor mange pakker som er tilgjengelige i en kategori, oppgi kategorikatalogen og send resultatet via wc-kommandoen som vist i eksemplet nedenfor.

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

Som du kan se i skjermbildet ovenfor, inneholder FreeBSD-databasekategorien mer enn 1000 forhåndsoverholdte pakker.

4. For å se om en spesifikk applikasjon er tilgjengelig i en kategori, igjen, bruk ls-kommandoen og filtrer resultatet via grep-verktøyet for å søke etter en tilpasset applikasjon.

I eksemplene nedenfor vil søke etter mongodb database tilgjengelige pakker og clam antivirus sikkerhetspakker.

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

Som du kan se, kan flere versjoner av en applikasjon være tilgjengelig i FreeBSD-porter.

5. Hvis du ikke vet hvilken kategori programvaren tilhører, kan du bruke en annen tilnærming til å finne programvarekategorien. Bruk shell globbing jokertegn * for å søke etter et mønster gjennom hele portkatalogtreet.

Forutsatt at du vil se i hvilken kategori du kan finne programvarepakkene for mailx-verktøyet, kan du kjøre følgende kommando.

ls /usr/ports/*/*mailx

6. En annen metode for å søke etter en programvarepakke og kategorien pakken tilhører, er å bruke locate-kommandoen mot et strengmønster.

Før du utfører søkestrengen, bør du oppdatere lokaliseringsdatabasen med følgende kommando.

/usr/libexec/locate.updatedb

7. Etter at du har oppdatert lokaliseringsdatabasen, søk etter en bestemt programvarepakke ved å bruke et søkeordmønster fra pakkens navn. For eksempel, hvis du vil søke etter mailx-verktøyet, kan du kjøre kommandoen nedenfor.

locate mailx

Som du kan se, er det to tilgjengelige pakker for mailx-verktøyet, begge plassert i kategorien /usr/ports/mail/.

8. I likhet med å finne en pakke med locate-kommando, kan du også bruke whereis-kommandoen for å se applikasjonskategorien.

whereis mailx

Søk etter programvare via PKG-kommando i FreeBSD

9. Den enkleste metoden for å søke og finne en applikasjon i FreeBSD er via kommandolinjen for PKG-pakkehåndtering. For å søke i de binære pakkene etter en applikasjon, for eksempel postfix-programvare, utfør kommandoen nedenfor.

pkg search package_name

10. Hvis du vil se hvilken kategori pakken tilhører, kjør samme kommando som ovenfor med -o-flagget, som illustrert i eksemplene nedenfor.

pkg search -o package_name

Administrer programvare i FreeBSD

11. For å installere en forhåndskompilert pakke fra Ports-repositories i FreeBSD, utsted kommandoen pkg som illustrert i eksemplet nedenfor.

pkg install package_name

12. For å spørre etter informasjon om en spesifikk installert pakke i systemet, utfør kommandoen nedenfor.

pkg info package_name

13. Kommandobryteren pkg info vil vise meldingen "Ingen pakker som samsvarer med pakkenavn " hvis programvarepakken ikke allerede er installert i systemet ditt, som vist i skjermbildet nedenfor.

pkg info tcpdump

14. For å liste opp alle installerte programvarepakker i FreeBSD, utfør kommandoen pkg info uten noe alternativ eller brytere.

grep-filteret mot pkg info-kommandoen kan vise deg om noen spesifikke pakker eller applikasjoner allerede er til stede i systemet, som illustrert i eksemplet nedenfor.

pkg info | grep ftp

15. For å fjerne en pakke fra systemet, utfør kommandoene nedenfor.

pkg remove package_name
or
pkg delete package_name

16. I tilfelle du ønsker å forhindre fjerning eller endring av en installert pakke, kan du bruke lås-bryteren for pkg-kommandoen, som vist i bildet nedenfor.

pkg lock package_name

Lås opp kommandobryteren pkg lar deg fjerne pakkebegrensningen og endre eller avinstallere pakken.

pkg unlock package_name

17. For å finne ut hvilken installert pakke en kommando eller en kjørbar fil tilhører, utfør følgende kommando, som illustrert i skjermbildeeksemplene nedenfor.

pkg which /path/to/executable

18. For å laste ned en pakke lokalt fra Ports-depotet, uten å installere pakken på systemet, kjør pkg-kommandoen med hentebryter.

Den nedlastede binære pakken, som er en komprimert .txz-fil, kan finnes i /var/cache/pkg/ systembane.

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

19. Utfør kommandoen nedenfor for å sjekke om de installerte pakkene er utsatt for vanlige sårbarheter eller feil.

pkg audit -F

For å se en liste over gamle sårbarheter som påvirker en programvarepakke i tidligere versjoner, utfør kommandoen nedenfor.

pkg audit package_name

Nedenfor er et utdrag av alle kjente sårbarheter som ble funnet i Nginx-nettserveren kompilert for 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
...

Oppretthold pakkeadministrasjonsverktøyet i FreeBSD

20. For å sikre at programvarelagre og alle installerte pakker og er oppdatert med de nyeste versjonene eller sikkerhetsoppdateringene, utfør følgende kommandoer.

pkg update
pkg upgrade

21. For å vise eksterne depoter og lokale pakkestatistikker, for eksempel hvor mange pakker som er installert i systemet og hvor mye diskplass som er fylt av installert programvare, utfør følgende kommando.

pkg stats

22. For å slette alle avhengigheter som er etterlatt av installerte pakker i systemet, utfør kommandoen nedenfor.

pkg autoremove

23. For å automatisk slette pakkeadministrasjonens lokale hurtigbufferkatalog for eksternt nedlastede pakker, kjør kommandoen nedenfor. Du bør først bekrefte listen over lokalt nedlastede binære pakker.

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

Det er alt! Som du kan se, har FreeBSD et imponerende pakkeinnsamlingssystem, som ligner på pakkehåndteringsverktøy som brukes i Linux-distribusjoner som Yum, RPM og APT med et stort antall forhåndskompilerte programvarebinærfiler og en enkel og effektiv kommandolinje, pkg, som kan brukes til å administrere programvaren på en anstendig måte.