Skip to content

软件包管理

APT (Debian/Ubuntu)

更新与升级

bash
apt update                          # 更新软件源
apt upgrade                         # 升级所有软件
apt full-upgrade                    # 完整升级(可删除包)
apt dist-upgrade                    # 发行版升级
apt autoremove                      # 自动删除不需要的包
apt autoclean                       # 清理旧版本包
apt clean                           # 清理所有缓存

软件包操作

bash
apt install package                 # 安装软件包
apt install package1 package2       # 安装多个包
apt install -y package              # 自动确认
apt install --reinstall package     # 重新安装
apt install -f                      # 修复依赖
apt remove package                  # 删除软件包
apt remove --purge package          # 删除软件包和配置
apt purge package                   # 删除软件包和配置
apt autoremove package              # 删除软件包及其依赖

查询信息

bash
apt search keyword                  # 搜索软件包
apt show package                    # 显示软件包信息
apt list                            # 列出所有软件包
apt list --installed                # 列出已安装软件包
apt list --upgradable               # 列出可升级软件包
apt depends package                 # 显示依赖关系
apt rdepends package                # 显示反向依赖
apt policy package                  # 显示安装来源

软件源配置

/etc/apt/sources.list:

deb http://archive.ubuntu.com/ubuntu jammy main restricted
deb http://archive.ubuntu.com/ubuntu jammy-updates main restricted
deb http://archive.ubuntu.com/ubuntu jammy universe
deb http://archive.ubuntu.com/ubuntu jammy multiverse

添加 PPA:

bash
add-apt-repository ppa:user/ppa-name
add-apt-repository --remove ppa:user/ppa-name
apt update

dpkg 底层工具

bash
dpkg -i package.deb                 # 安装 deb 包
dpkg -r package                     # 删除软件包
dpkg -P package                     # 删除软件包和配置
dpkg -l                             # 列出已安装软件包
dpkg -l | grep keyword              # 搜索已安装包
dpkg -L package                     # 列出包安装的文件
dpkg -S /path/to/file               # 查找文件所属包
dpkg -s package                     # 显示包状态
dpkg --configure -a                 # 配置所有未配置的包
dpkg --get-selections               # 列出包选择状态

YUM/DNF (CentOS/RHEL/Fedora)

DNF (Fedora/RHEL 8+)

bash
dnf update                          # 更新所有软件
dnf upgrade                         # 升级所有软件
dnf install package                 # 安装软件包
dnf install -y package              # 自动确认
dnf reinstall package               # 重新安装
dnf remove package                  # 删除软件包
dnf autoremove                      # 自动删除不需要的包
dnf clean all                       # 清理缓存

查询信息

bash
dnf search keyword                  # 搜索软件包
dnf info package                    # 显示软件包信息
dnf list                            # 列出所有软件包
dnf list installed                  # 列出已安装软件包
dnf list available                  # 列出可用软件包
dnf list updates                    # 列出可更新软件包
dnf provides /path/to/file          # 查找文件所属包
dnf repoquery -l package            # 列出包安装的文件
dnf deplist package                 # 显示依赖关系
dnf history                         # 显示操作历史
dnf history undo ID                 # 撤销操作

软件源管理

bash
dnf repolist                        # 列出软件源
dnf repolist --all                  # 列出所有软件源
dnf config-manager --add-repo URL   # 添加软件源
dnf config-manager --disable repo   # 禁用软件源
dnf config-manager --enable repo    # 启用软件源

YUM (CentOS 7)

bash
yum update                          # 更新所有软件
yum install package                 # 安装软件包
yum remove package                  # 删除软件包
yum search keyword                  # 搜索软件包
yum info package                    # 显示软件包信息
yum list installed                  # 列出已安装软件包
yum provides /path/to/file          # 查找文件所属包
yum clean all                       # 清理缓存
yum history                         # 显示操作历史
yum history undo ID                 # 撤销操作

RPM 底层工具

bash
rpm -ivh package.rpm                # 安装 rpm 包
rpm -Uvh package.rpm                # 升级 rpm 包
rpm -e package                      # 删除软件包
rpm -qa                             # 列出所有已安装包
rpm -qa | grep keyword              # 搜索已安装包
rpm -ql package                     # 列出包安装的文件
rpm -qf /path/to/file               # 查找文件所属包
rpm -qi package                     # 显示包信息
rpm -V package                      # 验证包
rpm --import /path/to/key           # 导入 GPG 密钥

Pacman (Arch Linux)

更新与升级

bash
pacman -Sy                          # 更新软件源
pacman -Su                          # 升级所有软件
pacman -Syu                         # 更新并升级
pacman -Syy                         # 强制更新软件源
pacman -Syyu                        # 强制更新并升级

软件包操作

