¿Por qué inestable Debian prefiere instalar cgmanager?

Utilicé debootstrap y systemd-nspawn para arrancar un contenedor de Debian Unstable. El sistema host fue Debian Jessie.

systemctl muestra que el contenedor tiene un service fallido, cgproxy . (La installation de cgmanager en el host no ayudó, a pesar de ejecutar un daemon cgmanager ).

Si le pregunto a apt-get sobre la eliminación de cgmanager del contenedor, me dice que elimine systemd-shim e instale systemd-sysv . Pero aptitude sugiere que systemd-shim era la alternativa preferida.

 $ aptitude why cgmanager i systemd Recommends libpam-systemd i A libpam-systemd Depends systemd-shim (>= 10-3~) | systemd-sysv i A systemd-shim Depends cgmanager (>= 0.32) 
  • ¿De qué depende específicamente libpam-systemd , que puede ser proporcionado por cualquiera de systemd-shim o systemd-sysv ? La descripción de systemd-sysv solo dice que tiene "páginas de manual y enlaces necesarios para que systemd reemplace sysvinit".
  • ¿Por qué el libpam-systemd prefiere systemd-shim sobre systemd-sysv ?
  • Si lo cambiara para no haber instalado indirectamente systemd-shim y, por lo cgmanager , cgmanager , ¿voy a perder la funcionalidad esperada?

¿De qué depende específicamente libpam-systemd, que puede ser proporcionado por cualquiera de systemd-shim o systemd-sysv? La descripción de systemd-sysv solo dice que tiene "páginas de manual y enlaces necesarios para que systemd reemplace sysvinit".

Creo que es la parte del sistema: systemd- .

libpam-systemd está diseñado para funcionar en un sistema que se inició con systemd . Alternativamente, si arranca usando un sistema init diferente, funcionará con systemd- shim .

Fuiste engañado un tanto por el nombre systemd-sysv . No solo proporciona compatibilidad con versiones anteriores para progtwigs de usuario. También establece systemd como el sistema de inicio pnetworkingeterminado cargado por el kernel, al crear un enlace simbólico de /sbin/init a /lib/systemd/systemd .

Las dependencies del package libpam-systemd suponen que el sistema operativo se inicia con systemd si y solo si systemd es el sistema init pnetworkingeterminado.

CONCLUSIÓN: cuando desee instalar systemd en Debian, generalmente desea instalar el package systemd-sysv.

La verdadera razón por la que estás confundido es que iniciaste el contenedor usando systemd-nspawn . Creo que systemd-nspawn busca el sistema init en los lugares habituales, y luego recurre a /lib/systemd/systemd .

Si hubiera tratado de iniciar esta installation utilizando el núcleo de Linux, por ejemplo, en una máquina virtual, habría notado que no había configurado el sistema init por defecto.

  if (!try_to_run_init_process("/sbin/init") || !try_to_run_init_process("/etc/init") || !try_to_run_init_process("/bin/init") || !try_to_run_init_process("/bin/sh")) return 0; panic("No working init found. Try passing init= option to kernel. " "See Linux Documentation/admin-guide/init.rst for guidance."); 

https://github.com/torvalds/linux/blob/v4.11/init/main.c#L990

¿Por qué el package libpam-systemd prefiere systemd-shim sobre systemd-sysv?

Es de suponer que algunos packages de software dependen de libpam-systemd. Cuando se establece como una dependencia, se asume que no desea que systemd-sysv esté instalado si aún no está marcado como tal. ¡Hacerlo cambiaría tu sistema de inicio! En su lugar, es preferible instalar el Calce de compatibilidad.

Si lo cambiara para no haber instalado indirectamente systemd-shim y, por lo tanto, cgmanager, ¿voy a perder la funcionalidad esperada?

Nop.