Recherche de site Web

23 exemples de commandes PKG utiles pour gérer les packages dans FreeBSD


Dans ce didacticiel, nous expliquerons comment gérer les applications de packages binaires précompilées dans FreeBSD à l'aide de l'outil de gestion de packages nommé PKG via Ports . référentiel de collection de logiciels.

Le référentiel Ports offre les outils nécessaires pour compiler des applications à partir du code source, ainsi que leurs dépendances, mais maintient également une énorme collection de packages précompilés, actuellement plus de 24 000 packages, qui peut être installé sur un système FreeBSD avec la commande pkg.

Exigences:

  1. Installation de FreeBSD 11.x

Rechercher et trouver des applications dans l'arborescence des ports dans FreeBSD

1. Les référentiels de ports sont divisés en catégories dans FreeBSD, chaque catégorie étant représentée par un répertoire dans le chemin du système de fichiers /usr/ports/.

Une simple liste du répertoire /usr/ports/ affichera toutes les catégories disponibles, comme indiqué dans la capture d'écran ci-dessous.

ls /usr/ports/

2. Pour voir toutes les applications disponibles appartenant à une catégorie, émettez une commande ls sur le répertoire de catégorie.

Supposons que vous souhaitiez afficher tous les packages logiciels disponibles que la catégorie de base de données a à offrir, exécutez la commande ci-dessous dans la console. Dirigez le résultat via la commande less pour naviguer plus facilement dans la sortie.

ls /usr/ports/databases/ | less

3. Afin de voir combien de packages sont disponibles dans une catégorie, répertoriez le répertoire de la catégorie et transférez le résultat via la commande wc comme indiqué dans l'exemple ci-dessous.

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

Comme vous pouvez le voir dans la capture d'écran ci-dessus, la catégorie de base de données FreeBSD contient plus de 1 000 packages pré-conformes à la base de données.

4. Afin de voir si une application spécifique est disponible dans une catégorie, utilisez à nouveau la commande ls et filtrez le résultat via l'utilitaire grep afin de rechercher une application personnalisée.

Dans les exemples ci-dessous, nous rechercherons les packages disponibles dans la base de données mongodb et les packages de sécurité antivirus clam.

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

Comme vous pouvez le constater, plusieurs versions d'une application peuvent être disponibles dans les ports FreeBSD.

5. Si vous ne savez pas à quelle catégorie appartient un logiciel, vous pouvez utiliser une autre approche pour trouver la catégorie de logiciel. Utilisez le caractère générique * du shell globbing pour rechercher un modèle dans toute l'arborescence des répertoires des ports.

En supposant que vous souhaitiez voir dans quelle catégorie vous pouvez trouver les packages logiciels pour l'utilitaire mailx, vous pouvez exécuter la commande suivante.

