吾心自有光明月,千古团圆永无缺。
导航
- 0 前言
- 1 Linux 类
- 1.1 DEB 包:apt、dpkg
- 1.2 RPM 包:yum、dnf、rpm
- 1.3 通用包:brew、snap
- 2 Windows 类:scoop、winget、choco
- 3 Python 类:pip、pipx、conda、uv
- 4 Node.js 类:npm、pnpm、npx、yarn
- 5 杂七杂八
0、前言
不同的操作系统、编程语言几乎都有自己的包管理器,而每种包管理器的命令用法虽都大同小异,但还是有些区别的。为了避免在面临各种命令时出现一个头两个大的情况,特为此专门整理一份简要手册,以便随用随查。
1、Linux 类
Linux 系统下的包管理器很多,但综合来看其实主要分三种:
- DEB 包:主要在 Debain、Ubuntu、以及它们的衍生系统中使用。
- RPM 包:主要在 CentOS、RedHat、以及它们的衍生系统中使用。
- 通用包:在任何 Linux 系统中均适用,并没有具体的专配系统。
注:(1)DEB 包和 RPM 包其实都是通过将编译后的二进制程序及其它附属文件以一种特定的流程打包之后的产物,二者仅仅只是在流程处理、软件管理方式上的不同,拆开来看二者并没有什么区别;(2)通用包就是指编译后的二进制程序无需经过像 DEB/RPM 那样的打包操作,直接就拿来使用的包。
1.1、DEB 包
1.1.1、apt
特点:在线安装,基于 .deb 包,可自动解决包之间的依赖关系。- #以下命令按照:初始化、增删查改、其它 进行的排序。apt update # 更新软件仓库索引(同步最新软件列表)apt install nginx # 安装软件包 nginxapt install nginx=1.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 # 安装软件包 nginxyum groups install "GroupTool" # 安装软件组中的所有软件。yum remove nginx # 删除软件包 nginxyum 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 # 安装软件包 wgetbrew uninstall wget # 删除软件包 wgetbrew 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 # 查看软件日志
复制代码注:(1)snap 不像 apt 那样只是一个单一的命令,它是一个服务,在使用 snap 命令前,请确保 systemctl status snapd.service 已启动。(2)仓库地址:snapd。
2、Windows 类
Windows 系统下管理软件一般不使用命令行管理,但命令行的批量、自动化特性又确实有其优势所在,故下面对 Windows 中常见的几个命令行包管理器的用法进行了整理总结。
2.1、scoop
特点:用户目录安装、绿色化管理、干净便携。- #以下命令按照:初始化、增删查改、其它 进行的排序。scoop bucket add extras # 添加扩展仓库scoop install git # 安装软件包 gitscoop uninstall git # 删除软件包 gitscoop 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
特点:官方默认的 python 包管理工具。- #以下命令按照:初始化、增删查改、其它 进行的排序。pip install pkg_name # 安装 Python 包pip install pkg_name.whl # 安装离线包,同时将依赖包也一并安装pip uninstall pkg_name # 卸载 Python 包pip list # 查看已安装包pip show pkg_name # 查看包详细信息pip search pkg_name # 搜索包(大部分环境已不支持了)pip install --upgrade requests # 升级指定包pip freeze > requirements.txt # 将当前环境下所有已安装的包的列表转换成一个 requirements.txt 依赖文件pip install -r requirements.txt # 按依赖文件批量安装包pip cache purge # 清理缓存pip download pkg_name # 下载离线包,同时将依赖包也一并下载
复制代码 3.2、pipx
特点:独立安装型工具管理器。专门用来安装那些通过 python 开发的工具,一个工具对应一个专属的 python 环境,完美的解决了不同工具之间依赖冲突的问题。- #以下命令按照:初始化、增删查改、其它 进行的排序。pipx install black # 安装独立命令行工具pipx uninstall black # 删除工具pipx list # 查看 pipx 安装的软件pipx environment # 查看 pipx 的环境变量pipx upgrade black # 升级指定工具pipx upgrade-all # 升级全部工具pipx pin httpie # 锁住包当前的版本,防止其被意外更新。pipx unpin httpie # 取消包的锁状态pipx run httpie # 临时运行工具(不安装)
复制代码 3.3、conda
特点:集 虚拟环境管理 + 依赖包管理 于一体的 python 包管理器。- #以下命令按照:初始化、增删查改、其它 进行的排序。conda create -n myenv python=3.12 # 创建新环境conda activate myenv # 激活环境conda deactivate # 退出当前环境conda install numpy # 安装包conda remove numpy # 删除包conda list # 查看环境中已安装包conda update conda # 更新 conda 自身conda env list # 查看所有环境conda remove -n myenv --all # 删除整个环境
复制代码 3.4、uv
特点:项目级依赖管理工具。集 创建虚拟环境、安装依赖、运行项目 于一体的 python 项目管理工具。【注:项目依赖锁文件名称 uv.lock】- #以下命令按照:初始化、增删查改、其它 进行的排序。uv add pkg_name # 安装依赖(项目模式)uv pip install pkg_name # 兼容 pip 安装方式uv remove pkg_name # 删除依赖uv pip list # 查看已安装包uv tree # 树形查看已安装包之间的依赖关系uv sync # 同步依赖环境uv run python main.py # 在项目环境中运行程序uv init # 初始化新项目
复制代码 4、Node.js 类
Node.js 生态里最常见的 4 个工具:npm、npx、pnpm、Yarn
4.1、npm
特点:官方默认的 Node.js 包管理工具。【注:项目依赖锁文件名称 package-lock.json】- #以下命令按照:初始化、增删查改、其它 进行的排序。npm init # 初始化 package.jsonnpm install # 按 package.json 安装全部依赖npm install lodash --save-dev # 安装开发依赖npm install express # 安装依赖到当前项目npm install -g typescript # 全局安装软件包npm uninstall express # 删除依赖npm list # 查看当前项目依赖npm list -g --depth=0 # 查看全局安装包npm info express # 查看包详细信息npm search express # 搜索包npm update # 更新依赖npm audit # 检查安全漏洞npm cache clean --force # 清理缓存
复制代码 4.2、pnpm
特点:npm 的优化版,在安装速度、磁盘优化(硬链接共享缓存模块)、依赖严格性方面做了提升。【注:项目依赖锁文件名称 pnpm-lock.yaml】- #以下命令按照:初始化、增删查改、其它 进行的排序。pnpm add express # 安装依赖pnpm add -D typescript # 安装开发依赖pnpm install # 安装全部依赖pnpm remove express # 删除依赖pnpm list # 查看依赖pnpm update # 升级依赖pnpm store prune # 清理全局缓存pnpm init # 初始化项目
复制代码 4.3、npx
特点:类似 pipx 那样,临时执行一个项目工具,适合一次性工具。在项目目录中会下载所有相关的依赖项,自动优先使用项目依赖,不会全局安装项目依赖,避免了全局依赖受到污染。
其实使用 npm 也可以运行项目工具,只不过需要先找到项目目录,然后在其目录下运行项目工具才行。而这一番操作下来,体验上完全不如使用 npx 方便。- npx create-react-app myapp # 临时执行脚手架工具npx vite # 临时运行 vitenpx eslint src # 临时执行代码检查npx cowsay hello # 临时运行工具(不全局安装)
复制代码 4.4、yarn
特点:早期 npm 自身的项目管理能力较弱,故主要使用 yarn 作为项目管理工具,但目前 npm 已趋于完善,无需 yarn 自己也可以完成项目管理。【注:项目依赖锁文件名称 yarn.lock】- #以下命令按照:初始化、增删查改、其它 进行的排序。yarn add express # 安装依赖yarn add -D typescript # 安装开发依赖yarn install # 安装全部依赖yarn remove express # 删除依赖yarn list # 查看依赖yarn upgrade # 升级依赖yarn init # 初始化项目yarn cache clean # 清理缓存
复制代码 5、杂七杂八
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|
|
|
|
|
相关推荐
|
|
|