前言不同的操作系统、编程语言几乎都有自己的包管理器而每种包管理器的命令用法虽都大同小异但还是有些区别的。为了避免在面临各种命令时出现一个头两个大的情况特为此专门整理一份简要手册以便随用随查。1、Linux 类Linux 系统下的包管理器很多但综合来看其实主要分三种DEB 包主要在 Debain、Ubuntu、以及它们的衍生系统中使用。RPM 包主要在 CentOS、RedHat、以及它们的衍生系统中使用。通用包在任何 Linux 系统中均适用并没有具体的专配系统。注1DEB 包和 RPM 包其实都是通过将编译后的二进制程序及其它附属文件以一种特定的流程打包之后的产物二者仅仅只是在流程处理、软件管理方式上的不同拆开来看二者并没有什么区别2通用包就是指编译后的二进制程序无需经过像 DEB/RPM 那样的打包操作直接就拿来使用的包。1.1、DEB 包1.1.1、apt特点在线安装基于.deb包可自动解决包之间的依赖关系。#以下命令按照初始化、增删查改、其它 进行的排序。 apt update # 更新软件仓库索引同步最新软件列表 apt install nginx # 安装软件包 nginx apt install nginx1.24.0 # 安装指定版本的软件包 apt remove nginx # 删除软件保留配置文件 apt purge nginx # 彻底删除软件包括配置文件 apt autoremove # 删除不再需要的依赖包建议在卸载软件之后紧接着就执行 apt search nginx # 搜索软件包 apt show nginx # 查看软件包详细信息 apt list -i # 查看当前已安装的软件包列表 apt list -u # 查看当前可升级的软件包列表 apt -f install # 修复损坏依赖或补全缺失依赖 apt install --only-upgrade 7zip# 升级指定已安装软件 apt upgrade # 升级所有已安装软件 apt full-upgrade # 完整升级允许处理依赖变化、替换包注apt upgrade和apt full-upgrade的区别在于对待“依赖关系变更”的处理方式。apt upgrade会安装当前已安装软件的最新版本。但是如果升级某个软件需要安装新的依赖包或者需要删除现有的依赖包apt upgrade会拒绝升级该软件以保持系统的稳定性而apt full-upgrade则不管这些为了完成升级可能会安装新包或删除旧包行为上比较激进一些不如前者保守。1.1.2、dpkg特点离线安装基于.deb包需手动解决包之间的依赖关系。#以下命令按照初始化、增删查改、其它 进行的排序。 dpkg -ivh nginx.deb # 安装本地 deb 软件包 dpkg -r nginx # 删除软件保留配置文件 dpkg -P nginx # 彻底删除软件包括配置文件 dpkg -l # 查看系统中所有已安装软件包 dpkg -l | grep nginx # 查询 nginx 是否已安装 dpkg -s nginx # 查看指定软件包状态信息 dpkg -L nginx # 查看软件包安装了哪些文件 dpkg -S /usr/sbin/nginx # 查询某个文件属于哪个软件包 dpkg -c nginx.deb # 查看 deb 包内文件内容不安装1.2、RPM 包1.2.1、yum特点在线安装基于.rpm包可自动解决包之间的依赖关系。#以下命令按照初始化、增删查改、其它 进行的排序。 yum makecache # 更新本地仓库缓存 yum install nginx # 安装软件包 nginx yum groups install GroupTool # 安装软件组中的所有软件。 yum remove nginx # 删除软件包 nginx yum groups remove GroupTool # 删除软件组 yum search nginx # 搜索软件包 yum info nginx # 查看软件包详细信息 yum list installed # 查看已安装软件包 yum list available # 查看仓库中可安装软件 yum groups list # 查看可用的/已安装的软件组 yum groups info GroupTool # 查看软件组中包含哪些软件 yum update # 升级所有软件包 yum reinstall nginx # 重新安装软件包 yum clean all # 清理缓存 yum install pkg --downloadonly # 下载软件的离线包但不安装1.2.2、dnf特点YUM 的下一代替代品它完全兼容并增强了 yum 的功能。这意味着上面 yum 相关的命令用法在 dnf 中同样适用。#以下命令按照初始化、增删查改、其它 进行的排序。 dnf makecache # 更新仓库缓存 dnf install nginx # 安装软件包 dnf remove nginx # 删除软件包 dnf search nginx # 搜索软件包 dnf info nginx # 查看软件详细信息 dnf list installed # 查看已安装软件 dnf upgrade # 升级所有软件包 dnf reinstall nginx # 重新安装软件 dnf clean all # 清理缓存 dnf autoremove # 删除无用依赖1.2.3、rpm特点离线安装基于.rpm包需手动解决包之间的依赖关系。#以下命令按照初始化、增删查改、其它 进行的排序。 rpm -ivh nginx.rpm # 安装本地 rpm 包 rpm -e nginx # 删除软件包 rpm -qa # 查看所有已安装软件包 rpm -qa | grep nginx # 查询 nginx 是否安装 rpm -qi nginx # 查看软件包详细信息 rpm -ql nginx # 查看软件包安装了哪些文件 rpm -qf /usr/sbin/nginx # 查询某文件属于哪个软件包 rpm -qc nginx # 查看软件包配置文件 rpm -qd nginx # 查看软件包文档文件 rpm -K nginx.rpm # 校验 rpm 包完整性 rpm -Uvh nginx.rpm # 升级安装 rpm 包 rpm -ivh --force nginx.rpm # 强制安装 rpm 包慎用1.3、通用包1.3.1、brew特点用户级安装不污染系统目录基于 Git 管理软件软件版本非常新且软件源非常丰富。【注同 scoop 特别像】#以下命令按照初始化、增删查改、其它 进行的排序。 brew update # 更新 brew 自身及软件仓库索引 brew install wget # 安装软件包 wget brew uninstall wget # 删除软件包 wget brew search nginx # 搜索软件包 brew info nginx # 查看软件包详细信息 brew list # 查看已安装软件列表 brew list wget # 查看指定软件安装文件 brew upgrade # 升级所有已安装软件 brew reinstall wget # 重新安装软件 brew config # 查看运行时参数配置信息 brew cleanup # 清理旧版本缓存 brew doctor # 检查 brew 环境是否正常注1在 HomeBrew 官方仓库下有这四个仓库需要注意下brew 是工具本体install 是自动安装工具的脚本homebrew-core 是命令行软件仓库homebrew-cask 是图形化软件仓库。2在使用 install 脚本自动安装 brew 的时候脚本会依次将另外三个仓库中的数据拉取到本地由于软件仓库数据量庞大的原因拉取的时候会出现 GitHub 排队现象这其实是属于正常现象不要慌等待即可。3若想加速安装 brew可在安装前先使用chsrc set homebrew修改镜像加速源然后重启当前终端然后执行bash install.sh即可加速安装 brew。1.3.2、snap特点沙盒式的包管理器独立运行环境一次打包可多系统使用但启动慢软件包庞大。【注应用商店大多是图形化程序命令行程序并不丰富。】#以下命令按照初始化、增删查改、其它 进行的排序。 snap install code # 安装软件包例如 VS Code snap remove code # 删除软件包 snap find nginx # 搜索软件包 snap list # 查看已安装 snap 软件 snap info code # 查看软件详细信息 snap changes # 查看最近安装/升级任务记录 snap refresh # 升级所有 snap 软件 snap refresh code # 升级指定软件 snap revert code # 回滚到上一个版本 snap download hello-world # 下载软件离线包 snap ack hello-world*.assert;snap install hello-world*.snap # 注册软件包的签名信息并安装离线包 snap install --dangerous hello-world*.snap # 不注册签名直接安装离线包 snap services # 查看 snap 管理的服务 snap disable code # 禁用软件 snap enable code # 启用软件 snap start code # 启动服务 snap stop code # 停止服务 snap logs code # 查看软件日志注1snap 不像 apt 那样只是一个单一的命令它是一个服务在使用 snap 命令前请确保systemctl status snapd.service已启动。2仓库地址snapd。2、Windows 类Windows 系统下管理软件一般不使用命令行管理但命令行的批量、自动化特性又确实有其优势所在故下面对 Windows 中常见的几个命令行包管理器的用法进行了整理总结。2.1、scoop特点用户目录安装、绿色化管理、干净便携。#以下命令按照初始化、增删查改、其它 进行的排序。 scoop bucket add extras # 添加扩展仓库 scoop install git # 安装软件包 git scoop uninstall git # 删除软件包 git scoop search python # 搜索软件包 scoop list # 查看已安装软件 scoop info git # 查看软件详细信息 scoop bucket list # 查看当前仓库源 scoop update * # 升级所有已安装软件 scoop update # 更新 scoop 自身 scoop cleanup git # 清理在安装软件时下载的软件包缓存注scoop 无需更新本地索引缓存因为它在被 install 或 search 的时候首先就会自动更新自己的本地索引缓存。2.2、winget特点微软官方方案出品官方源稳定桌面软件覆盖广。#以下命令按照初始化、增删查改、其它 进行的排序。 winget source update # 更新软件源 winget source list # 查看软件源 winget install Git.Git # 安装软件 winget uninstall Git.Git # 删除软件 winget search vscode # 搜索软件 winget upgrade # 查看可升级软件 winget list # 查看已安装软件 winget show Git.Git # 查看软件详细信息 winget upgrade --all # 升级全部软件注winget 配合该网站的软件组功能在批量安装软件时效果非常好。2.3、choco特点自动化部署常用脚本化能力强。#以下命令按照初始化、增删查改、其它 进行的排序。 choco install git -y # 安装软件 choco uninstall git -y # 删除软件 choco search nodejs # 搜索软件 choco list --local-only # 查看已安装软件 choco info git # 查看软件详细信息 choco source list # 查看软件源 choco upgrade all -y # 升级全部软件 choco upgrade git -y # 升级指定软件 choco clean --yes # 清理缓存3、Python 类Python 生态里最常见的 4 个包管理工具pip、pipx、uv、Conda。3.1、pip