Zoeken op website

23 Handige voorbeelden van PKG-opdrachten om pakketten in FreeBSD te beheren


In deze tutorial leggen we uit hoe u vooraf gecompileerde binaire pakketapplicaties in FreeBSD kunt beheren met behulp van de pakketbeheertool genaamd PKG via Ports > repository voor softwareverzameling.

Ports repository biedt de noodzakelijke tools voor het compileren van applicaties vanuit de broncode, naast hun afhankelijkheden, maar onderhoudt ook een enorme verzameling vooraf gecompileerde pakketten, momenteel meer dan 24.000 pakketten, dat op een FreeBSD-systeem kan worden geïnstalleerd met de opdracht pkg.

Vereisten:

  1. FreeBSD 11.x-installatie

Zoek en vind toepassingen in de poortboom in FreeBSD

1. Portrepository's zijn onderverdeeld in categorieën in FreeBSD, waarbij elke categorie wordt vertegenwoordigd door een map in het bestandssysteempad /usr/ports/.

Een eenvoudige lijst van de map /usr/ports/ zal alle beschikbare categorieën weergeven, zoals weergegeven in de onderstaande schermafbeelding.

ls /usr/ports/

2. Om alle beschikbare applicaties te zien die tot een categorie behoren, geeft u een ls-opdracht in de categoriemap.

Stel dat u alle beschikbare softwarepakketten wilt weergeven die de databasecategorie te bieden heeft, voer dan het onderstaande commando uit in de console. Pipetteer het resultaat via minder commando's om gemakkelijker door de uitvoer te navigeren.

ls /usr/ports/databases/ | less

3. Om te zien hoeveel pakketten er in een categorie beschikbaar zijn, vermeldt u de categoriemap en pipet u het resultaat via de wc-opdracht, zoals weergegeven in het onderstaande voorbeeld.

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

Zoals u in de bovenstaande schermafbeelding kunt zien, bevat de FreeBSD-databasecategorie meer dan 1000 vooraf compatibele databasepakketten.

4. Om te zien of een specifieke applicatie beschikbaar is in een categorie, gebruikt u opnieuw de opdracht ls en filtert u het resultaat via het grep-hulpprogramma om naar een aangepaste applicatie te zoeken.

In de onderstaande voorbeelden wordt gezocht naar beschikbare mongodb databasepakketten en clam antivirus beveiligingspakketten.

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

Zoals u kunt zien, kunnen er meerdere versies van een applicatie beschikbaar zijn in FreeBSD Ports.

5. Als u niet weet tot welke categorie een software behoort, kunt u een andere aanpak gebruiken om de softwarecategorie te vinden. Gebruik het shell-globbing jokerteken * om naar een patroon te zoeken in de gehele poortstructuur.

Ervan uitgaande dat u wilt zien in welke categorie u de softwarepakketten voor het hulpprogramma mailx kunt vinden, kunt u de volgende opdracht uitvoeren.

