Administración de paquetes y servicios en FreeBSD / OpenBSD / NetBSD
10:57, 07.03.2024
FreeBSD, OpenBSD y NetBSD son sistemas operativos que presentan una alternativa a Linux en el paradigma de los sistemas operativos tipo UNIX. Se utilizan con demasiada frecuencia como sistemas operativos de servidor, teniendo sus ventajas así como sus especificidades. Hoy vamos a explorar particularmente la administración de paquetes dentro de estos tres SO.
Explorando FreeBSD
Entre los protagonistas del artículo, FreeBSD es el más popular. Sus características clave son:
Portabilidad: Está disponible en arquitecturas x86, ARM, AArch64, RISC-V, POWER y PowerPC.
Estabilidad y fiabilidad: FreeBSD suele ser elogiado por su estabilidad y fiabilidad. Además, el sistema es muy adecuado para trabajar en red con la pila TCP/IP.
Jaulas de virtualización: Las jaulas de virtualización son soluciones ligeras de virtualización incorporadas para crear entornos aislados y mejorar la seguridad y la gestión de recursos.
Colección de puertos: La colección de puertos es un potente marco para gestionar e instalar aplicaciones de terceros.
Sistema de archivos ZFS: FreeBSD soporta el sistema de ficheros ZFS, con características como la verificación de la integridad de los datos, soporte para grandes capacidades de almacenamiento, compresión eficiente de datos y robustas capacidades de snapshot.
Seguridad: Entre otras cosas, FreeBSD se centra en la seguridad, que se manifiesta en un equipo de seguridad proactivo, actualizaciones de seguridad periódicas y una instalación por defecto que prioriza las configuraciones seguras.
Visión general de OpenBSD
Otro sistema operativo multiplataforma basado en UNIX 4.4BSD centrado en la portabilidad, la estandarización, la corrección, la seguridad y la criptografía integrada. OpenBSD está disponible de forma gratuita. Está desarrollado por entusiastas y se ha utilizado para una serie de proyectos de éxito.
Características principales de NetBSD
NetBSD es un sistema operativo libre y de código abierto similar a UNIX. Sus características abarcan:
Portabilidad: NetBSD es altamente portable, soportado en x86, ARM, MIPS, SPARC, PowerPC y más.
Compatibilidad entre plataformas: El sistema de paquetes de NetBSD es altamente portable y multiplataforma, permitiéndole construir e instalar paquetes de software en varios sistemas operativos tipo Unix.
Compatibilidad con tecnologías de almacenamiento modernas: NetBSD es compatible con sistemas de archivos ZFS, software RAIDframe, sistemas RAID y cifrado de disco cgd.
Compatibilidad con hardware ARM: NetBSD tiene un sólido soporte para arquitecturas ARM, lo que lo hace versátil para su uso en una gran variedad de dispositivos basados en ARM, desde sistemas embebidos a ordenadores monoplaca y servidores basados en ARM.
Soporte de virtualización Xen y NVMM: Este soporte de virtualización permite a los usuarios ejecutar varios sistemas operativos simultáneamente en el mismo hardware, con cada sistema operativo ejecutándose en su propio entorno virtual aislado.
Compatibilidad con hardware x86 moderno: NetBSD ofrece un fuerte soporte para hardware x86 moderno, incluyendo compatibilidad con una amplia gama de procesadores, chipsets y periféricos que se encuentran comúnmente en los sistemas PC modernos.
Administración de paquetes y servicios en FreeBSD, OpenBSD y NetBSD
1. Gestión de paquetes y servicios en FreeBSD
La instalación de software de terceros en FreeBSD se produce con la ayuda de dos tecnologías - FreeBSD Ports Collection y FreeBSD Package Manager.
FreeBSD Ports Collection presenta un conjunto de ficheros que se utilizan para automatizar la compilación de una aplicación a partir del código fuente. Este conjunto de ficheros contiene la información necesaria para la descarga, extracción, parcheado, compilación e instalación automática de una app.
Además, hay un gran número de aplicaciones que ya han sido portadas a FreeBSD y pueden descargarse precompiladas.
En cuanto a los comandos de gestión de paquetes de FreeBSD, se utilizan para realizar diversas actividades con los paquetes. Manipulaciones como registrar, añadir, eliminar, actualizar y más se realizan con la ayuda del gestor de paquetes pkg.
Ambos enfoques saben cómo lidiar con las dependencias.
En el caso de que falte una biblioteca mientras se instala una aplicación, ésta se añadirá automáticamente.
Utilización de la Colección de Puertos
La colección de ports consiste en un conjunto de makefiles, es decir, diferentes tipos de ficheros que intervienen en la compilación e instalación de una aplicación en FreeBSD. El directorio original de la colección de ports es /usr/ports/.
En la colección de ports puede encontrar directorios para cada categoría de software, que a su vez están divididos en subdirectorios, con ficheros que son básicamente instrucciones sobre la compilación y la instalación de una app, lo que comúnmente se conoce como esqueleto de ports. Los archivos y directorios básicos para un esqueleto de ports son:
makefile: Contiene instrucciones sobre la compilación y la ubicación de los componentes a instalar.
distinfo: Contiene los nombres y sumas de comprobación de los ficheros que deben descargarse para compilar el port.
files/: parches necesarios para la compilación e instalación.
pkg-descr: Una descripción detallada del programa.
pgk-plist: La lista de archivos a instalar.
Procedimientos de instalación y actualización de puertos
La colección de ports de FreeBSD es un sistema utilizado para gestionar e instalar aplicaciones de terceros en su sistema FreeBSD. Repasemos algunos de sus comandos básicos.
- Actualización del árbol de puertos, operación necesaria antes de instalar o actualizar nada:
sudo portsnap fetch update
- Navegar hasta el directorio Poer: Cada paquete de software tiene su propio directorio en la Colección de Ports. Es posible que desee navegar entre directorios para la instalación de diverso software. Por ejemplo, si desea instalar el servidor web Apache, necesita ir al directorio Apache:
cd /usr/ports/www/apache24
- Revise y personalice las opciones: En muchos ports, puedes personalizar el software antes de instalarlo. Con el comando "make config" puede abrir un menú con las opciones disponibles:
- Una vez configuradas todas las opciones, puede compilar e instalar el software con el comando:
make install clean
- En el sistema de Ports de FreeBSD las dependencias se gestionan automáticamente. Esto significa que si la aplicación que está instalando depende de otros paquetes, el sistema de Ports se asegurará de que estas dependencias también estén instaladas.
- Actualización de ports instalados: Para actualizar un port que ya está instalado, debe navegar hasta su directorio y ejecutar el comando make upgrade:
cd /usr/ports/www/apache24
make upgrade
De este modo, obtendrá el último código fuente, recompilará el software y lo actualizará a la última versión.
- Para eliminar un puerto, debe utilizar el comando make deinstall:
make deinstall
Aunque el software se desinstalará, las dependencias permanecerán.
- Si necesita encontrar un puerto en particular, utilice el comando de búsqueda de make:
make search keyword=nginx
- Herramientas adicionales: Aparte de las descritas anteriormente, hay una serie de herramientas adicionales utilizadas para la gestión de puertos, como portmaster, poudriere y otras.
Gestión de servicios en FreeBSD
Veamos cómo gestionar servicios en FreeBSD.
Para iniciar el servicio web Nginx en FreeBSD, necesita modificar nginx_enable a YES en el archivo /etc/rc.conf:
nginx_enable="YES"
A continuación, ejecute el comando:
$ sudo /usr/local/etc/rc.d/nginx start
o:
$ service nginx start
A la inversa, para detener el servicio de servidor web Nginx:
$ sudo /usr/local/etc/rc.d/nginx stop
o:
service nginx stop
Para reiniciar el servicio Nginx Web Server:
$ sudo /usr/local/etc/rc.d/nginx restart
o:
sudo service nginx restart
Para comprobar si hay errores en el archivo de configuración de Nginx:
$ sudo nginx -c /usr/local/etc/nginx/nginx.conf -t
2. Gestión de paquetes y servicios en NetBSD
Para gestionar e instalar software de terceros en NetBSD se utiliza el framework pkgsrc. El framework puede usarse tanto para instalar herramientas de paquetes como para usar paquetes binarios ya creados, o para construir sus propios paquetes, combinándolos con paquetes de terceros.
Instalación de paquetes binarios con pkgin
NetBSD incluye por defecto los binarios de muchos paquetes de software. Una forma común de instalarlos es con pkgin en el directorio por defecto /usr/pkg/.
En caso de que pkgin no esté instalado todavía, puede hacerlo por su cuenta:
sudo pkg_add pkgin
Actualización del paquete:
sudo pkgin update && pkgin upgrade -y
Buscar un paquete:
pkgin search <nombre_del_paquete>
Instalación de un paquete:
pkgin install <nombre_del_paquete>
Instalación y búsqueda del servidor web Nginx:
$ sudo pkgin install nginx
$ pkgin search nginx
La lista de paquetes instalados:
$ pkgin list
Para ver disponibles para pkgin:
$ pkgin help
Eliminar un paquete:
$ sudo pkgin remove nginx
Gestión de servicios del sistema
En NetBSD el arranque del sistema y la gestión de servicios se realiza a través del sistema rc(8) almacenado en /etc/rc.d.
Veamos como instalar y gestionar Apache a modo de ejemplo:
sudo pkgin install apache
Reiniciar:
$ sudo /etc/rc.d/httpd onerestart
De lo contrario, puede editar /etc/rc.conf y habilitar httpd:
sudo vim /etc/rc.conf
##Enable httpd##
httpd=YES
Reiniciar:
$ sudo service httpd restart
Parar:
$ sudo service httpd stop
Ejecute httpd en el arranque en el puerto 8080 editar el archivo añadiendo:
$ sudo vim /etc/rc.conf
##Add this parameter##
httpd_flags='-I 8080'
Reinicie.
3. Manejo de paquetes y servicios en OpenBSD
pkg_add es el gestor de paquetes de OpenBSD que se utiliza especialmente para instalar aplicaciones de terceros en formato binario.
Si ya se ha instalado sudo, edite el fichero sudo para que se incluyan los detalles del usuario:
# pkg_add sudo
#visudo
En primer lugar, actualice los paquetes de su sistema:
sudo pkg_add -u
Instalar un paquete:
sudo pkg_add <nombre_del_paquete>
Eliminar un paquete:
sudo pkg_delete <nombre_del_paquete>
Encontrar un paquete instalado:
pkg_info -Q <nombre_del_paquete>
Mostrar información sobre paquetes:
pkg_info <nombre_del_paquete>
Gestión de servicios (System Daemons)
Los dæmons del sistema se regulan mediante el script rc(8) a través de rc.d(8). La mayoría de los servicios y dæmons se instalan en OpenBSD a través de variables de /etc/rc.conf.
En lugar de modificar el fichero de configuración suele ser más conveniente utilizar la utilidad rcctl para evitar hacer cambios en el fichero que podrían interferir con las actualizaciones.
Para instalar Apache y gestionar los servicios
sudo pkg_add php
sudo pkg_add php-apache
sudo pkg_add php-mysqli
Habilitar Apache:
sudo rcctl enable apache2
Iniciar el servicio Apache:
sudo rcctl start apache2
apache2(ok)
Comprobando el estado de Apache2:
rcctl check apache2
apache2(ok)
Detener el servicio Apache2:
$ sudo rcctl stop apache2
apache2(ok)
Conclusión
Este fue el panorama de la gestión de paquetes y servicios de FreeBSD, OpenBSD y NetBSD. Esperamos haber cubierto todos los aspectos básicos esenciales y que ahora tenga más confianza a la hora de familiarizarse con estos sistemas operativos. Le deseamos buena suerte.