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:
- 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.