Website-Suche

23 nützliche PKG-Befehlsbeispiele zum Verwalten von Paketen in FreeBSD


In diesem Tutorial erklären wir, wie man vorkompilierte Binärpaketanwendungen in FreeBSD mit Hilfe des Paketverwaltungstools namens PKG über Ports verwaltet > Software-Sammlungs-Repository.

Das Ports-Repository bietet die notwendigen Tools zum Kompilieren von Anwendungen aus dem Quellcode sowie deren Abhängigkeiten, verwaltet aber auch eine riesige Sammlung vorkompilierter Pakete, derzeit mehr als 24.000 Pakete. das auf einem FreeBSD-System mit dem Befehl pkg installiert werden kann.

Anforderungen:

  1. FreeBSD 11.x-Installation

Suchen und finden Sie Anwendungen im Ports-Baum in FreeBSD

1. Port-Repositorys sind in FreeBSD in Kategorien unterteilt, wobei jede Kategorie durch ein Verzeichnis im Dateisystempfad /usr/ports/ dargestellt wird.

Eine einfache Auflistung des Verzeichnisses /usr/ports/ zeigt alle verfügbaren Kategorien an, wie im folgenden Screenshot gezeigt.

ls /usr/ports/

2. Um alle verfügbaren Anwendungen anzuzeigen, die zu einer Kategorie gehören, geben Sie einen ls-Befehl für das Kategorieverzeichnis ein.

Angenommen, Sie möchten alle verfügbaren Softwarepakete anzeigen, die die Datenbankkategorie zu bieten hat, führen Sie den folgenden Befehl in der Konsole aus. Leiten Sie das Ergebnis über den Befehl less weiter, um einfacher durch die Ausgabe zu navigieren.

ls /usr/ports/databases/ | less

3. Um anzuzeigen, wie viele Pakete in einer Kategorie verfügbar sind, listen Sie das Kategorieverzeichnis auf und leiten Sie das Ergebnis über den Befehl wc weiter, wie im folgenden Beispiel gezeigt.

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

Wie Sie im obigen Screenshot sehen können, enthält die FreeBSD-Datenbankkategorie mehr als 1000 vorkompilierte Datenbankpakete.

4. Um zu sehen, ob eine bestimmte Anwendung in einer Kategorie verfügbar ist, verwenden Sie erneut den Befehl ls und filtern Sie das Ergebnis über das Dienstprogramm grep, um nach einer benutzerdefinierten Anwendung zu suchen.

In den folgenden Beispielen wird nach verfügbaren Paketen für die mongodb-Datenbank und clam antivirus-Sicherheitspaketen gesucht.

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

Wie Sie sehen, können in FreeBSD-Ports mehrere Versionen einer Anwendung verfügbar sein.

5. Falls Sie nicht wissen, zu welcher Kategorie eine Software gehört, können Sie einen anderen Ansatz verwenden, um die Softwarekategorie zu finden. Verwenden Sie das Shell-Globbing-Platzhalterzeichen *, um im gesamten Portverzeichnisbaum nach einem Muster zu suchen.

Angenommen, Sie möchten sehen, in welcher Kategorie Sie die Softwarepakete für das Dienstprogramm mailx finden, können Sie den folgenden Befehl ausführen.

