私はDebianユーザーです。
systemdを削除し、他のものをインストールしませんでした。
私は逃げたsudo apt remove systemd
。そして私は逃げた sudo apt autoremove systemd
。
その後、私のラップトップはインターネットに接続できず、GUIも利用できませんでした。コマンドラインインターフェイスで停止していました(ログイン後にコマンドを実行できました)。この問題をどのように解決できますか?
答え1
以下のすべてのコマンドはrootとして実行されると仮定します。ルートとして直接ログインするか、可能でない場合はsudo
使用および使用を許可されているユーザーとしてログインします。末尾にaの付いたsudo -i
ルートプロンプトが必要です。#
/var/log/apt
以下をバックアップする必要があります。
cp -a /var/log/apt /root/log-apt-backup
これにより、後で再インストールする必要がある他の削除されたパッケージを見つけることができます。
System V のサポートが弱くなっているため、一部の GUI 部分がシステム機能に依存してブートに失敗すると想定できます。
を再インストールする必要がありますが、これだけでは不十分です。他の必須依存関係をトリガーするには、System Vの提供をsystemd
削除する必要があります。交換System Vパッケージをアンインストールするとインストールがトリガされるのと同様に、このパッケージをアンインストールするとsystemdエコシステムで交換がトリガされます。/sbin/init
sysvinit-core
systemd
空のLXCコンテナでテストされました。
root@bookworm-test:~# apt remove systemd
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
initscripts insserv orphan-sysvinit-scripts sensible-utils startpar sysv-rc
sysvinit-core ucf
Suggested packages:
bootchart2 bootlogd
The following packages will be REMOVED:
dbus-user-session libnss-systemd libpam-systemd systemd systemd-resolved
systemd-sysv
The following NEW packages will be installed:
initscripts insserv orphan-sysvinit-scripts sensible-utils startpar sysv-rc
sysvinit-core ucf
0 upgraded, 8 newly installed, 6 to remove and 0 not upgraded.
などを修正するには、後で再起動してください(これを実行しないでください。十分ではありません)。
# apt install systemd
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
systemd-timesyncd
Suggested packages:
systemd-container systemd-homed systemd-userdbd systemd-boot
systemd-resolved libqrencode4 libtss2-esys-3.0.2-0 libtss2-mu0 libtss2-rc0
polkitd | policykit-1
The following NEW packages will be installed:
systemd systemd-timesyncd
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
十分に役に立つことはありません(sys V initに残ります)。
代わりに:
root@bookworm-test:~# apt remove sysvinit-core
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
initscripts insserv startpar sysv-rc
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
dbus-user-session libnss-systemd libpam-systemd systemd systemd-sysv
systemd-timesyncd
Suggested packages:
systemd-container systemd-homed systemd-userdbd systemd-boot
systemd-resolved libqrencode4 libtss2-esys-3.0.2-0 libtss2-mu0 libtss2-rc0
polkitd | policykit-1
The following packages will be REMOVED:
sysvinit-core
The following NEW packages will be installed:
dbus-user-session libnss-systemd libpam-systemd systemd systemd-sysv
systemd-timesyncd
0 upgraded, 6 newly installed, 1 to remove and 0 not upgraded.
より便利に見えます。推奨パッケージの少なくとも1つをインストールする必要があります。 (polkitd
これは最後に追加して1回の操作で実行できます。)最後に、次を実行します。+
remove
apt remove sysvinit-core polkitd+
これにはネットワークが必要です。 OP(実際に私のLXCテスト)はもはや基本的にネットワークを持っていないようです。この問題は、次の有線イーサネットインターフェイスを使用して簡単に解決できますeth0
(実際の名前はip -br link
結果から取得でき、eth0
必要に応じて以下の名前をその名前に置き換えます)。
dhclient -v eth0
その後、前のapt
コマンドを再試行してください。
最小システムでは、次のように表示されます。
# apt remove sysvinit-core polkitd+
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
initscripts insserv startpar sysv-rc
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
dbus-user-session libduktape207 libglib2.0-0 libglib2.0-data libicu72
libnss-systemd libpam-systemd libpolkit-agent-1-0 libpolkit-gobject-1-0
libxml2 sgml-base shared-mime-info systemd systemd-sysv systemd-timesyncd
xdg-user-dirs xml-core
Suggested packages:
low-memory-monitor polkitd-pkla sgml-base-doc systemd-container
systemd-homed systemd-userdbd systemd-boot systemd-resolved libqrencode4
libtss2-esys-3.0.2-0 libtss2-mu0 libtss2-rc0 debhelper
The following packages will be REMOVED:
sysvinit-core
The following NEW packages will be installed:
dbus-user-session libduktape207 libglib2.0-0 libglib2.0-data libicu72
libnss-systemd libpam-systemd libpolkit-agent-1-0 libpolkit-gobject-1-0
libxml2 polkitd sgml-base shared-mime-info systemd systemd-sysv
systemd-timesyncd xdg-user-dirs xml-core
0 upgraded, 18 newly installed, 1 to remove and 0 not upgraded.
その後、再起動してsystemdに戻します。これはGUIを復元したり復元したりすることはできませんが、systemd
これを確認するには次のように実行します(rootとして)。
ldd /proc/1/exe | grep systemd
空でない出力が必要です。
上記の操作が完了したら、ログのバックアップを確認し、実行/root/log-apt-backup/history.log
したコマンドに似た行を検索します。その項目の下に表示される削除されたパッケージを確認し、まだ欠落している可能性があるパッケージを再度追加してください。Commandline: apt remove systemd
Commandline: apt autoremove systemd
Remove: