软件包管理艺术与技术
黄玮
2026-01
libssl, libc…).exe.deb 文件 (类似
.rpm)yum/dnf)# 1. 更新软件包列表 (从服务器获取最新索引)
sudo apt update
# 2. 搜索软件包
apt search nginx
apt show nginx
# 3. 安装软件包
sudo apt install nginx
sudo apt install vim git curl -y # 批量安装
# 4. 升级所有已安装软件
sudo apt upgrade
# 移除软件 (保留配置文件)
sudo apt remove nginx
# 彻底移除 (删除配置文件)
sudo apt purge nginx
# 清理无用的依赖包 (推荐定期执行)
sudo apt autoremove
# 清理下载的缓存包 (.deb 文件)
sudo apt clean
/etc/apt/sources.listdeb http://archive.ubuntu.com/ubuntu/ jammy main restricted
deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted
...
jammy 对应
22.04)main (官方支持),
restricted (专有驱动), universe (社区),
multiverse (非自由)cp /etc/apt/sources.list /etc/apt/sources.list.bakarchive.ubuntu.com 替换为
mirrors.tuna.tsinghua.edu.cnsudo apt update💡 提示: 很多云服务器(阿里云/腾讯云)默认已经配置了内网镜像源,速度最快,无需更改。
.deb 文件当软件不在官方源中 (如 Chrome, VS Code) 时:
# 1. 下载 .deb 文件
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
# 2. 使用 dpkg 安装
sudo dpkg -i google-chrome-stable_current_amd64.deb
# 3. 如果报错 "Dependency missing" (缺依赖)
sudo apt install -f # Fix broken dependencies (自动下载缺少的依赖)
# 列出系统所有已安装包
dpkg -l
# 查看某个包安装了哪些文件 (文件清单)
dpkg -L nginx
# 反查某个文件属于哪个包
dpkg -S /bin/ls
# 输出: coreutils: /bin/ls
当官方源没有你需要的软件,或需要开启特殊功能时:
wget http://example.com/app-1.0.tar.gztar -xzvf app-1.0.tar.gz./configure --prefix=/usr/local/app
make (多核加速:
make -j4)sudo make installmake uninstall
的话,文件散落在系统各处,无法通过 apt remove 清理。apt upgrade 修复,必须手动重新编译。最佳实践: 优先用
apt-> 其次Docker-> 再次Snap/Flatpak-> 最后才考虑源码编译。