為什麼debian不穩定更喜歡安裝cgmanager?
我使用
debootstrap
並systemd-nspawn
啟動了一個 Debian Unstable 容器。主機系統是 Debian Jessie。
systemctl
顯示容器有一個失敗的服務,cgproxy
. (儘管執行了一個守護程序cgmanager
,但在主機上安裝並沒有幫助)。cgmanager
如果我詢問從容器中
apt-get
移除的問題,它會說移除並安裝. 但建議是首選的替代方案。cgmanager``systemd-shim``systemd-sysv``aptitude``systemd-shim
$ 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)
- 具體
libpam-systemd
取決於什麼,可以由 或 之一systemd-shim
提供systemd-sysv
?僅說明systemd-sysv
它具有“systemd 替換 sysvinit 所需的手冊頁和連結”。- 為什麼
libpam-systemd
包更systemd-shim
喜歡systemd-sysv
?- 如果我切換了它,所以我沒有間接安裝
systemd-shim
,因此cgmanager
,我會失去任何預期的功能嗎?
libpam-systemd 具體依賴什麼,可以由 systemd-shim 或 systemd-sysv 之一提供?systemd-sysv 的描述僅說它具有“systemd 替換 sysvinit 所需的手冊頁和連結”。
我認為這是
systemd-
部分:-P。
libpam-systemd
旨在在使用systemd
. 或者,如果它使用不同的 init 系統引導,它將與 systemd- shim一起工作。你被這個名字誤導了
systemd-sysv
。它不僅為使用者程序提供向後兼容性。它還systemd
通過創建從/sbin/init
to的符號連結設置為核心載入的預設 init 系統/lib/systemd/systemd
。
libpam-systemd
軟體包依賴項假設當且僅當 systemd 是預設的 init 系統時,作業系統才會啟動systemd
。**結論:**當您想在 Debian 中安裝 systemd 時,通常需要安裝 systemd-sysv 軟體包。
您感到困惑的真正原因是您使用
systemd-nspawn
. 我認為systemd-nspawn
在通常的地方搜尋 init 系統,然後回退到/lib/systemd/systemd
.如果您嘗試使用 Linux 核心(例如在虛擬機中)啟動此安裝,您會注意到您沒有設置預設的 init 系統
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
為什麼 libpam-systemd 包更喜歡 systemd-shim 而不是 systemd-sysv?
大概有些軟體包依賴於 libpam-systemd。當它作為依賴項被引入時,假設您不希望安裝 systemd-sysv,如果它還沒有被標記為這樣的話。這樣做會改變你的初始化系統!相反,最好安裝兼容性墊片。
如果我切換它,所以我沒有間接安裝 systemd-shim 和 cgmanager,我會失去任何預期的功能嗎?
沒有。