ls /usr/ports/*/*mailx

6. Een andere methode voor het zoeken naar een softwarepakket en de categorie waartoe het pakket behoort, is door het commando 'localiseren' te gebruiken tegen een tekenreekspatroon.

Voordat u de zoekreeks uitvoert, moet u de locatiedatabase bijwerken met de volgende opdracht.

/usr/libexec/locate.updatedb

7. Nadat u de locatiedatabase heeft bijgewerkt, zoekt u naar een specifiek softwarepakket met behulp van een trefwoordpatroon uit de naam van het pakket. Als u bijvoorbeeld naar het hulpprogramma mailx wilt zoeken, kunt u de onderstaande opdracht uitvoeren.

locate mailx

Zoals u kunt zien, zijn er twee pakketten beschikbaar voor het hulpprogramma mailx, beide in de categorie /usr/ports/mail/.

8. Net als bij het vinden van een pakket met de opdracht 'local', kunt u ook de opdracht 'whereis' gebruiken om de toepassingscategorie te bekijken.

whereis mailx

Zoek software via PKG-opdracht in FreeBSD

9. De eenvoudigste methode om een applicatie in FreeBSD te zoeken en te vinden is via de opdrachtregel voor PKG-pakketbeheer. Om in de binaire pakketten naar een toepassing te zoeken, bijvoorbeeld postfix-software, geeft u het onderstaande commando op.

pkg search package_name

10. Als u wilt zien tot welke categorie het pakket behoort, voert u hetzelfde commando uit als hierboven met de vlag -o, zoals geïllustreerd in de onderstaande voorbeelden.

pkg search -o package_name

Beheer software in FreeBSD

11. Om een vooraf gecompileerd pakket uit Ports-repository's in FreeBSD te installeren, geeft u de opdracht pkg op, zoals geïllustreerd in het onderstaande voorbeeld.

pkg install package_name

12. Om informatie op te vragen over een specifiek geïnstalleerd pakket in het systeem, voert u de onderstaande opdracht uit.

pkg info package_name

13. De opdrachtoptie pkg info geeft het bericht “Geen pakketten(s) die overeenkomen met pakketnaam” weer als het softwarepakket nog niet is geïnstalleerd in uw systeem, zoals weergegeven in de onderstaande schermafbeelding.

pkg info tcpdump

14. Om alle geïnstalleerde softwarepakketten in FreeBSD weer te geven, voert u de opdracht pkg info uit zonder enige optie of schakelaars.

Het grep-filter tegen de opdracht pkg info kan u laten zien of bepaalde specifieke pakketten of applicaties al in het systeem aanwezig zijn, zoals geïllustreerd in het onderstaande voorbeeld.

pkg info | grep ftp

15. Om een pakket van het systeem te verwijderen, voert u de onderstaande opdrachten uit.

pkg remove package_name
or
pkg delete package_name

16. Als u de verwijdering of wijziging van een geïnstalleerd pakket wilt voorkomen, kunt u de lock-schakelaar gebruiken voor de pkg-opdracht, zoals weergegeven in de onderstaande afbeelding.

pkg lock package_name

Met de opdrachtschakelaar Ontgrendelen pkg kunt u de pakketbeperking verwijderen en het pakket wijzigen of verwijderen.

pkg unlock package_name

17. Om erachter te komen tot welk geïnstalleerd pakket een opdracht of een uitvoerbaar bestand behoort, voert u de volgende opdracht uit, zoals geïllustreerd in de onderstaande schermafbeeldingsvoorbeelden.

pkg which /path/to/executable

18. Om lokaal een pakket te downloaden uit de Ports repository, zonder het pakket op het systeem te installeren, voert u de pkg-opdracht uit met de haal schakelaar.

Het gedownloade binaire pakket, dat een gecomprimeerd .txz-bestand is, kan worden gevonden in het systeempad /var/cache/pkg/.

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

19. Om te controleren of de geïnstalleerde pakketten zijn blootgesteld aan veelvoorkomende kwetsbaarheden of bugs, voert u het onderstaande commando uit.

pkg audit -F

Om een lijst met oude kwetsbaarheden te zien die van invloed waren op een softwarepakket in eerdere versies, voert u het onderstaande commando uit.

pkg audit package_name

Hieronder vindt u een uittreksel van alle bekende kwetsbaarheden die zijn gevonden in de Nginx webserver die is gecompileerd voor 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
...

Onderhoud het pakketbeheerhulpprogramma in FreeBSD

20. Om ervoor te zorgen dat softwarebronnen en al uw geïnstalleerde pakketten up-to-date zijn met de nieuwste versies of beveiligingspatches, geeft u de volgende opdrachten uit.

pkg update
pkg upgrade

21. Om externe opslagplaatsen en lokale pakketstatistieken weer te geven, zoals hoeveel pakketten er op uw systeem zijn geïnstalleerd en hoeveel schijfruimte wordt ingenomen door geïnstalleerde software, voert u de volgende opdracht uit.

pkg stats

22. Om alle afhankelijkheden te verwijderen die zijn achtergelaten door geïnstalleerde pakketten in het systeem, voert u het onderstaande commando uit.

pkg autoremove

23. Om automatisch de lokale cachemap van het pakketbeheer voor op afstand gedownloade pakketten te wissen, voert u de onderstaande opdracht uit. U moet eerst de lijst met lokaal gedownloade binaire pakketten verifiëren.

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

Dat is alles! Zoals u kunt zien heeft FreeBSD een indrukwekkend systeem voor het verzamelen van pakketten, vergelijkbaar met pakketbeheertools die worden gebruikt in Linux-distributies zoals Yum, RPM en APT, met een groot aantal vooraf gecompileerde binaire softwarebestanden en een eenvoudige en effectieve opdrachtregel, pkg, die kan worden gebruikt om de software op een fatsoenlijke manier te beheren.