ls /usr/ports/*/*mailx

6. Une autre méthode pour rechercher un progiciel et la catégorie à laquelle il appartient consiste à utiliser la commande Locate par rapport à un modèle de chaîne.

Avant d'effectuer la chaîne de recherche, vous devez mettre à jour la base de données de localisation avec la commande suivante.

/usr/libexec/locate.updatedb

7. Après avoir mis à jour la base de données de localisation, recherchez un progiciel spécifique en utilisant un modèle de mot-clé provenant du nom du package. Par exemple, si vous souhaitez rechercher l'utilitaire mailx, vous pouvez exécuter la commande ci-dessous.

locate mailx

Comme vous pouvez le voir, deux packages sont disponibles pour l'utilitaire mailx, tous deux situés dans la catégorie /usr/ports/mail/.

8. Semblable à la recherche d'un package avec la commande Locate, vous pouvez également utiliser la commande Whereis pour afficher la catégorie d'application.

whereis mailx

Rechercher un logiciel via la commande PKG dans FreeBSD

9. La méthode la plus simple pour rechercher et trouver une application dans FreeBSD consiste à utiliser la ligne de commande de gestion des packages PKG. Afin de rechercher les packages binaires d'une application, par exemple le logiciel postfix, exécutez la commande ci-dessous.

pkg search package_name

10. Si vous souhaitez voir à quelle catégorie appartient le package, exécutez la même commande que ci-dessus avec l'indicateur -o, comme illustré dans les exemples ci-dessous.

pkg search -o package_name

Gérer les logiciels sous FreeBSD

11. Afin d'installer un package précompilé à partir des référentiels Ports dans FreeBSD, exécutez la commande pkg comme illustré dans l'exemple ci-dessous.

pkg install package_name

12. Pour demander des informations sur un package spécifique installé dans le système, exécutez la commande ci-dessous.

pkg info package_name

13. Le commutateur de commande pkg info affichera le message « Aucun package(s) correspondant au nom_du_package » si le package logiciel n'est pas déjà installé dans votre système, comme indiqué dans la capture d'écran ci-dessous.

pkg info tcpdump

14. Afin de répertorier tous les packages logiciels installés dans FreeBSD, exécutez la commande pkg info sans aucune option ni commutateur.

Le filtre grep par rapport à la commande pkg info peut vous indiquer si certains packages ou applications spécifiques sont déjà présents dans le système, comme illustré dans l'exemple ci-dessous.

pkg info | grep ftp

15. Afin de supprimer un package du système, exécutez les commandes ci-dessous.

pkg remove package_name
or
pkg delete package_name

16. Si vous souhaitez empêcher la suppression ou la modification d'un package installé, vous pouvez utiliser le commutateur lock pour la commande pkg, comme indiqué dans l'image ci-dessous.

pkg lock package_name

Le commutateur de commande Déverrouiller pkg vous permettra de supprimer la restriction du package et de modifier ou désinstaller le package.

pkg unlock package_name

17. Afin de savoir à quel package installé appartient une commande ou un fichier exécutable, exécutez la commande suivante, comme illustré dans les exemples de capture d'écran ci-dessous.

pkg which /path/to/executable

18. Pour télécharger localement un package à partir du référentiel Ports, sans installer le package sur le système, exécutez la commande pkg avec le récupérer le commutateur.

Le binaire du package téléchargé, qui est un fichier .txz compressé, se trouve dans le chemin système /var/cache/pkg/.

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

19. Pour vérifier si les packages installés sont exposés à des vulnérabilités ou des bugs courants, exécutez la commande ci-dessous.

pkg audit -F

Pour voir une liste des anciennes vulnérabilités qui affectaient un progiciel dans les versions antérieures, exécutez la commande ci-dessous.

pkg audit package_name

Vous trouverez ci-dessous un extrait de toutes les vulnérabilités connues trouvées dans le serveur Web Nginx compilé pour 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
...

Maintenir l'utilitaire de gestion des packages dans FreeBSD

20. Pour vous assurer que les référentiels de logiciels et tous vos packages installés sont à jour avec les dernières versions ou correctifs de sécurité, exécutez les commandes suivantes.

pkg update
pkg upgrade

21. Pour afficher les statistiques des référentiels distants et des packages locaux, telles que le nombre de packages installés sur votre système et la quantité d'espace disque occupé par les logiciels installés, exécutez la commande suivante.

pkg stats

22. Pour supprimer toutes les dépendances laissées par les packages installés dans le système, exécutez la commande ci-dessous.

pkg autoremove

23. Afin d'effacer automatiquement le répertoire de cache local de gestion des packages pour les packages téléchargés à distance, exécutez la commande ci-dessous. Vous devez d'abord vérifier la liste des packages binaires téléchargés localement.

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

C'est tout! Comme vous pouvez le constater, FreeBSD dispose d'un système de collecte de paquets impressionnant, similaire aux outils de gestion de paquets utilisés dans les distributions Linux telles que Yum, RPM et APT, avec un grand nombre de binaires logiciels précompilés et un système simple et ligne de commande efficace, pkg, qui peut être utilisée pour gérer le logiciel de manière décente.