Win环境下包管理工具

news/2025/10/1 14:59:42/文章来源:https://www.cnblogs.com/jingzh/p/19122446

目录
  • 1 Win下包管理工具
    • 1.1 简介
    • 1.2 winget
      • 1.2.1 简介
      • 1.2.2 操作使用
      • 1.2.3 安装指定盘
      • 1.2.4 软件源来源&加速
        • 1.2.4.1 软件源
        • 1.2.4.2 加速
    • 1.3 Scoop
      • 1.3.1 简介
      • 1.3.2 操作&安装
      • 1.3.3 常用命令
      • 1.3.4 软件源来源&加速
        • 1.3.4.1 软件源
        • 1.3.4.2 加速

1 Win下包管理工具

1.1 简介

Scoopwinget 两个 Windows 下常见的包管理器

  • Scoop:类 Unix 风格、以用户目录安装、无需管理员权限、适合把程序装在自定义位置,版本要求:Windows 7 或更高版本;PowerShell ≥ 5.0
  • winget:微软官方的 Windows 包管理器,集成 Microsoft 存储库和社区清单,适合统一安装/升级系统级软件(有时需要管理员权限),但不保证能把所有程序装到自定义盘(安装路径由各包的安装器决定)
    版本要求:Windows 10 build 17763 或更高版本 / Windows 11

1.2 winget

1.2.1 简介

作为微软官方工具,winget的目标是成为Windows上统一的软件包管理标准。它的源包括一个庞大的社区仓库和Microsoft Store,能管理几乎所有类型的Windows应用。

winget 特点:

  • 官方支持(Windows 10/11 能获取),集成 Microsoft Store / community repository
  • 能够方便地 search / install / upgrade 系统软件
  • --scope user / --scope machine 等选项(决定是否为当前用户或全局安装),但大多数包的最终安装目录受安装程序本身限制,不一定能自由指定盘符。

1.2.2 操作使用

如何使用(PowerShell / CMD)

# 搜索
winget search <关键字># 安装(举例)
winget install --id <包ID> -e# 查看已装
winget list# 升级单个/全部
winget upgrade <包ID>
winget upgrade --all# 卸载
winget uninstall <包ID>

示例:先 winget search bruno 看有没有 Bruno 的包 ID,再 winget install --id <id>。如果包支持 --scope user,可以尝试 --scope user 来做用户安装(有时用户安装位置在用户目录)。

1.2.3 安装指定盘

是否能指定安装盘?

通常不能通用指定。是否能指定安装路径取决于该软件的安装器(MSI/EXE)的参数,winget 本身并不对所有包统一提供 --location。可以查看 winget show <id> 看包支持哪些参数,或使用 --override 把自定义安装参数传给原安装器(高级用法,并非所有包都支持)。

虽然 可以使用 winget install <软件包> --location <路径> 来尝试指定安装目录。
也可以在配置文件中设置默认的安装根路径。然而,最关键的一点是:这些设置对于许多传统安装器(如.msi或.exe)来说只是建议值。软件包自身的安装器(Installer)拥有最终决定权,可能会忽略这些路径设置。因此,无法保证把所有程序都安装到自定义位置

下面这个表格汇总了 winget 指定安装路径的主要方法及其局限性:

方法 命令/配置 主要局限性
--location 参数 winget install <软件包> --location "D:\Your\Path" 依赖安装程序支持:并非所有安装器(如MSI、Inno Setup)都会接收并遵从该参数
配置文件预设 settings.json 中设置 defaultInstallRoot 通过 winget settings 命令打开配置文件,在其中设置一个默认的安装根目录,同样依赖安装程序支持:本质上和 --location 参数一样,只是一个"建议",可能被忽略。
--scope 参数 winget install <软件包> --scope user (用户目录) 或 machine (系统目录) 仅控制安装作用域:决定软件安装在用户目录还是系统目录(如 Program Files),不能指定任意路径。
--override 参数 winget install ... --override "/INSTALLDIR=D:\Your\Path" 技术要求高:需要知晓特定安装器(如某些使用MSI的软件)支持的参数,通用性差。

1.2.4 软件源来源&加速

1.2.4.1 软件源

