「一行代码」打通软件的安装的所有需求:Windows 系统缺失的包管理器Chocolatey
❝文章首发于我的少数派栏目[1],原标题为《Windows 系统缺失的包管理器:Chocolatey、WinGet 和 Scoop》[2],并截取了原文的第一部分作为本文的推送内容(稍有修改)。
❞
写在前面
如果你也身处 Windows 系统的生态环境之中,或许你身边也有小伙伴正在遭受这样的烦恼:他们永远搞不懂自己辛辛苦苦在搜索引擎找到并下载安装的软件到底在哪里?他们也不清楚为什么电脑中总会出现形形色色、不明不白的垃圾软件和弹窗?即便电脑已经越来越臃肿,他们也不敢碰除个人文件外的任何东西,生怕系统崩坏、数据丢失;他们没有文件管理习惯,快捷方式是他们认为软件是否安装的唯一标志,甚至认为删除即卸载;他们深知自己电脑的内部文件体系已是一团乱糟糟,所以桌面总是满满当当、密不透风。
搜索、下载、安装,这是几乎任何一个软件在「食用」之前要做的准备工作。每一步都有坑:百度搜索里的「海底捞」,点击下载那一刻的战战兢兢,等待安装时的擦亮双眼、诚惶诚恐。如果算上在使用过程中的升级和使用完之后的卸载,那麻烦就更多了。
上述或许并不夸张,正是你我之前曾经有过或正在经历的困惑。
如果这样,那么本文正是为你量身打造、包管理器也非你莫属。
「包管理器」一行命令,帮你打通软件从搜索、下载、安装到配置、升级、卸载的全流程。
什么是包管理器
❝包管理器又称「软件包管理系统」,它是在电脑中「自动安装、配置、卸载和升级」软件包的工具组合,在各种系统软件和应用软件的安装管理中均有广泛应用。——引自百度百科[3]
❞
如果你用过Python[4] ,那么对 pip 一定不陌生,Python 对所有第三方库的查找、下载、安装、卸载等都可以通过 pip 来完成的。需要哪个库,pip install
帮你安装;不需要了,pip uninstall
一键就能卸载。简单省事、方便快捷。不少编程语言均有各自对应的包管理器,比如 Nodejs 的 npm 等。
其实在操作系统上,包管理器应用就更广泛了,尤其是 Linux 系统和 macOS 系统已经相当成熟了。比如 Ubuntu 的 apt、CentOS 的 yum、 macOS 系统下的 Homebrew 等。Windows 平台的包管理器虽然仍受诟病,但目前来看已经能够完成绝大多数的工作了。
Windows 系统上常见的包管理器主要有 Chocolatey、WinGet 和 Scoop。
为什么要用包管理器
降低安装维护软件的成本
避免安装大量软件造成的路径污染
不必查找和安装软件的其他依赖项
避免捆绑和垃圾软件
彻底地卸载
仅第一条理由就足以让我拥抱它~~🥂🥂
ChocolateyCLI
安装前提
❝在安装之前,必须要保证自己电脑满足以下标准:
❞
Windows 7+ / Windows Server 2003+ PowerShell v2+ .NET Framework 4+
如何查看 PowerShell 版本号?以下两种方式都可以实现。
在 PowerShell 里运行 $PSVersionTable.PSVersion
,Major 就是版本号。
在 PowerShell 里运行 host
,Version 显示的就是详细的版本号信息(「更简单」)。
下载、安装及检验
进入官网下载页面[5](以个人版
为例),管理员身份打开PowerShell
,运行:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
安装完成后,输入choco -?
,如果显示帮助文档,则说明安装成功。
基本使用
Chocolatey 默认安装在C:\ProgramData\chocolatey
(或者通过在 PowerShell 来输入:$env:ChocolateyInstall
查看)。使用 Chocolatey 安装软件包的默认本地位置为C:\ProgramData\chocolatey\bin
。
以下七条命令是基本涵盖了 Chocolatey 绝大多数功能,其他进阶玩法,可以详读官方文档[6],或者choco <命令> -?
获取详细帮助信息。
帮助:
choco -?
搜索:
choco search <包名>
安装:
choco install <包名>
卸载:
choco uninstall <包名>
升级:
choco upgrade <包名>
显示详细信息:
choco info <包名>
有可用更新:
choco oudated
下面👇🏻的GIF以Pandoc
为例演示了Chocolatey 从软件的搜索、显示详情信息、下载安装到卸载的全流程。看完之后你一定更加会惊叹包管理器的简便和易用了。
软件列表备份
想想看,系统重装或迁移之后的软件安装、配置工作,有多麻烦🐴
choco list -l > chocolatey.txt
可以助你把 Chocolatey 安装的软件导出(导出符 >
后面指的是导出路径,可自行更改,这里表示导出到当前目录的 chocolatey.txt
文件中)。
拿到导出的软件清单,你就可以在新机上 choco install -y 软件1 软件2
。把电脑放一边运行着,该干啥干啥,两不耽误,方便快捷,好不惬意!😎😎
ChocolateyGUI:「APP Store」的极佳选择
当然并非所有用户都适合命令行界面(CLI:Command-Line Interface),如果你之前从未接触过命令行或者实在用不惯,Chocolatey 还提供了 图形用户界面[7](GUI:Graphical User Interface)版本。
通过choco install chocolateygui
一键安装。安装完成之后,直接chocolateygui
即可进入软件界面。详细说明可参照ChocolateyGUI官网[8]。
「用户PC」页面显示了本机使用 Chocolatey安装的软件列表
「chocolatey」页面显示了整个 Chocolatey 拥有的软件合集
ChocolateyGUI 的感觉莫名地熟悉。咦,这不就是个 APP Store 吗?不过这个 APP Store 可良心多了,没有「贴心」推荐、没有垃圾捆绑,而且软件数量惊人(截止2021年4月初,ChocolateyGUI 提供的软件包多达有 8000+ 之众!当然代价就是有点卡 ,搜索比 CLI 版本慢一些🙈)
总体来说,ChocolateyGUI 完成度很高,软件的搜索、下载、升级、卸载等主要功能一步也没缺,十分适合不习惯命令行窗口的用户,甚至完全可以作为 APP Store 来使用。
结语
无需访问搜索引擎苦苦寻觅,无需次次配置系统环境变量,无需点击图形界面、一不小心安装个「全家桶」,一行命令、几个单词,就能满足大多数人对日常软件的所有需求。如果用不惯命令行界面,还有GUI界面可选。
除了 Chocolatey,Windows 系统上的包管理器还有WinGet和Scoop,我也将持续推送。
猜你喜欢
Reference
我的少数派栏目: https://sspai.com/u/ekayogf2/updates
[2]Windows 系统缺失的包管理器:Chocolatey、WinGet 和 Scoop》: https://sspai.com/post/65933
[3]百度百科: https://baike.baidu.com/item/包管理器/22785432?fr=aladdin
[4]Python: https://baike.baidu.com/item/Python
[5]官网下载页面: https://chocolatey.org/install
[6]官方文档: https://docs.chocolatey.org/en-us/choco/commands/
[7]图形用户界面: https://docs.chocolatey.org/en-us/chocolatey-gui/
[8]ChocolateyGUI官网: https://docs.chocolatey.org/en-us/chocolatey-gui/