Linux 包管理是系统维护和软件安装的核心技能,不同的发行版使用不同的包管理工具。
Debian/Ubuntu 包管理(APT):
- apt update:更新软件包列表
- apt upgrade:升级已安装的软件包
- apt full-upgrade:升级软件包(可能删除依赖包)
- apt install package:安装软件包
- apt remove package:删除软件包(保留配置文件)
- apt purge package:删除软件包及其配置文件
- apt autoremove:删除不再需要的依赖包
- apt search keyword:搜索软件包
- apt show package:显示软件包详细信息
- apt list --installed:列出已安装的软件包
- apt-cache depends package:查看软件包依赖关系
- apt-cache rdepends package:查看依赖该软件包的其他包
- dpkg -l:列出已安装的软件包
- dpkg -i package.deb:安装 .deb 文件
- dpkg -r package:删除软件包
- dpkg -P package:删除软件包及其配置文件
CentOS/RHEL 包管理(YUM/DNF):
- yum update:更新软件包列表和已安装的软件包
- yum install package:安装软件包
- yum remove package:删除软件包
- yum search keyword:搜索软件包
- yum info package:显示软件包详细信息
- yum list installed:列出已安装的软件包
- yum provides command:查找提供某个命令的软件包
- yum check-update:检查可更新的软件包
- yum clean all:清理缓存
- yum deplist package:查看软件包依赖关系
- rpm -qa:列出所有已安装的软件包
- rpm -ivh package.rpm:安装 .rpm 文件
- rpm -e package:删除软件包
- rpm -q package:查询软件包是否已安装
- rpm -ql package:列出软件包安装的文件
- rpm -qf file:查找文件属于哪个软件包
Arch Linux 包管理(PACMAN):
- pacman -Syu:同步软件包数据库并升级系统
- pacman -S package:安装软件包
- pacman -R package:删除软件包
- pacman -Rs package:删除软件包及其依赖
- pacman -Rns package:删除软件包、依赖和配置文件
- pacman -Ss keyword:搜索软件包
- pacman -Si package:显示软件包详细信息
- pacman -Qe:列出显式安装的软件包
- pacman -Qm:列出从 AUR 安装的软件包
- pacman -Fy:同步文件数据库
- pacman -Fo command:查找提供某个命令的软件包
软件源配置:
- Debian/Ubuntu:/etc/apt/sources.list 和 /etc/apt/sources.list.d/
- CentOS/RHEL:/etc/yum.repos.d/
- Arch Linux:/etc/pacman.conf
第三方软件仓库:
- EPEL(Extra Packages for Enterprise Linux):为 RHEL/CentOS 提供额外软件包
- PPA(Personal Package Archive):Ubuntu 用户个人软件仓库
- AUR(Arch User Repository):Arch Linux 用户软件仓库
包管理最佳实践:
- 定期更新系统:apt update && apt upgrade 或 yum update
- 使用版本锁定:apt-mark hold package 或 yum versionlock package
- 清理缓存:apt autoremove && apt clean 或 yum clean all
- 备份重要配置:在升级前备份 /etc 目录
- 测试环境验证:在生产环境更新前先在测试环境验证
- 使用自动化工具:Ansible、Chef、Puppet 等进行批量管理
常见问题解决:
- 依赖冲突:使用 apt -f install 或 yum --skip-broken
- 软件包损坏:使用 dpkg --configure -a 或 yum reinstall package
- 锁定问题:删除 /var/lib/dpkg/lock 或 /var/run/yum.pid
- 找不到软件包:检查软件源配置,运行 apt update 或 yum makecache