如何在 Debian 上将 upstart 设置为默认值?

如何在 Debian 上将 upstart 设置为默认值?

我有一个运行 Debian 的虚拟服务器。由于某种原因,如果我使用 sysvinit,它不会启动。我认为问题出在主机操作系统上,因为它是基于 Virtuozzo 的计算机,而不是完全虚拟的。不过,使用 upstart 时它确实会启动。问题是我还在使用 cron-apt,它会在每次更新到达时重新安装 sysvinit。有什么办法让 Debian 默认使用 upstart 吗?或者使用 apt 将其锁定到位?

更新:

我尝试了下面建议的解决方案,它似乎有效。 apt 首选项的正确语法是这样的:

Package: sysvinit
Pin: origin ""
Pin-Priority: -1

答案1

这与现有的问题类似 Debian 上的新贵?

无论版本如何,必须声明的是,upstart在 Debian 中作为 init 系统运行似乎“需要您自担风险”。话虽如此...

Debian 威兹(截至 2015 年的旧稳定版),sysvinit包装上有标记Essential,这可能就是为什么upstart不是很“粘”。

可用于限制 的apt行为的两种机制是apt_preferences和 dpkg 黑名单。apt_preferences在以下文件中进行了描述/etc/apt/preferences.d/;阅读上面链接的手册页。

dpkg 黑名单的描述见nixCraft 博客文章。你可以尝试:

echo "sysvinit hold" | sudo dpkg --set-selections

作为Debian 杰西(截至 2015 年稳定),sysvinit包是一个过渡包,不再是必需的:

该包依赖于 init,这是拉入默认 init 系统的重要包。从 jessie 开始,这将是 Linux 上的 systemd。它有助于平滑过渡,并提供后备 SysV init 二进制文件,可用于通过 init=/lib/sysvinit/init 内核命令行参数引导系统,以防系统在切换到 systemd 后无法启动。

如果您的系统使用 systemd 成功启动,或者您选择坚持使用 sysvinit-core,则可以安全地删除此软件包。

所以我猜你没有运行 Jessie,但如果你运行了,你可以尝试上面描述的 Wheezy 解决方案。

相关内容