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