Instalación y actualización de SO/src/paquetes/jails en FreeBSD


FreeBSD es un sistema operativo altamente flexible y configurable, muestra de ello es el sistema de paquetería ya sea mediante binarios o ports, mediante binarios ahorraremos tiempo de compilación en máquinas antiguas y con pocos recursos mientras que con los los ports conseguiremos paquetes mas pequeños y mas seguros ya que la superficie de ataque sobre estos se reducirá.

 

A continuación explico de forma breve y concisa como buscar, instalar y actualizar software además de como actualizar el core/base y las fuentes. Pero antes de nada debemos tener en cuenta que no es recomendable mezclar paquetes binarios con ports ya que las opciones de compilación de unos u otros pueden ser muy distintas y causar problemas, si se decide utilizar un sistema hay que utilizarlo para todo.

Búsqueda

Instalación

Actualización

Actualización CORE/BASE

Actualización fuentes SO

Actualización jails

Seguridad

Limpieza paquetes descargados

Eliminar paquetes

Información paquetes


BÚSQUEDA

Paquetes binarios:

El comando básico es:

pkg search NAME

Para no mostrar la versión de los paquetes encontrados:

pkg search -o NAME

Para mostrar los detalles del paquete:

pkg search -f NAME

Para buscar dentro de las descripciones:

pkg search -D NAME

Ports:

Antes de utilizar los ports debemos bajarnos el árbol, extraerlo y generar el índice:

pkg install ca_root_nss
portsnap fetch extract update cd /usr/ports make fetchindex

Para realizar una búsqueda:

make search name=NAME

No es necesario buscar por nombre podemos hacerlo por cualquier campo:

make search key=cadena

INSTALACIÓN

Paquetes binarios:

pkg install NAME

Ports:

Actualizamos el árbol de ports:

portsnap fetch update

Cambiamos al diretorio del port:

cd /usr/ports/CATEGORY/NAME

Mostramos el diálogo de opciones de compilación:

make config

Compilamos e instalamos:

make
make install

Elimina temporales de este modo evitamos problemas al actualizar a versiones superiores:

make clean

Si queremos que nos pregunte todas las opciones antes de comenzar la compilación del port y de sus dependencias debemos utilizar la opción config-recursive:

make config-recursive install clean

Si queremos conocer las opciones de compilación de un paquete podemos consultarlas:

make showconfig

Si queremos resetear las opciones a las que venian por defecto:

make rmconfig

ACTUALIZACIÓN

Paquetes binarios:

pkg upgrade NAME

Todos los paquetes binarios:

pkg upgrade
pkg autoremove

Ports:

Actualizamos el port en cuestión:

portsnap fetch update
cd /usr/ports/CATEGORY/NAME
make clean
make config
make
make reinstall

Todos los ports:

Instalamos portmaster:

portsnap fetch update
cd /usr/ports/ports-mgmt/portmaster
make install clean

Listamos las actualizaciones disponibles:

portmaster -L

Actualizamos los ports que lo precisen:

portmaster -a

ACTUALIZACIÓN CORE/BASE

Si nos mantenemos dentro de la misma versión bastará con:

freebsd-update fetch
freebsd-update install

Se puede crontabear el fetch y nos avisará vía mail si hay actualizaciones:

crontab -e
@daily root freebsd-update -t kr0m@alfaexploit.com cron

Para pasar de una versión a otra seguimos la guía y consultamos la última RELEASE disponible.

Si es una menor update, ej: 12.0 -> 12.1:

freebsd-update -r 12.1-RELEASE upgrade
freebsd-update install

Reinciamos y terminamos la instalación de las actualizaciones:

shutdown -r now
freebsd-update install

Si es una major update ej: 12.1 -> 13.0, además de los pasos de una minor update debemos reinstalar los paquetes binarios/ports:

pkg-static upgrade -f

Los programas intalados desde ports también, en este mismo artículo se indica como gestionar instalaciones mixtas de paquetes binarios/ports.

Terminamos la instalación:

freebsd-update install

ACTUALIZACIÓN FUENTES SO

Es importante tener las fuentes del SO actualizadas si vamos a instalar ports ya que algunos hacen uso de estos ficheros.

pkg install svnup

Definimos de donde queremos sincronizar las fuentes:

vi /usr/local/etc/svnup.conf
host=svn0.eu.freebsd.org

Nos bajamos la última versión:

svnup release

ACTUALIZACIÓN JAILS

El software y las fuentes del SO se actualizarán de igual manera que en un FreeBSD físico.

CORE/BASE:

Todos los comandos iocage se ejecutarán en el padre, el resto en la jail.

Si nos mantenemos dentro de la misma versión bastará con:

iocage update JAILNAME

Para pasar de una versión a otra seguimos la guía y consultamos la última RELEASE disponible.

Si es una minor update, ej: 12.0 -> 12.1:

iocage upgrade JAILNAME -r 12.1-RELEASE
iocage update JAILNAME

Si es una major update ej: 12.1 -> 13.0, además de los pasos de una minor update debemos reinstalar los paquetes binarios/ports:

pkg-static upgrade -f

Los programas intalados desde ports también, en este mismo artículo se indica como gestionar instalaciones mixtas de paquetes binarios/ports.

Terminamos la instalación:

iocage update JAILNAME

SECURITY

Podemos consultar si alguno de los paquetes binarios/ports instalados en el sistema tiene algún problema de seguridad:

pkg audit -F

LIMPIEZA DE LOS PAQUETES DESCARGADOS

Paquetes binarios:

pkg clean

Ports:

portmaster --clean-distfiles

ELIMINAR PAQUETES

Paquetes binarios:

pkg delete NAME

Ports:

cd /usr/ports/CATEGORY/NAME
make deinstall -> Si alguna aplicación depende del port saldrá una advertencia indicándolo
make rmconfig -> Elimina además la configuración del port

INFORMACIÓN PAQUETES INSTALADOS(tanto binarios como ports):

pkg info NAME
pkg query -e "%n=NAME" "%n-%v %Ok %Ov"
Si te ha gustado el artículo puedes invitarme a un redbull aquí.
Autor: kr0m -- 26/03/2020 00:17:14