包管理
安装路径
windows 默认的应用安装路径是由环境变量路径 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
下的 ProgramFilesDir 这一变量来决定的,修改其值既可以修改程序的默认安装路径。
后经测试不建议修改,统一软件安装规范为直接修改安装路径
- 修改盘符 C 为目的安装的磁盘
- 并将其原有路径中的空格进行删除
- 例如
C:\Program Files\...
改为D:\ProgramFiles\...
choco
默认安装位置通过以下几个环境变量进行指定,具体参考 Getting Started,可安装的包参考 Packages,会有具体教程
- 一些包会默认装在
ChocolateyInstall\lib
目录下; - 其它一些基于 windows 下的安装包比如 MSI 会被安装在 C 盘下的
Program Files
文件夹里; - 还有一些数据包会被装在
$env:ChocolateyBinRoot
目录下,如果这个环境变量不存在,包将会被创建在c:\tools
目录下。
修改方法
- 对于第一种和第三种情况,我们进行设置对应的环境变量即可,即
ChocolateyInstall
和ChocolateyBinRoot
- 而对于第二种情况,我们需要通过指令传递安装路径的,比如
choco install llvm -ia "'/D=D:\software\llvm'"
- 由于 choco 的一些需要的功能需要收费,且总体体验不能够高度的自主可控,转用 Scoop
winget
winget 是微软推出的一款旨在实现 windows 下的包管理的工具,但是其目前的包数量仍较少,且对代理的支持效果较差,国内用户体验感较差,一些基础的使用尝试如下:
- winget settings 打开配置文件
1 | { |
scoop
准备
在 powershell 中配置 scoop 代理的方式为 $env:scoop_proxy = "http://127.0.0.1:7890"
(替换为自己的端口),清除 scoop 代理的方式为 $env:scoop_proxy= ""
安装
- 下载安装脚本:
irm get.scoop.sh -outfile 'install.ps1'
或者curl -k -x 127.0.0.1:7890 https://raw.githubusercontent.com/scoopinstaller/install/master/install.ps1 -o install.ps1
(国内用户 raw.githubusercontent.com 该域名可能被污染无法访问到真实的 ip 地址,可以通过 ipaddress.com 查找对应的 ip 并修改 hosts 文件即可) - 允许脚本执行权限:管理员身份打开 powershell 输入
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
- 执行所下载的脚本进行安装:
.\install.ps1 -RunAsAdmin -ScoopDir 'D:\Scoop' -ScoopGlobalDir 'D:\ProgramFiles' -NoProxy
或者.\install.ps1 -RunAsAdmin -ScoopDir 'D:\Scoop' -ScoopGlobalDir 'D:\Scoop' -Proxy '127.0.0.1:7890'
- 执行
scoop checkup
检查 scoop 安装是否正常
如果当前用户不是管理员的话,需去掉 `-RunAsAdmin` 选项
基础使用
scoop bucket add main
: 先添加基础的软件源仓库,这里仅展示 main 仓库的添加 extras,versions 类似scoop search [pkg]
: 终端搜索想要安装的软件包,如果没有可以上 Scoop 去搜索,按照指示步骤添加对应的 bucket 即可scoop install [pkg]
: 安装对应的软件包,有时候需要参照上方进行代理设置scoop remove [pkg]
: 卸载对应软件包scoop status
: 查找软件包更新scoop update
: 更新 scoop 以及软件源scoop update [pkg]
: 更新对应软件包scoop cache rm *
: 清除缓存scoop cleanup *
: 清理过时软件版本scoop bucket list
: 列出当前使用的软件源/存储桶- 导出软件源/存储桶
1 | $SCOOP_DIR = 'D:\software\scoop' |
更多使用方法可以查看 scoop help
问题
WARN Uncommitted changes detected. Update aborted
1 | git -C "$(scoop prefix scoop)" reset --hard |
参考:[https://blog.captainz.cc/posts/scoop_winodws_cmd1.html](https://blog.captainz.cc/posts/scoop_winodws_cmd1.html)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 万星阁!
评论