Indice
¿que es OpenRC?
OpenRC es un sistema rc de inicio mantenido por los desarrolladores de Gentoo cuya base depende y trabaja con el programa de inicio (init) suministrado por el sistema el cual normalmente es /sbin/init (sysvinit); sin embargo, no es un reemplazo para /sbin/init (sysvinit).
OpenRC es 100% compatible con los init scripts de Gentoo, pero no es exclusivamente usado en Geento ya que es usado en diferentes sistemas Linux y BSD. Su creador es un desarrollador de NetBSD, quien inició el proyecto Gentoo/FreeBSD.
OpenRC para Debian es empleado como una alternativa a sysv-rc, proporcionando la infraestructura de arranque, parada y cambio de nivel de ejecución (runlevels) de servicios y procesos
Por defecto sysv-rc usa los encabezados LSB para representar dependencias en guiones de inicio, que son analizados por insserv. La información detallada sobre este tema se puede encontrar en LSBInitScripts.
OpenRC mantiene un árbol de dependencia de forma dinámica, utilizando lsb2rcconf como herramienta para analizar los encabezados LSB y para manejar las diferencias de conversiones entre sysv-rc y OpenRC
En sysv-rc, los nombres de las instalaciones virtuales, son definidos en LSB comenzando con el signo "$" y se determinan en /etc/insserv.conf. Pero en OpenRC esa función es realizada por "provide" publicando el bloque de dependencias. Para más información https://github.com/xaionaro/openrc-lsb/blob/master/main.c https://github.com/xaionaro/openrc-lsb/blob/master/lsb.pl/20140120.pl
Características:
- Portable para otros sistemas que no sean Linux
- Inicio de los servicios en paralelo (opcional)
- Depende de un programa de init
- Separación de procesos a través cgroups
- Límites de recursos por servicio (ulimit)
- Separación de código y configuración (init.d/conf.d)
- Scripts de inicio fácilmente personalizables por los usuarios
- Posibilidad de incluir una variedad ilimitada de comandos fuera de base "iniciar, detener, y el estado"
- Scripts de inicio con indicación de estado
- Scripts de inicio complejos para iniciar múltiples componentes ( samba (smbd y nmbd), NFS (nfsd, portmap, etc.))
- Cálculo automático de las dependencias y del pedido de servicios.
- Una correcta integración con contenedores y visualización ( Linux-VServer, OpenVZ, etc.)
- Una adecuada arquitectura modular y separación de componentes opcionales (cron, syslog)
- Manejo expresivo y flexible red (incluyendo VPN , puentes, etc.)
- El modo de depuración detallada
Instalación de OpenRC en Debian Jeesie:
- Como primer paso habrá que instalar el paquete systemd-shim, el cual es un emulador de systemd para aquellos programas que requieren de systemd como gestor de inicio
- El segundo paso es eliminar el paquete systemd-sysv, el cual proporciona los enlaces necesarios para que systemd reemplase a sysvinit. (Reescribiendo /sbin/init con un enlace a systemd.) Como reemplazo a systemd-sysv aptitude dará la opción de reemplazarlo con sysvinit-core, la cual deberá ser aceptada.
- Por último se deberá reemplazar a sysv-rc con OpenRC.
# aptitude install systemd-shim
# aptitude purge systemd-sysv
Se ELIMINARÁN los siguientes paquetes:
systemd-sysv{p}
0 paquetes actualizados, 0 nuevos instalados, 1 para eliminar y 0 sin actualizar.
Necesito descargar 0 B de ficheros. Después de desempaquetar se liberarán 34,8 kB.
No se satisfacen las dependencias de los siguientes paquetes:
init : PreDepende: systemd-sysv pero no será instalado. o
sysvinit-core pero no será instalado. o
upstart pero no será instalado.
Las acciones siguientes resolverán estas dependencias
Instalar los paquetes siguientes:
1) sysvinit-core [2.88dsf-58 (now, testing)]
¿Acepta esta solución? [Y/n/q/?]y
Se instalarán los siguiente paquetes NUEVOS:
sysvinit-core{a}
Se ELIMINARÁN los siguientes paquetes:
systemd-sysv{p}
0 paquetes actualizados, 1 nuevos instalados, 1 para eliminar y 0 sin actualizar.
Necesito descargar 0 B/132 kB de ficheros. Después de desempaquetar se usarán 220 kB.
¿Quiere continuar? [Y/n/?] y
# aptitude install openrc
Se instalarán los siguiente paquetes NUEVOS:
openrc{b}
0 paquetes actualizados, 1 nuevos instalados, 0 para eliminar y 0 sin actualizar.
Necesito descargar 0 B/89,1 kB de ficheros. Después de desempaquetar se usarán 348 kB.
No se satisfacen las dependencias de los siguientes paquetes:
openrc : Entra en conflicto: sysv-rc pero está instalado 2.88dsf-58.
Las acciones siguientes resolverán estas dependencias
Eliminar los paquetes siguientes:
1) sysv-rc
¿Acepta esta solución? [Y/n/q/?]y
Se instalarán los siguiente paquetes NUEVOS:
openrc
Se ELIMINARÁN los siguientes paquetes:
sysv-rc{a}
0 paquetes actualizados, 1 nuevos instalados, 1 para eliminar y 0 sin actualizar.
Necesito descargar 0 B/89,1 kB de ficheros. Después de desempaquetar se usarán 120 kB.
¿Quiere continuar? [Y/n/?] y
* Nota: Al terminar la instalación, es necesario reiniciar él equipo y debido a que OpenRC no tiene manera de saber que demonios se encuentran en ejecución, se aconseja desactivarlos manualmente y ejecutar el siguiente comando para realizar un apagado limpio (desmontar las particiones antes del apagado):
for file in /etc/rc0.d/K*; do s=`basename $(readlink "$file")` ; /etc/init.d/$s stop; done
* Nota: En Debian, la red está gestionada por /etc/init.d/{networking, ifupdown, limpia-ifupdown}. Después de instalar OpenRC, esta debería funcionar normalmente como se esperaba, a pesar de que no tiene la flexibilidad de la gestión de Gentoo.