winget 的软件清单(manifest)主要来自 微软维护的社区仓库:

  • 默认源:winget-pkgs GitHub 仓库,里面存放着每个软件的 manifest(安装描述),告诉 winget 如何下载安装。
  • 软件下载来源:
    winget 自身不托管安装包,而是从 软件的官方发布地址 或 微软商店 (MS Store) 下载。
  • 地域问题:
    如果源链接是国外的(比如 GitHub、国外官网),在国内可能会比较慢;
    如果链接是 MS Store 或微软 CDN(如 aka.ms),通常在国内速度会好一些。

1.2.4.2 加速

移除默认源 winget source remove winget
添加中科大源 winget source add winget https://mirrors.ustc.edu.cn/winget-source
查看当前源 winget source list
重置回官方源 winget source reset winget

1.3 Scoop

1.3.1 简介

Scoop的设计初衷是提供一个无需管理员权限、绿色便携的软件管理方案。它安装的软件通常是便携式的,解压后即可使用,不会将文件散落或注册表信息写入系统。

软件默认安装在C:\Users\<用户名>\scoop,但完全可以通过设置SCOOP环境变量,将其安装到任何自定义位置,例如D:\Scoop。此后所有通过Scoop安装的软件都会集中在这个目录下

Scoop 特点:

  • 无需管理员权限(默认安装在用户目录)
  • 把每个应用解压到 SCOOP\apps\<name>\<version>,通过 SCOOP\shims 把可执行文件放到 PATH(shim 是可移植的可执行代理)。
  • 数据和可执行文件都是普通文件夹,方便备份/Git 管理。
  • 可以通过环境变量在安装前指定 SCOOP 根目录,从而安装到 D:、E: 等盘。

1.3.2 操作&安装

在 PowerShell(非管理员也可)中执行:

# 1 把 scoop 根目录设为 D:\scoop(持久化设置)当前写入用户变量,如果想写入系统变量setx 后面加 \M 即可
setx SCOOP D:\Scoop
# 关闭并重新打开 PowerShell(或在当前会话临时设置)
$env:SCOOP='D:\Scoop'# 设置全局安装目录(可选)
# Scoop 还有一个 global apps(全局软件目录),默认在 C:\ProgramData\scoop。
# 如果也想放到 D 盘,可以设置 SCOOP_GLOBAL 当前写入用户变量,如果想写入系统变量setx 后面加 \M 即可
setx SCOOP_GLOBAL D:\ScoopGlobal
$env:SCOOP_GLOBAL='D:\ScoopGlobal'
# 注意:SCOOP_GLOBAL 是系统级变量,要管理员权限# 2 允许脚本并安装(如果网络需要 TLS)
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072# 3 安装 scoop
iwr -useb get.scoop.sh | iex
或者 更简洁的 irm get.scoop.sh | iex
或者 直接安装国内且直接指定脚本:irm scoop.201704.xyz | iex -ArgumentList @('-ScoopDir', 'D:\Scoop', '-ScoopGlobalDir', 'D:\GlobalScoopApps')

注意setx 会把环境变量写入系统(用户)配置,重启 shell 后生效。若想临时在当前 PowerShell 会话生效,可先执行 $env:SCOOP='D:\scoop' 再安装。

irm get.scoop.sh | iexiwr -useb get.scoop.sh | iex 的区别:

方面 irm get.scoop.sh | iex iwr -useb get.scoop.sh | iex
命令 使用 Invoke-RestMethod(irm) 使用 Invoke-WebRequest(iwr)
输出 直接返回响应主体(脚本的文本内容) 返回完整 HTTP 响应对象,需通过 .Content 访问主体。
解析模式 默认不解析 HTML,直接返回文本,简洁高效 需要 -useb(UseBasicParsing)避免 HTML 解析
语法简洁性 更简洁,无需额外参数 稍复杂,需显式指定 -useb(在旧版 PowerShell 中)
适用场景 更适合直接获取文本或 JSON 内容的场景 适合需要完整 HTTP 响应(如状态码、头信息)的场景
性能 略轻量,因无需处理完整响应对象 略重,因返回完整响应对象

报错:Running the installer as administrator is disabled by default, see https://github.com/ScoopInstaller/Install#for-admin for details.
因为 Scoop 默认禁止通过管理员权限的 PowerShell 来安装。它设计为在普通用户模式下运行,这样可以避免一些潜在的权限冲突和系统文件误改风险

