windows 下包管理器
- chocolatey
- winget
- Scoop
chocolatey
chocolatey 并非微软官方的包管理器,但却是最受欢迎的包管理器
chocolatey官网
官方安装文档
官方配置文档
CMD 安装
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
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://community.chocolatey.org/install.ps1'))
升级
choco upgrade chocolatey
卸载
文件夹
Chocolatey 的大部分内容包含在C:\ProgramData\chocolatey或任何$env:ChocolateyInstall计算结果中。您可以简单地删除该文件夹。
- 笔记
您可以先备份子文件夹lib,bin以防万一您在删除 Chocolatey 时发现不良结果。请记住,并非每个 Chocolatey 包都是安装程序包,这些子文件夹中可能包含一些未安装的应用程序,这些应用程序可能会丢失。拥有备份将使您能够测试该方面。
环境变量
有一些环境变量需要调整或删除。
- ChocolateyInstall
- ChocolateyToolsLocation
- ChocolateyLastPathUpdate
- PATH (will need updated to remove)
使用
使用巧克力
现在你的机器上有 Chocolatey(需要安装?),你可以运行几个命令。
查看命令参考。我们将使用安装命令。
让我们安装Notepad++。
以管理员身份打开命令行。
键入choco install notepadplusplus并按 Enter。
choco install notepadplusplus
就是这样。非常简单但功能强大的小概念!
覆盖默认安装目录或其他高级安装概念
是的,我们通过使用安装参数来支持它 - 请参阅安装参数
如果您想将本机参数传递给安装程序,例如安装目录,您需要知道传递给该特定安装程序的静默参数,然后您可以在命令行或 packages.config 中指定它。
如果它是 MSI,那么通常您可以通过-ia “INSTALLDIR=”“D:\Program Files”“”(对于 cmd.exe,对于 PowerShell 则不同)。查看如何传递选项/开关以了解有关传递引用值的细节。
例如,Notepad++ 使用NSIS(NullSoft Scriptable Install System)安装程序。如果我们查看静默选项,我们会发现/D是我们影响安装目录的方式。所以我们会通过choco install notepadplusplus.install -ia
“‘/D=E:\SomeDirectory\somebody\npp’”- 请注意,我们正在查看虚拟的特定包(尽管您也可以使用 notepadplusplus 执行相同的操作)。
有没有更好的办法?绝对,看到无处不在的安装目录开关!
winget
微软官方文档
winget-GitHub
winget 是微软官方的包管理器。虽没有chocolatey受欢迎,但还是可以的
安装
应用商店安装
安装包安装
前往winget-GitHub 下载你需要安装版本的安装包 assest
下,文件后戳为 msixbundle
的安装包
下载完成后双击安装
使用
重新打开一个cmd 窗口
install 安装给定的程序包
show 显示包的相关信息
source 管理程序包的来源
search 查找并显示程序包的基本信息
list 显示已安装的程序包
upgrade 显示并执行可用升级
uninstall 卸载给定的程序包
hash 哈希安装程序的帮助程序
validate 验证清单文件
settings 打开设置或设置管理员设置
features 显示实验性功能的状态
export 导出已安装程序包的列表
import 安装文件中的所有程序包
C:\Users\Hasee>winget --help
Windows 程序包管理器(预览) v1.5.441-preview
版权所有 (C) Microsoft Corporation。保留所有权利。
WinGet 命令行实用工具可从命令行安装应用程序和其他程序包。
使用情况: winget [<命令>] [<选项>]
下列命令有效:
install 安装给定的程序包
show 显示包的相关信息
source 管理程序包的来源
search 查找并显示程序包的基本信息
list 显示已安装的程序包
upgrade 显示并执行可用升级
uninstall 卸载给定的程序包
hash 哈希安装程序的帮助程序
validate 验证清单文件
settings 打开设置或设置管理员设置
features 显示实验性功能的状态
export 导出已安装程序包的列表
import 安装文件中的所有程序包
如需特定命令的更多详细信息,请向其传递帮助参数。 [-?]
下列选项可用:
-v,--version 显示工具的版本
--info 显示工具的常规信息
-?,--help 显示选定命令的帮助信息
--wait 提示用户在退出前按任意键
--logs,--open-logs 打开默认日志位置
--verbose,--verbose-logs 启用 WinGet 的详细日志记录
--disable-interactivity 禁用交互式提示
可在此找到更多帮助: "https://aka.ms/winget-command-help"
Scoop
Scoop 是一款Windows下的命令行软件管理工具
简单来说,他比winget更强大(只是不够本土化,winget的软件本土化做的要更好一些,但对我来说在环境管理方面,scoop也有不可替代性)
安装:
打开 PowerShell 终端 (version 5.1 or later) 然后 运行:
项目地址github
安装文档github
非管理员安装
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser #可选:第一次需要执行远程脚本
irm get.scoop.sh | iex
管理员安装
irm get.scoop.sh -outfile 'install.ps1'
.\install.ps1 -RunAsAdmin -ScoopDir 'D:\env\Scoop' -ScoopGlobalDir 'D:\env\Scoop' -NoProxy
指定环境变量
两者的值可以设为一致
SCOOP
软件用户安装目录- 命令里 ScoopDir
SCOOP_GLOBAL
软件的全局安装目录- 命令里 ScoopGlobalDir
使用
C:\Users\Hasee>scoop
Usage: scoop <command> [<args>]
Available commands are listed below.
Type 'scoop help <command>' to get more help for a specific command.
Command Summary
------- -------
alias Manage scoop aliases
bucket Manage Scoop buckets
cache Show or clear the download cache
cat Show content of specified manifest.
checkup Check for potential problems
cleanup Cleanup apps by removing old versions
config Get or set configuration values
create Create a custom app manifest
depends List dependencies for an app, in the order they'll be installed
download Download apps in the cache folder and verify hashes
export Exports installed apps, buckets (and optionally configs) in JSON format
help Show help for a command
hold Hold an app to disable updates
home Opens the app homepage
import Imports apps, buckets and configs from a Scoopfile in JSON format
info Display information about an app
install Install apps
list List installed apps
prefix Returns the path to the specified app
reset Reset an app to resolve conflicts
search Search available apps
shim Manipulate Scoop shims
status Show status and check for new app versions
unhold Unhold an app to enable updates
uninstall Uninstall an app
update Update apps, or Scoop itself
virustotal Look for app's hash or url on virustotal.com
which Locate a shim/executable (similar to 'which' on Linux)
scoop install nodejs
Installing 'nodejs' (18.4.0) [64bit]
node-v18.4.0-win-x64.7z (17.3 MB) [===================================] 100%
Checking hash of node-v18.4.0-win-x64.7z ... ok.
Extracting node-v18.4.0-win-x64.7z ... done.
Linking ~\scoop\apps\nodejs\current => ~\scoop\apps\nodejs\18.4.0
Persisting bin
Persisting cache
Running post_install script...
'nodejs' (18.4.0) was installed successfully!
安装缓慢
可以指定环境变量 HTTP_PROXY
设置代理地址来加速
卸载
直接删除 SCOOP
SCOOP_GLOBAL
环境变量所指的文件夹 可以完全删除