222 lines
9.1 KiB
Markdown
222 lines
9.1 KiB
Markdown
|
---
|
|||
|
icon: edit
|
|||
|
date: 2023-04-05
|
|||
|
category:
|
|||
|
- 系统配置
|
|||
|
- windows
|
|||
|
tag:
|
|||
|
- chocolatey
|
|||
|
- pkgManger
|
|||
|
- winget
|
|||
|
headerDepth: 5
|
|||
|
---
|
|||
|
|
|||
|
|
|||
|
# windows 下包管理器
|
|||
|
# windows 下包管理器
|
|||
|
- chocolatey
|
|||
|
- winget
|
|||
|
- Scoop
|
|||
|
## chocolatey
|
|||
|
chocolatey 并非微软官方的包管理器,但却是最受欢迎的包管理器
|
|||
|
[chocolatey官网](https://chocolatey.org/)
|
|||
|
[官方安装文档](https://docs.chocolatey.org/en-us/choco/setup)
|
|||
|
[官方配置文档](https://docs.chocolatey.org/en-us/configuration)
|
|||
|
### CMD 安装
|
|||
|
```shell
|
|||
|
@"%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安装
|
|||
|
```shell
|
|||
|
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
|
|||
|
[微软官方文档](https://learn.microsoft.com/zh-cn/windows/package-manager/)
|
|||
|
[winget-GitHub](https://github.com/microsoft/winget-cli/releases)
|
|||
|
winget 是微软官方的包管理器。虽没有chocolatey受欢迎,但还是可以的
|
|||
|
|
|||
|
### 安装
|
|||
|
#### 应用商店安装
|
|||
|

|
|||
|
#### 安装包安装
|
|||
|
前往[winget-GitHub](https://github.com/microsoft/winget-cli/releases) 下载你需要安装版本的安装包 ```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](https://github.com/ScoopInstaller/Scoop)
|
|||
|
[安装文档github](https://github.com/ScoopInstaller/Install)
|
|||
|
#### 非管理员安装
|
|||
|
```shell
|
|||
|
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``` 环境变量所指的文件夹 可以完全删除
|