Windows 也有包管理工具?
寻找软件官方发布地址,或通过某软件管家
下载我们设定版本的软件
运行软件安装器来安装下载得到的软件
并进行环境上的准备、安装后的善后工作等(配置 Path, 删除安装包等)
找到当前源(软件仓库)中的 Manifest 清单文件
按照 Manifest 规定完成准备工作
按照 Manifest 规定执行安装步骤
按照 Manifest 设定完成善后工作
winget search \<appname>
winget install \<appname>
来安装该工具。 WinGet 工具会启动安装程序,将应用程序安装在你的电脑上。winget --help
命令
选项
彩(虹)蛋
EXE MSIX MSI
编写 winget 脚本
Echo Install Powertoys and Terminal
REM Powertoys
winget install Microsoft.Powertoys
if %ERRORLEVEL% EQU 0 Echo Powertoys installed successfully.
REM Terminal
winget install Microsoft.WindowsTerminal
if %ERRORLEVEL% EQU 0 Echo Terminal installed successfully. %ERRORLEVEL%
Name: 7Zip
AppMoniker: 7zip
Version: 19.0.0
Publisher: 7zip
Author: 7zip
License: Copyright (C) 1999-2020 Igor Pavlov. - GNU LGPL
LicenseUrl: https://7-zip.org/license.txt
MinOSVersion: 10.0.0.0
Homepage: https://www.7-zip.org/
Description: Free and open source file archiver with a high compression ratio.
Tags: "7zip,compression,file compression,utility,tool,zip"
InstallerType: msi
Installers:
- Arch: x64
Url: https://www.7-zip.org/a/7z1900-x64.msi
Sha256: A7803233EEDB6A4B59B3024CCF9292A6FFFB94507DC998AA67C5B745D197A5DC
Switches:
Silent: /quiet /norestart
SilentWithProgress: /passive /norestart
3. 实验功能体验
$profile
New-Item –Path $Profile –Type File –Force
Register-ArgumentCompleter -Native -CommandName winget -ScriptBlock {
param($wordToComplete, $commandAst, $cursorPosition)
[Console]::InputEncoding = [Console]::OutputEncoding = $OutputEncoding = [System.Text.Utf8Encoding]::new()
$Local:word = $wordToComplete.Replace('"', '""')
$Local:ast = $commandAst.ToString().Replace('"', '""')
winget complete --word="$Local:word" --commandline "$Local:ast" --position $cursorPosition | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
}
}
winget ⇥ | winget install | install is the first command below the root |
winget sh⇥ | winget show | show is the first command that starts with sh |
winget source l⇥ | winget source list | list is the first sub-command of source that starts with l |
winget -⇥ | winget --version | --version is the first argument defined for the root |
winget install power⇥ | winget install "Power Toys" | "Power Toys" is the first package whose Id, Name, or Moniker starts with power |
winget install "Power Toys" --version ⇥ | winget install "Power Toys" --version 0.19.2 | 0.19.2 is the highest version of Power Toys at the time of writing |
上文提到,之前在 Windows 平台上,已经有了两个不错的包管理工具:Chocolatey 以及 Scoop,Chocolatey 的自我定位是 Windows 系统的软件管理自动化。它能够在无需人工干预的情况下自动安装超过 20 种 Windows 软件包类型,而且开箱即用,支持配置超过 7000 款主流软件,包括 Google Chrome 和 VLC 多媒体播放器等桌面热门应用程序。
Scoop 同样可以通过单命令安装 Windows 软件,不过它的适用目标相对来说更狭窄,也更有针对性。这款软件包管理工具更多的时候是帮助开发者安装系统工具时使用,尤其是那些依赖于 Linux 但在 Windows 系统上不存在的软件程序。
两款软件包安装程序都有各自的优缺点,所以需要根据自己的需求进行选择。如果想快速简单地安装熟悉的 Windows 程序,那么 Chocolatey 可能适合你。
其广泛的社区驱动的软件包存储库意味着无需额外配置的情况下,你就可以找到几乎所有流行的 Windows 程序。
这两个成熟的工具都比 WinGet 要完善,在现阶段,如果你想在 Windows 上体验包管理工具,老逛建议还是 scoop+chocolately 吧。
因为今天这篇文章是介绍 WinGet,推荐两篇文章介绍这两个工具,我就不多赘述了。
Scoop: https://sspai.com/post/52496
Chocolately: https://sspai.com/post/55309
2. 手机抓包!
3. 干掉马赛克!