bash
pacman -S package                   # 安装软件包
pacman -S package1 package2         # 安装多个包
pacman -S --needed package          # 只安装未安装的
pacman -S --noconfirm package       # 自动确认
pacman -R package                   # 删除软件包
pacman -Rs package                  # 删除软件包及其依赖
pacman -Rns package                 # 删除软件包、依赖和配置
pacman -Rdd package                 # 强制删除(忽略依赖)

查询信息

bash
pacman -Ss keyword                  # 搜索软件包
pacman -Si package                  # 显示软件包信息
pacman -Q                           # 列出已安装软件包
pacman -Qe                          # 列出显式安装的包
pacman -Qn                          # 列出官方仓库的包
pacman -Qm                          # 列出 AUR 的包
pacman -Qi package                  # 显示已安装包信息
pacman -Ql package                  # 列出包安装的文件
pacman -Qo /path/to/file            # 查找文件所属包
pacman -Qdt                         # 列出孤立包

清理缓存

bash
pacman -Sc                          # 清理卸载的包缓存
pacman -Scc                         # 清理所有缓存

Zypper (openSUSE)

更新与升级

bash
zypper refresh                      # 更新软件源
zypper update                       # 升级所有软件
zypper dup                          # 发行版升级

软件包操作

bash
zypper install package              # 安装软件包
zypper install -y package           # 自动确认
zypper remove package               # 删除软件包
zypper remove --clean-deps package  # 删除软件包及其依赖

查询信息

bash
zypper search keyword               # 搜索软件包
zypper info package                 # 显示软件包信息
zypper packages --installed         # 列出已安装软件包
zypper what-provides /path/to/file  # 查找文件所属包

软件源管理

bash
zypper repos                        # 列出软件源
zypper addrepo URL alias            # 添加软件源
zypper removerepo alias             # 删除软件源
zypper modifyrepo --enable alias    # 启用软件源
zypper modifyrepo --disable alias   # 禁用软件源

Snap

基本操作

bash
snap find keyword                   # 搜索软件包
snap install package                # 安装软件包
snap install --classic package      # 经典模式安装
snap remove package                 # 删除软件包
snap refresh                        # 更新所有软件
snap refresh package                # 更新指定软件
snap revert package                 # 回滚到上一版本

查询信息

bash
snap list                           # 列出已安装软件
snap info package                   # 显示软件信息
snap changes                        # 显示操作历史

服务管理

bash
snap start package                  # 启动服务
snap stop package                   # 停止服务
snap restart package                # 重启服务
snap services package               # 查看服务状态

Flatpak

基本操作

bash
flatpak search keyword              # 搜索软件包
flatpak install remote package      # 安装软件包
flatpak uninstall package           # 删除软件包
flatpak update                      # 更新所有软件
flatpak update package              # 更新指定软件

查询信息

bash
flatpak list                        # 列出已安装软件
flatpak info package                # 显示软件信息
flatpak history                     # 显示操作历史

远程仓库

bash
flatpak remote-list                 # 列出远程仓库
flatpak remote-add name URL         # 添加远程仓库
flatpak remote-delete name          # 删除远程仓库
flatpak remote-modify --enable name # 启用远程仓库
flatpak remote-modify --disable name # 禁用远程仓库

源码编译安装

基本步骤

bash
tar -xzf package.tar.gz             # 解压
cd package                          # 进入目录
./configure                         # 配置
make                                # 编译
make install                        # 安装

常用选项

bash
./configure --prefix=/usr/local     # 指定安装路径
./configure --enable-feature        # 启用功能
./configure --disable-feature       # 禁用功能
./configure --with-package          # 指定依赖包
./configure --help                  # 查看帮助

make -j4                            # 并行编译
make clean                          # 清理编译文件
make uninstall                      # 卸载
make distclean                      # 完全清理

Checkinstall

bash
checkinstall                        # 创建安装包并安装
checkinstall --type=debian          # 创建 deb 包
checkinstall --type=rpm             # 创建 rpm 包

常用软件安装示例

开发工具

bash
apt install build-essential         # Ubuntu 编译工具
dnf groupinstall "Development Tools" # CentOS 编译工具
pacman -S base-devel                # Arch 编译工具

apt install git                     # Git
apt install vim                     # Vim
apt install nodejs npm              # Node.js
apt install python3 python3-pip     # Python

Web 服务

bash
apt install nginx                   # Nginx
apt install apache2                 # Apache
apt install mysql-server            # MySQL
apt install redis-server            # Redis

容器与虚拟化

bash
apt install docker.io               # Docker
apt install docker-compose          # Docker Compose
apt install virtualbox              # VirtualBox

软件包管理对比

功能APTDNF/YUMPacman
更新源apt updatednf makecachepacman -Sy
升级软件apt upgradednf upgradepacman -Su
安装软件apt installdnf installpacman -S
删除软件apt removednf removepacman -R
搜索软件apt searchdnf searchpacman -Ss
已安装列表apt list --installeddnf list installedpacman -Q
查找文件所属包dpkg -Sdnf providespacman -Qo

下一步学习