共计 1523 个字符,预计需要花费 4 分钟才能阅读完成。
在学习bpf的时候,libbpf0版本太低,手动二进制编译之后,想着将libbpf卸载掉,结果一卸载就出事了,卸载的时候将一些系统网络包给卸载了:
cat /var/log/apt/history.log
Start-Date: 2024-08-09 18:53:14
Commandline: apt remove libbpf0
Remove: openvpn:amd64 (2.5.9-0ubuntu0.22.04.3), libbpfcc:amd64 (0.18.0+ds-2), network-manager-openvpn-gnome:amd64 (1.8.18-1), network-manager-openvpn:amd64 (1.8.18-1), network-manager-config-connectivity-ubuntu:amd64 (1.36.6-0ubuntu2), python3-bpfcc:amd64 (0.18.0+ds-2), libbpf-dev:amd64 (1:0.5.0-1ubuntu22.04.1), libbpf0:amd64 (1:0.5.0-1ubuntu22.04.1), network-manager-gnome:amd64 (1.24.0-1ubuntu3), network-manager-pptp-gnome:amd64 (1.2.10-1), isc-dhcp-client:amd64 (4.4.1-2.3ubuntu2.4), network-manager:amd64 (1.36.6-0ubuntu2), bpftrace:amd64 (0.14.0-1), libbpfcc-dev:amd64 (0.18.0+ds-2), network-manager-pptp:amd64 (1.2.10-1), bpfcc-tools:amd64 (0.18.0+ds-2), netplan.io:amd64 (0.106.1-7ubuntu0.22.04.4), iproute2:amd64 (5.15.0-1ubuntu2), ubuntu-minimal:amd64 (1.481.1)
End-Date: 2024-08-09 18:53:26
修复方法:
使用一台权限的 ubuntu 2204 服务器,将 deb 包手动下载,然后复制文件到故障机器进行还原:
-
手动创建一个文件(例如
packages.txt
),将需要下载的所有包名列入其中。你可以直接复制以下内容:openvpn libbpfcc network-manager-openvpn-gnome network-manager-openvpn network-manager-config-connectivity-ubuntu libbpf0 libbpf-dev network-manager-gnome isc-dhcp-client network-manager network-manager-pptp-gnome bpftrace ubuntu-minimal c-tools netplan.io iproute2 libbpfcc-dev python3-bpfcc
已经下载好的文件包:packages
-
在新系统上使用
apt-get
下载包:你可以使用以下命令来下载这些包:
sudo apt-get update sudo xargs -a packages.txt apt-get download
这将会下载所有列在
packages.txt
文件中的包到当前目录。 -
将包转移到其他系统或离线安装:
如果你需要将这些包安装在其他没有网络连接的系统上,可以将下载的
.deb
文件拷贝到目标系统,然后使用以下命令安装:sudo dpkg -i *.deb
正文完