Comment appliquer des mises à jour sur OpenBSD, NetBSD et FreeBSD?

25

J'utilise OpenBSD depuis un bon moment maintenant. Tout ce que je fais, cependant, c'est de passer d'une version à l'autre, toujours juste en faisant une mise à jour. J'ai configuré le système pour qu'il fonctionne comme mon routeur et mon pare-feu, et cela fonctionne très bien comme ça. Mais je ne mets jamais à jour les packages. Je ne fais que passer à la prochaine version.

Venant du monde Linux, j'ai l'habitude d'appliquer des mises à jour plusieurs fois par semaine; mais comment faire cela sur * BSD? - Ou cela ne fait-il pas partie de la philosophie * BSD?

polémon
la source
portupgrade -arR
usermane
La mise à jour avec OpenBSD avec pkg_addest pkg_add -uvi, non?
polemon
oui
usermane
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien de référence. Les réponses de lien uniquement peuvent devenir invalides si la page liée change. - De l'avis
Archemar

Réponses:

22

OpenBSD est binaire centré. Vous pouvez mettre à jour les binaires (si des mises à jour / modifications sont disponibles) en exécutant pkg_add :

pkg_add -Uu

L'équipe OpenBSD recommande d'utiliser les packages plutôt que de construire à partir des ports - Le système de packages et de ports OpenBSD

FreeBSD peut être mis à jour via des packages ou des ports .

gregnotcraig
la source
1
pkg_add -usuffit sur OpenBSD. À utiliser -Ulors de l'installation d'un seul package (ou ensemble de packages) si vous souhaitez mettre à jour des packages dont ces (ceux-ci) dépendent.
Kusalananda
9

En général, lorsque vous utilisez OpenBSD, vous ne mettez à jour vos packages que lorsque vous mettez à jour votre système. Donc, comme étape finale, après la mise à niveau vers la dernière version, vous devez exécuter:

 # pkg_add -ui

Ce qui (u) mettra à niveau vos packages installés en vous posant des questions (i) interactif en cas de besoin.

