在 Debian 安装上安装 systemd 服务

Install systemd service on Debian installation

我正在使用 simple-cdd 实用程序构建自定义 Debian ISO。在我附上自己的 .deb 包之前,它一直运行良好。

build-simple-cdd --dist stretch --profiles moj --force-root --local-packages /root/iso/deb

build-simple-cdd 工作正常,因为我在 tmp 目录结构中看到了我的 deb 包,并且成功创建了 iso 映像。但是 debian 安装失败

我怀疑 postinst 脚本失败了,因为它在可能不可用时使用了 systemctl 命令。

#!/bin/sh
set -e

echo 
if [ "" = "configure" ]; then 
    echo "Configuring privileges..."
    chown user:user /usr/bin/Koncentrator
    chmod 0755 /usr/bin/Koncentrator

    echo "Enabling Koncentrator services..." 
    systemctl daemon-reload
    systemctl enable Xvfb.service
    systemctl enable Koncentrator.service
fi

我已经为控制文件添加了 systemd 依赖项,但它不起作用。

我针对此问题制定了解决方法。 simple-cdd 允许准备 post 安装脚本。在那里调用 apt install 没有问题。使用此解决方案需要两个步骤:

  1. 将 deb 包添加到安装盘。这是通过配置文件配置的(moj.conf):
all_extras="$all_extras /root/iso/files/customapackage_0.1.3.deb"
  1. 运行 apt 安装在 moj.postinst 脚本中:
#!/bin/sh

mount /dev/cdrom /media/cdrom
cd /media/cdrom/simple-cdd
apt install ./custompackage_0.1.3.deb
cd /
sync
umount /media/cdrom

如果你想调试你的 postinst 脚本,你可以插入 long sleep:

#!/bin/sh

sleep 10000000
...

并在完成安装阶段切换终端 (Ctrl+Alt+F1-6)。比调用 chroot /target 切换目标环境