常见问题与解决方案

tab 键补全失效

# Debian/Ubuntu
apt install bash-completion

# RHEL/CentOS/Fedora
<yum|dnf> install bash-completion

实现提示某个命令来自哪个包

# Debian/Ubuntu
apt install command-not-found

离线安装 apt 包

步骤1:在能上网的机器上下载包(必须是和内网机器完全相同的 Ubuntu 版本 + 架构,例如都 22.04 amd64)

# 更新源(确保源是最新的)
apt update

# 一次性下载 haproxy + keepalived + 所有依赖包(不会安装,只下载到 /var/cache/apt/archives/)
# apt install 下载时会包含依赖包,而 apt download 不会包含
apt install --download-only -y haproxy keepalived

# 把所有下载好的 .deb 包打包
cd /var/cache/apt/archives
tar zcvf offline-packages.tgz *.deb


# 将 offline-packages.tgz 拷贝到目标机器

步骤2:在纯内网机器上安装

# 解压传输过来的包
mkdir offline-packages
tar xvf offline-packages.tgz -C offline-packages

# 使用 dpkg 一次性安装所有包(会自动处理依赖顺序)
dpkg -i offline-packages/*.deb

FAQ:dpkg 安装时缺少依赖包的解决方案

# 使用 dpkg 安装时的报错:
dpkg: dependency problems prevent configuration of keepalived:
 keepalived depends on libnftnl11 (>= 1.1.2); however:
  Package libnftnl11 is not installed.


# 下载缺少的依赖包,拷贝到目标主机后安装
cd /var/cache/apt/archives
apt download libnftnl11
tar zcvf offline-packages.tgz *.deb