En général, les packages pour une version donnée ne sont pas mis à jour avant la prochaine version (OpenBSD n'a pas les ressources du développeur pour fournir des mises à jour des packages sur des versions autres que «actuelles»). Si vous souhaitez mettre à niveau vos packages plus régulièrement, vous devez soit utiliser des ports, soit mettre à niveau vers un nouvel instantané, puis réexécuter pkg_add -ui.

Pour plus d'informations, consultez: http://www.openbsd.org/faq/faq15.html

gabe.
la source
3
OpenBSD lacks the developer resources for providing updates to packages on versions other than 'current'Cela s'applique-t-il également aux mises à jour de sécurité? Donc, si un trou de sécurité critique est trouvé dans un package binaire que j'utilise, je dois le réinstaller à partir des ports stables?
imgx64
@ imgx64 Les correctifs de sécurité sur les ports sont effectués -current. OpenBSD ne reconstruira pas les packages pour -stable.
Kusalananda
4

OpenBSD: M: Tier fournit des packages stables pour les architectures amd64 et i386. Cela vous permet de maintenir votre système à jour avec les correctifs de sécurité les plus récents de la -stablebranche des ports.

Un article sur OpenBSD Journal explique les détails:

En pratique, cela signifie que dès qu'une correction / mise à jour de sécurité est validée dans l'arborescence OPENBSD_5_3, un package sera construit à partir de l'arborescence CVS. Ce package est ensuite testé et envoyé à notre serveur de diffusion sur Stable.MTier.org, pour que tout le monde puisse l'utiliser!

Holu
la source
3

Les différents systèmes BSD sont très clairement séparés en "système de base" et "logiciel tiers (ports / packages)". Vous mettez à niveau les deux séparément.

Cela suppose que vous disposez d'une installation d'OpenBSD 6.5 ou version ultérieure (voir plus bas pour l'ancienne réponse):

Le système de base est mis à niveau avec sysupgrade(8):

doas sysupgrade

Cela téléchargera et mettra à niveau le système de base vers la prochaine version "stable" d'OpenBSD si vous suivez la branche stable ou de publication, ou vers le dernier "snapshot" si vous utilisez des snapshots. Notez que vous ne devez pas l'utiliser sysupgradesi vous disposez d'une installation personnalisée sans tous les ensembles de système de base.

Après la mise à niveau du système de base, vous souhaiterez peut-être exécuter syspatch(8)(uniquement pour que votre système passe de «version» à «stable», les systèmes de clichés ne sont pas utilisés syspatch).

Les ports sont mis à jour avec pkg_add(1):

doas pkg_add -u

Sur un système d'instantanés, vous voudrez peut-être ajouter -D snapà cela (voir le manuel).

Vous voudrez également vérifier la section pertinente de la FAQ d'OpenBSD avant la mise à niveau, par exemple la section sur " Suivre -current et utiliser des instantanés " ou la section relative à la mise à niveau vers la dernière version stable.

Il existe également un port / package appelé sysclean(in sysutils/sysclean) qui vous aidera à signaler les bibliothèques du système de base et d'autres fichiers qui ne font plus partie de l'installation par défaut. Il vous indiquera également quels ports utilisent des bibliothèques obsolètes.


Ancienne réponse, pertinente pour les versions d'OpenBSD antérieures à 6.5:

Dans le cas d'OpenBSD, en supposant que vous souhaitiez passer d'une version stable à la prochaine version stable (les versions sautantes ne sont pas prises en charge sauf si vous effectuez une nouvelle installation), vous commencez par lire la FAQ spécifique pour la mise à niveau que vous effectuez. Dans le cas d'une mise à niveau de 5.9 vers 6.0, vous lisez le " Guide de mise à niveau: 5.9 vers 6.0 ".

En général, l'essentiel consiste à démarrer le support d'installation de la version que vous souhaitez mettre à niveau et à sélectionner "(U) pgrade" dans le menu. Une fois le système de base mis à niveau, vous le démarrez et, en tant que root, mettez à niveau tous les packages installés avec pkg_add -u.

Il est inhabituel que les packages appartenant à une version stable d'OpenBSD soient mis à jour très souvent. Habituellement, cela ne se produit que lorsque des bogues critiques sont corrigés. Donc, exécuter pkg_add -uplusieurs fois par semaine ne fera probablement pas grand-chose (mais continuez à le faire car cela peut entraîner des correctifs critiques).

Si vous suivez "actuel", les choses sont très différentes. Ensuite, vous construirez vos packages à partir de l'arborescence des ports vérifiée avec CVS ​​sous /usr/ports, et vous reconstruirez probablement le système de base manuellement également (voir " Construction du système à partir de la source "). Les ports installés peuvent être mis à jour avec dpb(in /usr/ports/infrastructure/bin) si les options correctes et une liste des packages installés manuellement sont fournies.

j'utilise

#!/bin/sh -x

pkg_info -P -q -m | sort -o "$HOME/packages"
/usr/ports/infrastructure/bin/dpb -scuR -P "$HOME/packages"

Suivi par

$ doas pkg_add -u -D unsigned
$ doas pkg_delete -a

Ceci n'est pas encouragé pour les nouveaux utilisateurs.

Kusalananda
la source
2

J'avais besoin d'obtenir des mises à jour parce que j'ai installé bash et que je ne voulais pas souffrir de la vulnérabilité Shellshock, alors j'ai suivi la suggestion de Holu /unix//a/103661/93476 et cela m'a corrigé.

RedScourge
la source
1

Désolé, NetBSD pkgsrcne prend pas en charge une solution imprudente. Au lieu de cela, vous devez utiliser un gestionnaire de packages comme nihou pkgin. Sous pkgsrcvous devez forcer les mises à niveau qui ignorent les dépendances de fichiers souvent liées. Copier également la nouvelle version sur l'ancienne pkgsrcpeut mettre votre pkgsrcarbre dans un état incohérent.

darktrym
la source
0

Pour moi, la mise à jour des packages NetBSD est une commande dans / usr / pkgsrc:

# cvs update -dP && csup /some-path-to-wip-supfile/netbsd-pkgsrc-wip && pkg_rolling-replace -u
sehr
la source