Windows Package Manager

chocolatey & winget & scoop

Chocolatey

> Get-ExecutionPolicy
Restricted
> Set-ExecutionPolicy AllSigned
OR
> Set-ExecutionPolicy Bypass -Scope Process
> $PSVersionTable.PSVersion
> host
> 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 --version
> $env:ChocolateyInstall
> choco upgrade chocolatey
> choco feature -?
> choco feature list
> choco feature enable -n allowGlobalConfirmation  # 避免每次回答 Y
> choco feature enable -name=exitOnRebootDetected  # 不执行重启检测

# 软件原生安装目录
C:\Program Files
C:\Program Files (x86)
C:\Users\<username>\AppData

# Chocolatey 安装目录
C:\ProgramData\chocolatey

# 通过环境变量设置软件安装目录
[environment]::setEnvironmentVariable('ChocolateyInstall','C:\ProgramData\chocolatey','Machine')
[environment]::setEnvironmentVariable('ChocolateyToolsLocation','D:\Choco','Machine')

# 非管理员安装默认路径是 C:\ProgramData\chocoportable
$env:path += ";C:\ProgramData\chocoportable"
$InstallDir='C:\ProgramData\chocoportable'
$env:ChocolateyInstall="$InstallDir"

> choco outdated --proxy=localhost:1080
> choco -?
> choco search <package name>
> choco info <package name>

> choco install <package name>
> choco uninstall <package name>
> refreshenv

> choco upgrade <package name>
> choco upgrade all
> choco list -l > chocolatey.txt
> choco install -y software1 software2 ...
> choco source add -n=MyCustomSource -s=https://example.com/packages/
> choco source remove -n=MyCustomSource

Chocolatey GUI

> choco install chocolateygui
> chocolateygui

WinGet

> winget features
> winget settiings
settings.json
"experimentalFeatures": {
   "uninstall": true,
   "upgrade": true,
   "list": true,
   "experimentalMSStore": true
},
"visual": {
  "progressBar": "accent"	#accent,retro,rainbow
},
> winget -?
> winget show <package name>
> winget search <package name>
> winget install <package name>

Scoop

> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Modify Installation Location

> $env:SCOOP='D:\Applications\Scoop'
> $env:SCOOP_GLOBAL='F:\GlobalScoopApps'
> [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
> [Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')

Setting PowerShell Execution Policies and Downloading Installation Scripts

> irm get.scoop.sh -outfile 'install.ps1'
> .\install.ps1 -RunAsAdmin [-OtherParameters ...]
> iex "& {$(irm get.scoop.sh)} -RunAsAdmin"
>  scoop checkup
> scoop help
> scoop search git
> scoop install git
> scoop update git
> scoop status git
> scoop uninstall git
> scoop info git
> scoop home git
> scoop hold/unhold git
> scoop bucket known
> scoop uninstall scoop

Setting up a proxy

> scoop config proxy 127.0.0.1:7890

Multi-threaded downloads

> scoop config aria2-enabled true
> scoop config aria2-options --check-certificate=false

Chocolatey

Chocolatey-gui

Scoop

Winget

Winget-cli

Winget-Docs

comments powered by Disqus