我目前正在尝试在我的 Ubuntu 20.04 WSL 上mysql-server
安装。sudo apt install mysql-server
但是,进入Y
安装后,我遇到了以下错误:
Setting up ec2-instance-connect (1.1.12+dfsg1-0ubuntu3.20.04.1) ...
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
sshd override added, restarting daemon
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
dpkg: error processing package ec2-instance-connect (--configure):
installed ec2-instance-connect package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
ec2-instance-connect
apt
运行其他或apt-get
命令时也会出现此输出。我该如何修复这个错误(使用 Linux 是非常新的)。
答案1
知道它是从哪里来ec2-instance-connect
的吗?看起来它在您尝试安装 MySQL Server 之前就已经安装了,而且除了在 Amazon EC2 上运行的 Ubuntu 实例之外,它不应该存在于任何其他东西上。
你可能有之前的尝试中已经正确安装了 MySQL Server,但现在每次运行该包时apt
都会尝试配置该包。ec2-instance-connect
答案应该很简单——删除ec2-instance-connect
包装。不幸的是,该包的删除后脚本假定 Systemd 可用,但它不在 WSL 下。
所以你需要:
sudo rm /var/lib/dpkg/info/ec2-instance-connect.postrm
sudo apt purge ec2-instance-connect
sudo deluser --system --quiet ec2-instance-connect
apt
此后应该可以再次正常工作。
虽然您可能没有sshd
在 WSL 下使用(这很麻烦,甚至不需要远程连接,除非在极少数情况下),您可能还想扫描您的/etc/ssh/sshd_config
.在某些情况下,软件包安装似乎也会对该文件进行修改,但我还没有完全理解它,无法判断它们可能是什么。
它是可能的由于删除后脚本尝试运行deb-systemd-helper purge ec2-instance-connect
(但不能),因此还有一些其他问题仍然存在。但我不确定它想做什么。把残渣留在周围可能是无害的。