1.3.3 常用命令

scoop bucket add extras           # 添加扩展仓库
scoop search <name>               # 搜索软件
scoop install <name>              # 安装
scoop list                        # 列出已安装的软件
scoop update <name>               # 更新某软件
scoop update *                    # 更新所有
scoop uninstall <name>            # 卸载
scoop which <exe>                 # 查看某可执行文件实际路径
scoop prefix <name>				  # 快速查询 通过 Scoop 安装 软件所在根目录路径

1.3.4 软件源来源&加速

1.3.4.1 软件源

scoop 的软件源叫 bucket(相当于软件仓库),默认和社区提供:

  • 主 bucket(main):ScoopInstaller/Main,常见工具的清单,比如 git、nodejs、python。
  • 其他官方 bucket:
    ScoopInstaller/Extras 各种 GUI 软件
    ScoopInstaller/Versions 不同版本
    ScoopInstaller/Java 各种 JDK
    ScoopInstaller/Nirsoft Nirsoft 工具集
  • 第三方 bucket:
    任何人都能建自己的 bucket(比如国内的一些 bucket,会提供加速链接)。
    添加命令:scoop bucket add <名字> <git地址>

Scoop 的软件清单放在 bucket(Git 仓库)里。默认只安装了 main bucket

scoop bucket list   				#查看当前已添加 bucket  
scoop bucket known  				#查看官方推荐  
scoop bucket add <bucket_name>		#添加一个官方已知的 bucket 
scoop bucket add <name> <repo_url>	#通过 Git 仓库地址添加第三方 bucket
scoop bucket rm <bucket_name>		#移除指定的 bucket添加额外 bucket
scoop bucket add extras
scoop bucket add versions
scoop bucket add java
scoop bucket add nirsoft# 示例:添加 Gitee 上的 Extras 仓库
scoop bucket add dorado https://github.com/chawyehsu/dorado
scoop bucket add extras https://gitee.com/scoop-installer/Extras

1.3.4.2 加速

使用国内加速 bucket,一些社区提供国内源,例如:

如果尚未安装 Scoop,可以直接使用国内镜像提供的安装脚本,这会自动配置好主程序源
# 使用国内镜像安装 Scoop
iwr -useb scoop.201704.xyz | iex如果已经安装了 Scoop,可以手动将其仓库地址修改为国内镜像:
scoop config SCOOP_REPO "https://gitee.com/scoop-installer/scoop"
scoop update

里面很多常见软件都有国内加速下载地址。
修改 aria2 加速下载

Scoop 默认用 PowerShell 下载,比较慢。推荐开启 aria2 多线程下载:
scoop install aria2 # 安装优化配置
scoop config aria2-enabled true  # 默认开启,改为false 即可关闭多线程下载
scoop config aria2-split 16
scoop config aria2-max-connection-per-server 16
scoop config aria2-min-split-size 1M

启用后下载会变成多线程,大幅加速

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

那个公司做网站制作图

基站即公用移动通信基站&#xff0c;是无线电台站的一种形式&#xff0c;是指在一定的无线电覆盖区中&#xff0c;通过移动通信交换中心&#xff0c;与移动电话终端之间进行信息传递的无线电收发信电台。 目前&#xff0c;在 5G时代 &#xff0c;“ 宏基站 为主&#xff0c; 小…

VRNN论文总结 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

西安市做网站公司网站设计的内容有哪些

一、项目介绍 系统管理员的功能概述&#xff1a; ①用户管理 a.注册用户账户 当一个新用户注册时&#xff0c;用户填写基本信息并上传。用户基本信息包括账号、 姓名、密码、手机、地址等信息。 b.用户信息管理 管理员可以查看系统所有用户的基本信息&#xff0c;并修改和…

清华建设工程有限公司公司网站wordpress the date

服务器和电脑传文件夹吗 内容精选换一换Model File:模型文件。单击右侧的文件夹图标&#xff0c;在后台服务器sample所在路径(工程目录/run/out/test_data/resnet-18/model)选择需要转化的模型对应的*.prototxt文件&#xff0c;并上传。Weight File:权重文件。请自行从https://…

