这个Page主要聚焦主流包管理器的用法包括:基本语法、搜索、安装、配置源、更新、查依赖、反向依赖、依赖解决、所属文件、常见问题修复等
主流的操作系统包管理器包括以下几种:
- APT (Advanced Package Tool):APT 是 Debian 及其衍生发行版(如 Ubuntu)上的包管理工具。它使用 .deb 包格式,并提供了一套用于安装、升级和移除软件包的命令。
- YUM (Yellowdog Updater, Modified):YUM 是 Red Hat 及其衍生发行版(如 CentOS)上的包管理器。它使用 .rpm 包格式,并提供了类似于 APT 的功能,用于安装、升级和移除软件包。
- DNF (Dandified YUM):DNF 是 YUM 的下一代版本,也用于 Red Hat 及其衍生发行版上。它提供了与 YUM 类似的功能,但使用了更现代的解析器技术来提高性能。
- Pacman:Pacman 是 Arch Linux 及其衍生发行版(如 Manjaro Linux)上的包管理器。它使用 .pkg.tar.xz 包格式,并提供了一套用于安装、升级和移除软件包的命令。
- Homebrew:Homebrew 是 macOS 上的包管理器,它允许用户从命令行安装软件包,类似于 Linux 上的 APT 或 YUM。
- winget:winget 是微软在 Windows 上推出的官方包管理器,类似于 Chocolatey,但是由微软官方支持。
apt※
apt 语法※
sudo apt [options] [command] [package ...]
options
:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。command
:要进行的操作。package
:安装的包名。
搜索※
更具关键词搜索包名apt search <keyword>
安装※
安装指定的软件命令:sudo apt install <package_name>
安装指定版本软件包:sudo apt install <package_name>=<version_number>
删除※
移除包可以使用 remove 命令:sudo apt remove <package_name>
移除软件包及配置文件: sudo apt purge <package_name>
清理不再使用的依赖和库文件: sudo apt autoremove
源※
更新※
列出所有可更新的软件清单命令:sudo apt update
列出可更新的软件包及版本信息:apt list --upgradable
升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade
升级软件包:sudo apt upgrade
更新指定的软件包命令:sudo apt update <package_name>
依赖查询※
查询※
列出所有已安装的包:apt list --installed
列出所有已安装的包的版本信息:apt list --all-versions
显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>
列出系统中所有手动指定安装的包:pacman -Qe
方便备份和重装,
其他※
yum※
yum是基于rpm包的包管理器,rpm 软件包后缀为.rpm,包含编译后的程序、库文件、配置文件等,以及与之相关的文档和数据文件。它们也可以包含预编译的二进制文件。rpm包与deb包一样喜欢把软件包拆分为多个子包如headers包,RPM 软件包的粒度也可以是相当细的。
yum 语法※
yum [options] [command] [package ...]
options
:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
command
:要进行的操作。
package
:安装的包名。
搜索※
查找软件包命令:yum search <keyword>
安装※
安装指定的软件命令:sudo yum install <package_name>
删除※
删除软件包命令:yum remove <package_name>
清除缓存命令:
- yum clean packages: 清除缓存目录下的软件包
- yum clean headers: 清除缓存目录下的 headers
- yum clean oldheaders: 清除缓存目录下旧的 headers
- yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
源※
更新※
列出所有可更新的软件清单命令:yum check-update
更新所有软件包:sudo yum update
仅更新指定的软件命令:yum update <package_name>
依赖查询※
查询※
列出所有可安裝的软件清单命令:yum list
列出已安装的软件包 yum list installed
其他※
dnf※
dnf是yum的下一代包管理器,目前逐渐要替代yum包管。
dnf 语法※
dnf [options] [command] [package ...]
options:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
command:要进行的操作。
package:安装的包名。
搜索※
更具关键词搜索包名 dnf search <keyword>
安装※
安装指定的软件命令:sudo dnf install <package_name>
配置源※
更新※
更新所有软件包:sudo dnf update
依赖查询※
查询文件※
其他※
pacman※
Pacman 是 Arch Linux 系发行版(如Manjaro、Arco、EndeavourOS等)的软件包管理器,它使用 .tar.zst 格式的软件包。arch系通常更倾向于将软件包作为单个实体,而不是拆分为多个子软件包。因此,tar.zst 软件包的粒度相对来说可能更大,也更倾向于与上游相同的代码,如非必要一般不会修改上游代码。
pacman 语法※
pacman options [package ...]
options
:必选,选项包括 -h(帮助),-S(从远程数据库)-Q(从本地数据库)、-q (参数仅输出包名)
package
:安装的包名。
搜索※
根据关键词搜索包名 pacman -Ss <keyword>
在本地搜索包名 pacman -Qs <keyword>
安装※
安装指定的软件命令:sudo pacman -S <package_name>
安装指定版本:arch系都是roll滚动发行,只提供最新的稳定的软件包,如需降级安装要使用Arch ARM 回滚机。(部分更新可能会导致严重的错误,如果确定部分更新或降级的后果,强烈推荐完整更新)
源※
pacman
软件源的设置在/etc/pacman.conf
,
配置格式形如:
# Repository entries are of the format:
[repo-name]
SigLevel = Required DatabaseOptional
Server = ServerName
Include = IncludePath # 你也可以Include一个镜像源文件
其中arch默认仓库include
了/etc/pacman.d/mirrorlist
更新※
仅更新仓库,不更新软件包:sudo pacman -Sy
更新所有软件包:sudo pacman -Syu
双y强制同步仓库,双u强制更新软件包
依赖查询※
查询※
查询本地软件包信息:pacman -Qi <package_name>
查询远端仓库的软件包信息:pacman -Si <package_name>
查询软件包内所有文件的安装位置:pacman -Ql <package_name>
查询本地文件归属信息:
其他※
winget※
winget 语法※
搜索※
根据关键词搜索包名 winget search <keyword>
安装※
安装指定的软件命令:winget install <package_name>
源※
- 添加源:用户可以通过
winget source add
命令添加新的源。例如,可以通过执行winget source add --name Contoso https://www.contoso.com/cache
命令将Contoso存储库添加到winget中。此外,添加命令支持可选的type
参数,用于告知客户端将要连接到的存储库类型,支持的类型包括Microsoft.PreIndexed.Package
(默认源类型)等。 - 列出源:使用
list
子命令可以枚举当前启用的来源或提供有关特定源的详细信息。例如,通过执行winget source list
命令可以列出所有启用的源,或者通过指定源的名称(如winget source list --name Contoso
)来获取关于特定源的详细信息。 - 移除源:如果需要,用户还可以通过
winget source remove
命令移除不必要的源。例如,执行winget source remove Contoso
命令可以移除名为Contoso的源。 - 配置参数:在配置winget源时,可以使用各种参数来控制操作,如
-n
或--name
用于标识源的名称,-?
或--help
用于获取帮助信息,--wait
提示用户在退出前按任意键,--logs
或--open-logs
打开默认日志位置等。 - 更新源:
winget source update
## Winget≥1.8
winget source remove winget
winget source add winget https://mirrors.ustc.edu.cn/winget-source --trust-level trusted
## Winget<=1.7
winget source remove winget
winget source add winget https://mirrors.ustc.edu.cn/winget-source
## 重置源
winget source reset winget
更新※
winget updata/upgrade
依赖查询※
查询文件※
其他※