ls /usr/ports/*/*mailx

6. Eine weitere Methode zum Durchsuchen eines Softwarepakets und der Kategorie, zu der das Paket gehört, ist die Verwendung des Befehls „locate“ anhand eines Zeichenfolgenmusters.

Bevor Sie die Suchzeichenfolge ausführen, sollten Sie die Suchdatenbank mit dem folgenden Befehl aktualisieren.

/usr/libexec/locate.updatedb

7. Nachdem Sie die Suchdatenbank aktualisiert haben, suchen Sie nach einem bestimmten Softwarepaket, indem Sie ein Schlüsselwortmuster aus dem Namen des Pakets verwenden. Wenn Sie beispielsweise nach dem Dienstprogramm mailx suchen möchten, können Sie den folgenden Befehl ausführen.

locate mailx

Wie Sie sehen können, stehen für das Dienstprogramm mailx zwei Pakete zur Verfügung, die sich beide in der Kategorie /usr/ports/mail/ befinden.

8. Ähnlich wie beim Suchen eines Pakets mit dem Befehl „locate“ können Sie auch den Befehl „whereis“ verwenden, um die Anwendungskategorie anzuzeigen.

whereis mailx

Suchen Sie Software über den PKG-Befehl in FreeBSD

9. Die einfachste Methode, eine Anwendung in FreeBSD zu suchen und zu finden, ist die Befehlszeile zur PKG-Paketverwaltung. Um die Binärpakete nach einer Anwendung, beispielsweise Postfix-Software, zu durchsuchen, geben Sie den folgenden Befehl ein.

pkg search package_name

10. Wenn Sie sehen möchten, zu welcher Kategorie das Paket gehört, führen Sie denselben Befehl wie oben mit dem Flag -o aus, wie in den folgenden Beispielen dargestellt.

pkg search -o package_name

Verwalten Sie Software in FreeBSD

11. Um ein vorkompiliertes Paket aus Ports-Repositorys in FreeBSD zu installieren, geben Sie den Befehl pkg ein, wie im folgenden Beispiel dargestellt.

pkg install package_name

12. Um Informationen zu einem bestimmten installierten Paket im System abzufragen, geben Sie den folgenden Befehl ein.

pkg info package_name

13. Der Befehlsschalter pkg info zeigt die Meldung „Keine Pakete mit Paketname an, wenn das Softwarepaket noch nicht installiert ist Ihr System, wie im folgenden Screenshot gezeigt.

pkg info tcpdump

14. Um alle installierten Softwarepakete in FreeBSD aufzulisten, führen Sie den Befehl pkg info ohne Optionen oder Schalter aus.

Der Befehl grep filter against pkg info kann Ihnen anzeigen, ob bestimmte Pakete oder Anwendungen bereits im System vorhanden sind, wie im folgenden Beispiel dargestellt.

pkg info | grep ftp

15. Um ein Paket aus dem System zu entfernen, geben Sie die folgenden Befehle ein.

pkg remove package_name
or
pkg delete package_name

16. Wenn Sie das Entfernen oder Ändern eines installierten Pakets verhindern möchten, können Sie den Schalter lock für den Befehl pkg verwenden, wie im folgenden Bild gezeigt.

pkg lock package_name

Mit dem Befehlsschalter Unlock pkg können Sie die Paketbeschränkung aufheben und das Paket ändern oder deinstallieren.

pkg unlock package_name

17. Um herauszufinden, zu welchem installierten Paket ein Befehl oder eine ausführbare Datei gehört, geben Sie den folgenden Befehl ein, wie in den folgenden Screenshot-Beispielen dargestellt.

pkg which /path/to/executable

18. Um ein Paket lokal aus dem Ports-Repository herunterzuladen, ohne das Paket auf dem System zu installieren, führen Sie den pkg-Befehl mit dem Befehl aus Fetch-Schalter.

Die heruntergeladene Paketbinärdatei, bei der es sich um eine komprimierte .txz-Datei handelt, befindet sich im Systempfad /var/cache/pkg/.

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

19. Um zu überprüfen, ob die installierten Pakete häufigen Schwachstellen oder Fehlern ausgesetzt sind, geben Sie den folgenden Befehl ein.

pkg audit -F

Um eine Liste alter Schwachstellen anzuzeigen, die ein Softwarepaket in früheren Versionen betrafen, geben Sie den folgenden Befehl ein.

pkg audit package_name

Nachfolgend finden Sie einen Auszug aller bekannten Schwachstellen, die im für FreeBSD kompilierten Nginx-Webserver gefunden wurden.

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

Pflegen Sie das Paketverwaltungs-Dienstprogramm in FreeBSD

20. Um sicherzustellen, dass Software-Repositorys und alle Ihre installierten Pakete mit den neuesten Versionen oder Sicherheitspatches auf dem neuesten Stand sind, geben Sie die folgenden Befehle ein.

pkg update
pkg upgrade

21. Um Remote-Repositorys und lokale Paketstatistiken anzuzeigen, z. B. wie viele Pakete in Ihrem System installiert sind und wie viel Speicherplatz durch installierte Software belegt ist, führen Sie den folgenden Befehl aus.

pkg stats

22. Um alle Abhängigkeiten zu löschen, die von installierten Paketen im System zurückbleiben, geben Sie den folgenden Befehl ein.

pkg autoremove

23. Um das lokale Cache-Verzeichnis der Paketverwaltung für remote heruntergeladene Pakete automatisch zu löschen, führen Sie den folgenden Befehl aus. Sie sollten zunächst die Liste der lokal heruntergeladenen Binärpakete überprüfen.

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

Das ist alles! Wie Sie sehen können, verfügt FreeBSD über ein beeindruckendes Paketsammelsystem, ähnlich den Paketverwaltungstools, die in Linux-Distributionen wie Yum, RPM und APT verwendet werden, mit einer großen Anzahl vorkompilierter Software-Binärdateien und einem einfachen und einfachen System effektive Befehlszeile, pkg, mit der sich die Software auf anständige Weise verwalten lässt.