¿Cómo aplicar actualizaciones en OpenBSD, NetBSD y FreeBSD?

25

Estoy usando OpenBSD desde hace bastante tiempo. Sin embargo, todo lo que hago es pasar de una versión a la siguiente, siempre haciendo una actualización. Configuré el sistema para que funcione como mi enrutador y firewall, y funciona bastante bien así. Pero nunca actualizo paquetes. Todo lo que hago es pasar al próximo lanzamiento.

Viniendo del mundo Linux, estoy acostumbrado a aplicar actualizaciones varias veces a la semana; pero ¿cómo hago eso en * BSD? - ¿O no es esto parte de la filosofía * BSD?

polemon
fuente
portupgrade -arR
usermane
Actualizando con OpenBSD con pkg_addis pkg_add -uvi, ¿verdad?
polemon
usermane
Si bien este enlace puede responder la pregunta, es mejor incluir aquí las partes esenciales de la respuesta y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden volverse inválidas si la página vinculada cambia. - De la opinión
Archemar

Respuestas:

22

OpenBSD está centrado en binarios. Puede actualizar los archivos binarios (si hay actualizaciones / cambios disponibles) ejecutando pkg_add :

pkg_add -Uu

El equipo de OpenBSD recomienda usar los paquetes en lugar de construir desde puertos: el sistema de paquetes y puertos de OpenBSD

FreeBSD se puede actualizar a través de paquetes o puertos .

gregnotcraig
fuente
1
pkg_add -ues suficiente en OpenBSD. Úselo -Ucuando instale un único paquete (o conjunto de paquetes) si desea actualizar los paquetes de los que depende (esto).
Kusalananda
9

En general, cuando usa OpenBSD solo actualiza sus paquetes cuando actualiza su sistema. Entonces, como paso final, después de actualizar a la última versión, debe ejecutar:

 # pkg_add -ui

Lo que (u) clasificará sus paquetes instalados y le hará cualquier pregunta (i) interactiva cuando sea necesario.

En general, los paquetes para una versión dada no se actualizan hasta la próxima versión (OpenBSD carece de los recursos del desarrollador para proporcionar actualizaciones de paquetes en versiones distintas a 'actual'). Si desea actualizar sus paquetes más regularmente, debe usar puertos o actualizar a una nueva instantánea y luego ejecutar pkg_add -uinuevamente.

Para más información, consulte: http://www.openbsd.org/faq/faq15.html

gabe
fuente
3
OpenBSD lacks the developer resources for providing updates to packages on versions other than 'current'¿Eso también se aplica a las actualizaciones de seguridad? Entonces, si se encuentra un agujero de seguridad crítico en un paquete binario que uso, ¿tengo que reinstalarlo desde los puertos estables?
imgx64
@ imgx64 Se han realizado correcciones de seguridad en los puertos -current. OpenBSD no reconstruirá paquetes para -stable.
Kusalananda
4

OpenBSD: M: Tier proporciona paquetes estables para las arquitecturas amd64 e i386. Esto le permite mantener su sistema actualizado con las correcciones de seguridad más recientes de la -stablesucursal de puertos.

Un artículo en OpenBSD Journal explica los detalles:

En la práctica, esto significa que tan pronto como se confirme una corrección / actualización de seguridad en el árbol OPENBSD_5_3, se creará un paquete a partir del árbol CVS. Este paquete se está probando y enviando a nuestro servidor de despliegue en Stable.MTier.org, ¡para que todos lo usen!

Holu
fuente
3

Los diversos sistemas BSD tienen una separación muy clara en "sistema base" y "software de terceros (puertos / paquetes)". Actualizas los dos por separado.

Esto supone que tiene una instalación de OpenBSD 6.5 o posterior (consulte la respuesta anterior más abajo):

El sistema base se actualiza con sysupgrade(8):

doas sysupgrade

Esto descargará y actualizará el sistema base a la próxima versión "estable" de OpenBSD si está siguiendo la rama estable o de lanzamiento, o a la última "instantánea" si está utilizando instantáneas. Tenga en cuenta que no debe usarlo sysupgradesi tiene una instalación personalizada sin todos los conjuntos del sistema base.

Después de actualizar el sistema base, es posible que desee ejecutar syspatch(8)(solo para subir su sistema de "versión" a "estable", los sistemas de instantáneas no usan syspatch).

Los puertos se actualizan con pkg_add(1):

doas pkg_add -u

En un sistema de instantáneas, es posible que desee agregar -D snapa eso (consulte el manual).

También querrá consultar la sección correspondiente de las preguntas frecuentes de OpenBSD antes de actualizar, por ejemplo, la sección sobre " Seguimiento actual y uso de instantáneas " o la sección relacionada con la actualización a la última versión estable.

También hay un puerto / paquete llamado sysclean(in sysutils/sysclean) que lo ayudará a señalar las bibliotecas del sistema base y otros archivos que ya no forman parte de la instalación predeterminada. También le dirá qué puertos están utilizando bibliotecas obsoletas.


Respuesta anterior, relevante para las versiones de OpenBSD anteriores a 6.5:

En el caso de OpenBSD, suponiendo que desea pasar de una versión estable a la siguiente versión estable (las versiones de salto no son compatibles a menos que realice una instalación nueva), comience leyendo las Preguntas frecuentes específicas para la actualización que está realizando. En el caso de actualizar de 5.9 a 6.0, lea la " Guía de actualización: 5.9 a 6.0 ".

En general, la esencia de esto implica iniciar los medios de instalación para la versión a la que desea actualizar y seleccionar "(U) pgrade" en el menú. Una vez que se actualiza el sistema base, lo inicia y, como root, actualiza cualquier paquete instalado con pkg_add -u.

Es inusual que los paquetes que pertenecen a una versión estable de OpenBSD se actualicen con mucha frecuencia. Por lo general, eso solo ocurre cuando se corrigen errores críticos. Por lo tanto, ejecutar pkg_add -uvarias veces a la semana probablemente no servirá de mucho (pero siga haciéndolo, ya que puede obtener soluciones críticas).

Si sigues "actual", las cosas son muy diferentes. Entonces estaría construyendo sus paquetes desde el árbol de puertos desprotegido con CVS debajo /usr/ports, y probablemente también estaría reconstruyendo el sistema base manualmente (consulte " Construcción del sistema desde la fuente "). Los puertos instalados pueden actualizarse con dpb(in /usr/ports/infrastructure/bin) si se les dan las opciones correctas y una lista de paquetes instalados manualmente.

Estoy usando

#!/bin/sh -x

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

Seguido por

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

Esto no se recomienda para nuevos usuarios.

Kusalananda
fuente
2

Necesitaba recibir actualizaciones porque instalé bash y no quería sufrir la vulnerabilidad Shellshock, así que fui con la sugerencia de Holu /unix//a/103661/93476 y me parcheó.

RedScourge
fuente
1

Lo sentimos, NetBSD pkgsrcno admite una solución descuidada. En su lugar, debe usar un administrador de paquetes como niho pkgin. A continuación pkgsrc, debe forzar las actualizaciones que ignoran las dependencias de archivos a menudo vinculados. Copiar también la nueva versión sobre la anterior pkgsrcpuede poner su pkgsrcárbol en un estado inconsistente.

darktrym
fuente
0

Para mí, actualizar los paquetes de NetBSD es un comando en / usr / pkgsrc:

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