网页标准化对网站开发维护的好处文化网站建设需要的功能

优美的应用体验 来自于细节的处理&#xff0c;更源自于码农的自我要求与努力&#xff0c;当然也需要码农年轻灵活的思维。本文章实现的Demo效果&#xff0c;如下图所示&#xff1a;class HeroHomePage extends StatefulWidget { override _TestPageState createState() > …

深入解析:Social-Auto-Upload - 多平台社交媒体视频自动化上传工具

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

MX Round 11 解题报告

MX Round 11 解题报告 T1 水题,直接枚举计算即可。 T2 场切了,很爽!!! 因为操作是可以被覆盖的,所以考虑倒序考虑操作:一个位置一旦有了数,就再也不会变了。 然后我们考虑:有数的位置一定是一段连续的区间。这…

用 C# 打造企业资产管理系统雏形——从控制台到完整模块设计 - 详解

用 C# 打造企业资产管理系统雏形——从控制台到完整模块设计 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &quo…

青岛网站设计流程做网站的说3年3年包括什么

大家好&#xff0c;我是 &#x1f41f;&#x1f4a8;。前天&#xff0c;星球 的一位大学生朋友问了我几个问题&#xff1a;你大学时如何安排每日的时间&#xff1f;为什么能学那么多技术&#xff1f;你会学习到很晚吗&#xff1f;你是如何保持自律的&#xff1f;我觉得这几个问…

html5 网站设计网站模板 山

申请该结构体数组&#xff0c;容量为5&#xff0c;初始化5个学生的信息 使用fprintf将数组中的5个学生信息&#xff0c;保存到文件中去 下一次程序运行的时候&#xff0c;使用fscanf&#xff0c;将文件中的5个学生信息&#xff0c;写入(加载)到数组中去&#xff0c;并直接输出学…

java开发之微信机器人的二次开发

java开发之微信机器人的二次开发个微API服务能处理用户微信中的各种事件,并辅助微信执行各种操作,提供了开发者与个人号对接的能力,是一款基于微信提供的个人号开放性API,使用简单,操作快捷,支持多种微信方式接入…

10.1刷题计划一

力扣33题 搜索旋转排序数组 设x=nums[mid]是我们现在二分取到的数,需要判断x和target的位置关系。 (1)如果x和target在不同的递增段: 1.如果target在第一段,x在第二段,说明target在x在左边。 2.如果x在第一段,…

实用指南:渗透测试入门:从网络抓包到Web安全基础

实用指南:渗透测试入门:从网络抓包到Web安全基础2025-10-01 14:38 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; displ…

笔记本电脑重装系统后找不到5G WIFI无线网或蓝牙模块消失的解决方案

问题描述:笔记本电脑,重装系统后,蓝牙模块消失,且无线网显示不了5G校园网WIFI 问题解决: 电脑品牌网站下载更新驱动(如我的是联想服务官网https://newsupport.lenovo.com.cn/driveDownloads_index.html)1 查询并…

网站建设实施规范青岛市网页设计公司

&#x1f506; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 &#x1f506; OpenCV项目地址及源代码&#xff1a;点击这里 文章目录 图像模糊操作均值滤波高斯滤波中值滤波双边滤波 图像模糊操作 关于图片的噪声&#xff1a;指的是图片中存在的不必要或者多余的干扰数…

完整教程:降低fullgc停顿时间

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

AI+传统工作流:Photoshop/Excel的智能插件开发指南 - 实践

AI+传统工作流:Photoshop/Excel的智能插件开发指南 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consol…

菜鸟坚持记录-开头篇

这个世界上有两种事:一种是你能掌控的,另一种是你不能掌控的。我们只能做好我们能掌控的事,而对于我们掌控不了的事,不用太关注,也不用太在意。 人生匆匆百年,如梦幻泡影。人活在这个世界上是为了什么?无非是走…

菜鸟坚持记录-开头篇

这个世界上有两种事:一种是你能掌控的,另一种是你不能掌控的。我们只能做好我们能掌控的事,而对于我们掌控不了的事,不用太关注,也不用太在意。 人生匆匆百年,如梦幻泡影。人活在这个世界上是为了什么?无非是走…