GNU/Linux >> Tutoriels Linux >  >> FreeBSD

Utilisation de Portsnap pour mettre à jour la collection d'arborescences de ports FreeBSD

Portsnap est un système alternatif pour distribuer et mettre à jour en toute sécurité l'arborescence des ports FreeBSD, qui est plus facile à utiliser que CVSup. Portsnap a été inclus pour la première fois dans FreeBSD 6.0. Comme CVSup, Portsnap utilise un modèle pull de mise à jour :les arborescences de ports packagées et signées sont placées sur un serveur Web qui attend passivement que les clients demandent des fichiers en exécutant portsnap manuellement par les utilisateurs ou en configurant une tâche cron pour télécharger automatiquement les mises à jour sur un serveur Web. régulièrement.

Sur les anciens systèmes FreeBSD, Portsnap n'est pas automatiquement inclus, mais il peut être installé à partir du port sysutils/portsnap en utilisant la commande :

# pkg_add -r portsnap

La première récupération et mise à jour de Portsnap comprime les instantanés de l'arborescence des ports FreeBSD stockés dans /var/db/portsnap/ (dans /usr/local/portsnap/ si Portsnap est installé à partir de la collection de ports FreeBSD) par défaut, puis extrait et met à jour uniquement les fichiers non compressés. arborescence des ports actifs dans /usr/ports.

Le comportement et le fonctionnement de Portsnap sont contrôlés par le fichier de configuration portsnap.conf situé dans /etc (dans /usr/local/etc/ si Portsnap est installé à partir de la collection de ports FreeBSD et que le fichier de configuration n'est pas automatiquement généré lorsqu'il vient d'être installé, à la place vous trouverez portsnap.conf.sample, copiez-le simplement en tant que portsnap.conf). Généralement, le fichier de configuration par défaut fera son travail.

En ligne de commande, les options suivantes sont prises en charge, bien que la plupart du temps elles n'aient pas besoin d'être utilisées, certaines peuvent être configurées dans le fichier de configuration lui-même :

-d workdir :stocke les fichiers de travail (par exemple, les mises à jour téléchargées) dans workdir. (par défaut :/var/db/portsnap, ou tel qu'indiqué dans le fichier de configuration)

-f conffile :Lit la configuration à partir de conffile. (par défaut :/etc/portsnap.conf)

-I :Pour la commande de mise à jour, mettez à jour les fichiers INDEX, mais pas le reste de l'arborescence des ports.

-k KEY :attend une clé publique avec le hachage SHA256 donné. (par défaut :lire la valeur du fichier de configuration)

-p portsdir :lors de l'extraction ou de la mise à jour d'un instantané non compressé, opérer sur le répertoire portsdir. (par défaut :/usr/ports/, ou tel qu'indiqué dans le fichier de configuration.)

-s serveur :Récupère les fichiers du serveur ou du pool de serveurs spécifié. (par défaut :portsnap.FreeBSD.org , ou tel qu'indiqué dans le fichier de configuration.)

path :pour la commande d'extraction uniquement, n'opérez que sur les parties de l'arborescence des ports commençant par path. (par exemple, portsnap sysutils/port extrairait sysutils/portsman, sysutils/portsnap, sysutils/portupgrade, etc.)

Le synopsis de la ligne de commande Portsnap est :

portsnap [-I] [-d workdir] [-f conffile] [-k KEY] [-p portsdir] [-s server] commande … [chemin]

Utilisation de Portsnap

  1. Créez un répertoire vide /usr/ports s'il n'existe pas.
    # mkdir /usr/ports
  2. Récupérez et téléchargez un instantané compressé de la collection de ports dans /var/db/portsnap (ou tout autre emplacement spécifié dans le fichier de configuration). Connexion Internet nécessaire à ce stade) et mettez à jour l'instantané existant.
    # portsnap fetch
  3. Si vous exécutez Portsnap pour la première fois (même si une arborescence de ports a déjà été créée ou remplie, pour laisser Portsnap établir une ligne de base à partir de laquelle portsnap peut déterminer quelles parties de l'arborescence des ports doivent être mises à jour) ou /usr /ports n'a pas été rempli, extrayez l'instantané et remplacez les fichiers et répertoires existants, et établissez l'arborescence des ports gérés par Portsnap dans /usr/ports :
    # portsnap extract

    Cette étape peut être ignorée si vous ne mettez à jour que l'arborescence des ports.

  4. Si vous avez déjà un /usr/ports rempli et que vous venez de mettre à jour, exécutez plutôt la commande suivante :
    # portsnap update

Remarque :pour la mise à jour de l'arborescence des ports FreeBSD, les étapes 1 et 3 peuvent être combinées en une seule commande :portsnap fetch update (non pris en charge dans l'ancienne version de Portsnap).

Exécuter Portsnap en tant que tâche Cron

portsnap fetch ne pourra pas s'exécuter à partir d'une tâche cron pour éviter le fardeau d'une augmentation soudaine des demandes de téléchargement vers les serveurs Portsnap. Au lieu de cela, une commande spéciale portsnap cron existe, qui attend et dort pendant une durée aléatoire allant jusqu'à 3600 secondes avant de récupérer les mises à jour, comme si la commande fetch était spécifiée.

Pour exécuter portsnap automatiquement avec le travail cron, ajoutez simplement la ligne dans /etc/crontab (la ligne définit l'heure à 3 heures du matin tous les jours, vous pouvez choisir votre propre horaire) :

0 3 * * * root /usr/sbin/portsnap cron

Cela garantira que l'instantané FreeBSD de la collection de ports est toujours à jour et peut être rapidement extrait dans /usr/ports.

Remarque :Exécution de la mise à jour de portsnap de cron n'est pas recommandé car cela peut causer des problèmes si l'installation ou la mise à jour d'un port se produit au moment où la tâche cron s'exécute. Portsnap mettra à jour ou supprimera les fichiers utilisés par la construction du port. Cependant, en exécutant portsnap -I update pour mettre à jour les ports Les fichiers d'index sont possibles et peuvent être utilisés avec portversion pour identifier les logiciels installés qui sont obsolètes.

Pour mettre à jour l'instantané compressé des ports et les fichiers INDEX dans /usr/ports/, et envoyer un e-mail si des ports installés sont obsolètes, utilisez la ligne suivante dans /etc/crontab :

0 3 * * * root portsnap -I cron update && pkg_version -vIL=

Remarque :L'ancienne version de portsnap ne prend pas en charge la liste de plusieurs commandes (par exemple, cron update) dans le même appel de portsnap. Si la ligne ci-dessus échoue, essayez de remplacer portsnap -I cron update par portsnap cron &&portsnap -I update .


FreeBSD
  1. Mettre à jour la collection de ports FreeBSD vers la dernière version avec la mise à jour de sécurité avec Portmanager et Portaudit

  2. Recherche d'une application dans la collection de ports de FreeBSD

  3. Portdowngrade - Rétrogradation vers la version précédente des ports de FreeBSD

  4. Un moyen facile de mettre à niveau les ports de FreeBSD

  5. Mettre à jour la collection de ports FreeBSD à jour et la plus récente

Comment mettre à jour le micrologiciel sur Ubuntu à l'aide de fwupd

Comment mettre à jour le système d'exploitation élémentaire hors ligne à l'aide de Camicri Cube Server

Comment mettre à jour le système openSUSE Linux

Comment installer Gnome sur FreeBSD 13

Comment mettre à jour FreeBSD 12 vers 13

Comment mettre à jour les logiciels Ubuntu Linux à l'aide de la ligne de commande