如何在 Debian 上將 upstart 設置為預設值?
我有一個執行 Debian 的虛擬伺服器。出於某種原因,如果我使用 sysvinit,它不會啟動。我認為問題出在主機作業系統上,因為它是基於 Virtuozzo 的機器而不是完全虛擬的。不過,它在使用 upstart 時確實會啟動。問題是我也在使用 cron-apt 每次更新到達時都會重新安裝 sysvinit。有什麼方法可以告訴 Debian 預設使用 upstart 嗎?或者使用apt將其鎖定到位?
更新:
我嘗試了下面建議的解決方案,它似乎有效。apt 首選項的正確語法是這樣的:
Package: sysvinit Pin: origin "" Pin-Priority: -1
這類似於現有的問題 Upstart on Debian?
無論版本如何,必須聲明
upstart
在 Debian 中作為 init 系統執行似乎“風險自負”。話雖如此…在Debian Wheezy(截至 2015 年的舊版本)中,
sysvinit
軟體包被標記為Essential
,這可能就是為什麼upstart
不是很“粘”的原因。可用於限制
apt
的行為的兩種機制是apt_preferences
dpkg 黑名單。在;apt_preferences
下的文件中進行了描述/etc/apt/preferences.d/
閱讀上面連結的手冊頁。nixCraft 部落格文章中描述了 dpkg 黑名單。你可以試試:
echo "sysvinit hold" | sudo dpkg --set-selections
從Debian Jessie開始(自 2015 年起穩定),該
sysvinit
軟體包是一個過渡軟體包,不再是必需的:這個包依賴於 init,它是一個必不可少的包,它引入了預設的 init 系統。從 jessie 開始,這將在 Linux 上進行系統化。它有助於平滑過渡並提供備用 SysV init 二進製文件,該二進製文件可用於通過 init=/lib/sysvinit/init 核心命令行參數引導系統,以防系統在切換到 systemd 後無法啟動。
如果您的系統使用 systemd 成功啟動,或者您選擇堅持使用 sysvinit-core,則可以安全地刪除此軟體包。
所以我猜你沒有執行 Jessie,但如果你是,你可以嘗試上面描述的 Wheezy 解決方案。