Eu estou olhando para uma situação semelhante, eu quero configurar serviços em um rootfs debootstrap. Parece que systemctl enable
simplesmente lê os alvos na seção [Install]
de um arquivo unitário e cria os links simbólicos corretos. Portanto, se você souber quais serviços deseja iniciar em quais destinos, acho que a resposta correta pode ser apenas criar os links simbólicos corretos. por exemplo,
ln -s /etc/systemd/system/multi-user.target.wants/ssh.service \
/lib/systemd/system/ssh.service
As outras duas etapas ( daemon-reload
e start
) que você não deseja fazer ao instalar em um chroot do debootstrap, mas eu acho que o seu problema é como fazer o link simbólico apenas no env do debootstrap e maneira normal de outra forma ....
Editar para o debootstrap
Como acontece, também estou usando debootstrap
e descobri que systemctl enable
chamadas funcionam bem, desde que o usuário chamador seja root
(para evitar o aviso Failed to connect to bus
). daemon-reload
e start
provavelmente não faz sentido durante uma instalação no chroot, já que você não está em um ambiente ao vivo. Então, o seu postinst
provavelmente quer detectar o chroot e pular essas linhas. Ou defina uma variável env ou passe algum sinalizador que seu script do instalador possa ler.
IM_DEBOOTSTRAPPING=yes dpkg -i mypackage.deb # tells postinst to skip systemctl start