Winget
、Scoop和
Chocolatey` 是三种在Windows系统上流行的包管理器,它们旨在简化软件的安装、更新和卸载过程,类似于Linux系统中的apt或yum。
这里分别简述如何使用Winget、Scoop和Chocolatey这三个包管理器在Windows上安装软件。
Winget
Winget(Windows Package Manager)是由微软官方推出的一种命令行工具,集成在Windows 10及以上版本中。它允许用户通过简单的命令行指令来搜索、安装、升级、配置和卸载应用程序。Winget支持从Microsoft Store以及认可的第三方仓库中获取应用程序,确保了软件来源的安全性和可靠性。
1. 安装Winget
首先确保你的Windows版本为10 1809及以上或Windows 11。然后,打开PowerShell(以管理员身份运行)并执行以下命令来安装Winget:
1
winget install --id Microsoft.Windows.PackageManager
或者直接从Microsoft Store搜索并安装”App Installer”。
2. 使用Winget安装
搜索软件:
1
winget search <软件名称>
安装软件:
1
winget install <软件包ID>
例如,安装Visual Studio Code:
1
winget install --id Microsoft.VisualStudioCode
自定义安装路径
Windows 11 系统已经自带了 winget;winget 安装的包的位置通过 -l 选项指定,例如:
1 | winget install JanDeDobbeleer.OhMyPosh -l "E:\Program_Files\winget\OhMyPosh" |
参考
windows - How to specify winget installation folder - Super User
3. 查找软件
1. 命令行查询:
打开PowerShell或命令提示符,输入以下命令来搜索软件包:
1
winget search <关键词>
将 <关键词>
替换为你想查找的软件名或相关词汇,这将列出所有与关键词匹配的软件包。
2. Web 界面:
虽然Winget主要通过命令行操作,但你也可以访问Windows Package Manager Gallery的GitHub仓库,浏览可用的软件清单。
Scoop
Scoop 是一个开源的命令行包管理器,由社区维护,专为Windows设计。它允许用户轻松地安装命令行工具、应用程序和实用程序。Scoop的独特之处在于它能够智能地处理依赖关系,并且可以在非管理员账户下运行。Scoop的应用存储库不仅包含传统的Windows应用,还大量集成了各种命令行工具和开发工具,非常适合开发者使用。它还能从GitHub等源头安装软件的特定版本,灵活性较高。
1. 安装Scoop
打开PowerShell(不必以管理员身份运行),然后执行以下命令:
1
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
这将会自动下载并安装Scoop。
2. 使用Scoop安装软件
搜索软件:
1
scoop search <软件名称>
安装软件:
1
scoop install <软件桶>.<软件名>
例如,安装Git:
1
scoop install main.git
自定义安装路径
在 PowerShell 中执行
1 | $env:SCOOP='E:\Program_Files\scoop' |
前两行设置 scoop 本身的安装位置,3~4 行设置 scoop 安装的包的位置,最后一行安装 scoop。
注意:所指定的路径必须存在,若不存在应手动创建,然后以管理员身份运行 PowerShell。例如,执行
1 | scoop install -g neovim-nightly |
显示
1 | Installing 'neovim-nightly' (0.7.0-dev-1356-g75ff156d9) [64bit] |
成功安装在指定位置:
参考
Quick Start | Scoop (scoop-docs.vercel.app)
3. 查找软件
1. 命令行查询:
在PowerShell或命令提示符中,运行:
1
scoop search <关键词>
同样,用你想找的软件关键词替换 <关键词>
,以查看匹配的软件列表。
2. Web 界面:
Scoop有一个非官方的软件仓库浏览器,如Scoop Bucket List,可以帮助你在线浏览可用的软件包。
Chocolatey
Chocolatey 是Windows上最早的包管理器之一,也是最受欢迎的之一。它同样通过命令行操作,能够快速安装Windows软件包、工具和库。Chocolatey支持广泛的软件库,用户可以安装从办公软件到开发工具的各类应用程序。它通过自动化软件安装流程,减少用户的手动干预,同时支持批量安装,非常适合IT专业人士进行系统部署和维护。Chocolatey也允许用户创建自己的软件包,增加了软件分发的便利性。
1. 安装Chocolatey
打开管理员模式的PowerShell或CMD,然后执行以下命令:
1
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
这将安装Chocolatey。
2. 使用Chocolatey安装软件
搜索软件(需要先安装chocolatey-list
工具):
1 | choco search <软件名称> |
安装软件:
1
choco install <软件名称>
例如,安装Google Chrome:
1
choco install googlechrome
自定义安装路径
首先,从很久以前开始,Chocolatey Pro 版本和 Chocolatey Business (C4B) 版本就可以任意指定安装位置,这一功能参考
Chocolatey Software Docs | Ubiquitous Install Directory Option (Pro+)
Chocolatey 自定义安装路径
添加的选项为:
1 | --dir, --directory, --installdir, --installdirectory, --install-dir, --install-directory=VALUE |
对于 Chocolatey Free 版本,参考
Chocolatey Software Docs | Setup / Install
安装前在 PowerShell 中执行
1 | $env:ChocolateyInstall='E:\Program_Files\Chocolatey' |
前两句指定 Chocolatey 本身的安装位置,最后一行安装 Chocolatey。若不指定,则 Chocolatey 的默认安装位置是 %PROGRAMDATA%\Chocolate(即 %SystemDrive%\ProgramData\Chocolatey,自 0.9.8.24 版本起)。不建议指定为 C:\Chocolatey,这是旧版的默认安装位置。在安装前应手动创建安装路径文件夹(若不存在)。安装完成后若有相关提示,应执行
1 | notepad $PROFILE |
使用记事本打开 C:\Users<username>\Yihua\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 (若不存在则需手动创建文件夹和文件),添加
1 | $ChocolateyProfile = "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1" |
然后执行
1 | . $PROFILE |
刷新 PowerShell 配置即可。在安装了 Chocolatey 后可以使用
1 | refreshenv |
命令刷新当前 session/会话 的环境变量。此后在设置->系统->关于->高级系统设置->环境变量中可以看到 ChocolateyInstall 环境变量已经被添加为系统变量。
Chocolatey 安装的包的位置在 $ChocolateyInstall\lib,也就是说之前手动设置了 ChocolateyInstall 环境变量后 Chocolatey 安装的包的位置同样会改变,例如执行
1 | choco install chocolateygui |
后可以看到 ChocolateyGUI 被安装到 E:\Program_Files\Chocolatey\lib 下(chocolateygui.exe 和 chocolateyguicli.exe 在 E:\Program_Files\Chocolatey\bin 下)。然而,参考
Chocolatey Software Docs | Getting Started
Chocolatey Software Docs | Getting Started
以及
Chocolatey Software Docs | FAQs
有些包是基于 Windows Installer 的 MSI 文件的(例如 ruby 和 neovim),会被安装到 Program Files 下,可以通过手动指定 MSI 安装选项 -ia “INSTALLDIR=””D:\Program Files”””(CMD)来指定安装位置,参考 Chocolatey Software Docs | Install 给出的安装选项
1 | --ia, --installargs, --install-args, --installarguments, --install-arguments=VALUE |
NSIS 安装包也可以,例如安装 Notepad++:
1 | choco install notepadplusplus.install -ia "'/D=E:\SomeDirectory\somebody\npp'" |
还有的则会被安装到 $env:ChocolateyBinRoot 下,这一环境变量若为手动指定则默认为 C:\tools。例如,Neovim 就将被安装到 C:\tools\neovim。执行
1 | $env:ChocolateyBinRoot='E:\Program_Files\Chocolatey-apps' |
前四行添加环境变量(根据文档,$ChocolateyToolsRoot 环境变量将取代 $ChocolateyBinRoot 环境变量),最后一行安装包。注意:所指定的路径同样必须已存在,若尚未存在需提前手动创建。但是将上述两个环境变量都设置好后,有些包仍然是安装在 C:\tools 下的,偶然间发现环境变量中的用户变量有一个变量名为 ChocolateyToolsLocation,其值为 C:\tools,将其值改为自己想指定的目录即可。
3. 查找软件
1. 命令行查询:
打开管理员权限的PowerShell或命令提示符,执行:
1
choco search <关键词>
通过关键词搜索软件包。
2. Web 界面:
访问Chocolatey Gallery,这是一个官方网站,列出了所有可通过Chocolatey安装的软件包,你可以直接在网页上浏览和搜索。
参考文章