23 Nyttige PKG-kommandoeksempler til styring af pakker i FreeBSD


I denne vejledning forklarer vi, hvordan du administrerer forud kompilerede binære pakkeapplikationer i FreeBSD ved hjælp af pakkehåndteringsværktøjet ved navn PKG via Ports-softwareindsamlingsregisteret.

Ports repository tilbyder de nødvendige værktøjer til kompilering af applikationer fra kildekoden sammen med deres afhængigheder, men opretholder også en enorm samling af præ-kompilerede pakker, i øjeblikket mere end 24.000 pakker, der kan installeres på et FreeBSD-system med pkg-kommando.

  1. FreeBSD 11.x installation

Søg og find applikationer i Ports Tree i FreeBSD

1. Porteopbevaringssteder er opdelt i kategorier i FreeBSD, hvor hver kategori er repræsenteret af en mappe i/usr/porte/filsystemsti.

En simpel liste over biblioteket/usr/porte/viser alle tilgængelige kategorier som vist i nedenstående skærmbillede.

# ls /usr/ports/

2. For at se alle tilgængelige applikationer, der tilhører en kategori, skal du udstede en ls-kommando mod kategoribiblioteket.

Antag, at du vil vise alle tilgængelige softwarepakker, som databasekategorien har at tilbyde, udfør nedenstående kommando i konsollen. Rør resultatet via mindre kommando for at navigere lettere gennem output.

# ls /usr/ports/databases/ | less

3. For at se, hvor mange pakker der er tilgængelige i en kategori, skal du angive kategorikataloget og føre resultatet via wc-kommandoen som vist i nedenstående eksempel.

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

Som du kan se i ovenstående skærmbillede, indeholder FreeBSD-databasekategorien mere end 1000 databaseforudfyldte pakker.

4. For at se, om et specifikt program er tilgængeligt i en kategori, skal du igen bruge grep-værktøjet til at søge efter et brugerdefineret program.

I nedenstående eksempler vil man søge efter mongodb-database tilgængelige pakker og clam-antivirus-sikkerhedspakker.

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

Som du kan se, kan flere versioner af en applikation være tilgængelig i FreeBSD-porte.

5. Hvis du ikke ved, hvilken kategori en software tilhører, kan du bruge en anden tilgang til at finde softwarekategorien. Brug shell globbing wildcard * tegn til at søge efter et mønster gennem hele Ports katalogetræet.

Forudsat at du vil se i hvilken kategori du kan finde softwarepakker til mailx-værktøjet, kan du køre følgende kommando.

# ls /usr/ports/*/*mailx

6. En anden metode til søgning i en softwarepakke og den kategori, pakken tilhører, er ved hjælp af lokaliseringskommandoen mod et strengmønster.

Før du udfører søgestrengen, skal du opdatere lokaliseringsdatabasen med følgende kommando.

# /usr/libexec/locate.updatedb

7. Når du har opdateret lokaliseringsdatabasen, skal du søge efter en bestemt softwarepakke ved hjælp af et nøgleordsmønster fra pakkens navn. For eksempel, hvis du vil søge efter mailx-værktøjet, kan du køre kommandoen nedenfor.

# locate mailx

Som du kan se, er der to pakker til rådighed for mailx-værktøjet, begge placeret i/usr/porte/mail/kategori.

8. Svarende til at finde en pakke med whereis-kommando, for at se applikationskategorien.

# whereis mailx

Søg i software via PKG Command i FreeBSD

9. Den nemmeste metode til at søge og finde et program i FreeBSD er via kommandolinjen PKG-pakkehåndtering. For at søge i de binære pakker efter et program, for eksempel postfix-software, skal du udstede nedenstående kommando.

# pkg search package_name

10. Hvis du vil se, hvilken kategori pakken tilhører, skal du køre den samme kommando som ovenfor med -o -flagget som illustreret i eksemplerne nedenfor.

# pkg search -o package_name

Administrer software i FreeBSD

11. For at installere en forud kompileret pakke fra Ports repositories i FreeBSD, skal du udstede kommandoen pkg som illustreret i nedenstående eksempel.

# pkg install package_name

12. For at få forespørgsel om oplysninger om en bestemt installeret pakke i systemet skal du udstede kommandoen nedenfor.

# pkg info package_name

13. Kommandokontakten pkg info viser meddelelsen "Ingen pakker (pakker), der matcher pakkenavn", hvis softwarepakken ikke allerede er installeret i dit system, som vist i nedenstående skærmbillede.

# pkg info tcpdump

14. For at få vist alle installerede softwarepakker i FreeBSD skal du udføre kommandoen pkg info uden nogen indstilling eller omskiftere.

Kommandoen grep filter mod pkg info kan vise dig, om der allerede findes nogle specifikke pakker eller applikationer i systemet, som illustreret i nedenstående eksempel.

# pkg info | grep ftp

15. For at fjerne en pakke fra systemet skal du udstede nedenstående kommandoer.

# pkg remove package_name
or
# pkg delete package_name

16. Hvis du vil forhindre fjernelse eller ændring af en installeret pakke, kan du bruge låsekontakten til pkg-kommando, som vist i nedenstående billede.

# pkg lock package_name

Lås op pkg kommandokontakt giver dig mulighed for at fjerne pakkebegrænsningen og ændre eller afinstallere pakken.

# pkg unlock package_name

17. For at finde ud af, hvilken installeret pakke en kommando eller en eksekverbar fil tilhører, skal du udstede følgende kommando som illustreret i nedenstående screenshot-eksempler.

# pkg which /path/to/executable

18. For at downloade en pakke lokalt fra Ports repository uden at installere pakken på systemet, skal du køre kommandoen pkg med hente-kontakten.

Den downloadede pakke binære, som er en komprimeret .txz-fil, kan findes i/var/cache/pkg/systemsti.

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

19. For at kontrollere, om de installerede pakker er udsat for almindelige sårbarheder eller bugs, skal du udstede kommandoen nedenfor.

# pkg audit -F

For at se en liste over gamle sårbarheder, der, når de påvirker en softwarepakke i tidligere versioner, udsteder nedenstående kommando.

# pkg audit package_name

Nedenfor er et uddrag af alle kendte sårbarheder, der blev fundet på Nginx-webserveren udarbejdet til 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
...

Vedligehold pakkehåndteringsværktøj i FreeBSD

20. For at sikre, at softwarelagre og alle dine installerede pakker og er opdateret med de nyeste versioner eller sikkerhedsrettelser, skal du udstede følgende kommandoer.

# pkg update
# pkg upgrade

21. For at vise fjernopbevaringssteder og statistikker over lokale pakker, f.eks. Hvor mange pakker der er installeret i dit system, og hvor meget diskplads der er fyldt med installeret software, skal du udføre følgende kommando.

# pkg stats

22. For at slette alle afhængigheder, der er efterladt af installerede pakker i systemet, udsted nedenstående kommando.

# pkg autoremove

23. Kør nedenstående kommando for automatisk at slette pakkehåndtering lokalt cache-bibliotek for downloadede fjernpakker. Du skal først kontrollere listen over lokalt downloadede binære pakker.

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

Det er alt! Som du kan se, har FreeBSD et imponerende pakkeindsamlingssystem, der ligner pakkehåndteringsværktøjer, der bruges i Linux-distributioner som APT med et stort antal forud kompilerede softwarebinarier og en enkel og effektiv kommandolinie, pkg, som kan bruges til administrere softwaren på en anstændig måde.