Windows 安装 Scoop 包管理器
文章目录
- 先决条件
- 安装Scoop
- 安装必要的软件
- 安装语法提示插件(可选)
- Scoop 源码存储库加速
- Scoop 仓库加速(更新、下载)
- 方法一
- 方法二
- 实战:Scoop 安装 MySQL
- 更新 Scoop 以及 bucket
- 卸载 Scoop
- 经验
- 常用命令
- 杂谈
先决条件
PowerShell 版本 5.1 或以上。运行以下命令查看
Get-Host | Select-Object Version
或者
$PSVersionTable.PSVersion
不满足?将 Windows 更新到最新版本
安装Scoop
步骤1、2在管理员cmd执行、步骤3在非管理员cmd执行
# 1.自定义Scoop安装目录
$env:SCOOP='D:\Scoop'
[Environment]::SetEnvironmentVariable('SCOOP',$env:SCOOP,'User')
# 2.此步可省略,自定义Scoop全局包安装目录(为一台机器的所有用户安装)
$env:SCOOP_GLOBAL='D:\Scoop_Global'
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL',$env:SCOOP_GLOBAL,'Machine')
# 3.安装 scoop
# 由于国内特殊的网络环境,此步用 https://github.com/duzyn/scoop-cn 加速
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
irm https://mirror.ghproxy.com/raw.githubusercontent.com/duzyn/scoop-cn/master/install.ps1 | iex
注意:
1 所指定的路径必须存在,若不存在应手动创建
2 由于环境变量中文路径的支持问题,Windows 用户名或自定义的安装路径不能有中文
3 scoop 官方仓库中的软件大多数都是便携版的开源软件
安装必要的软件
scoop 依赖 git,不安装无法进行后续操作
scoop install git # 强制安装
scoop install aria2 # 可选,多线程下载器,提高下载速度
安装语法提示插件(可选)
# 1.安装
scoop install scoop-completion
# 2.启用
# create profile if not exist
if (!(Test-Path $profile)) {
New-Item -Path $profile -ItemType "file" -Force }
# print $profile path
$profile
# 打开该文件,新增以下内容
Import-Module "$($(Get-Item $(Get-Command scoop.ps1).Path).Directory.Parent.FullName)\modules\scoop-completion"
# 用法
scoop ins[Press Tab]
scoop install py[Press Tab]
scoop uninstall [Press Tab]
Scoop 源码存储库加速
scoop config scoop_repo https://mirror.ghproxy.com/https://github.com/ScoopInstaller/Scoop
目的:当执行 scoop update
命令时,默认会从 https://github.com/ScoopInstaller/Scoopl
更新 scoop 本体,稳妥起见通过 ghporxy.com
代理
Scoop 仓库加速(更新、下载)
下载慢的原因:scoop 中大多是开源软件,下载地址以 https://github.com/
开头,而用国内的网络直接访问 GitHub 可能打都打不开,更别说下载了,即使能下载也慢如龟速。因此对于能够直接在 GitHub 上下载的软件,可以通过 ghporxy.com
代理来解决。对于不能在 GitHub 上下载的其它软件(下载地址不以 https://github.com/
开头),就需要其他方法解决了。好在一些知名的国外软件国内下载速度也是很快的,比如 IDEA、Postman 等。针对这两种情况,下面提供了两种解决方法
方法一
使用 scoop buckets 代理镜像库
scoop bucket add spc https://mirror.ghproxy.com/https://github.com/lzwme/scoop-proxy-cn
区别:scoop-proxy-cn 包含了众多 bucket,且所有以 https://github.com/
开头的下载链接均已加了前缀 https://mirror.ghproxy.com/
来加速
包含的 bucket 详见:https://github.com/lzwme/scoop-proxy-cn#sync-buckets-from
方法二
让 scoop 网络连接通过代理进行
scoop config proxy 127.0.0.1:10809(v2 用户)
或
scoop config proxy 127.0.0.1:7890(cat 用户)
然后通过 scoop bucket add 添加 GitHub 的 scoop bucket,此方法要保证 scoop 的任何操作都要在开启代理的网络环境下进行
实战:Scoop 安装 MySQL
scoop install mysql
# 启动mysql
mysqld --console
# my.ini设置了root用户
mysql -uroot
# 为root用户设置密码,密码为root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
# 设置开机启动,注册为服务(需管理员权限)
mysqld --install MySQL --defaults-file="D:\Scoop\apps\mysql\current\my.ini"
# 关闭开启启动(需管理员权限)
mysqld --remove
# 参考 https://dev.mysql.com/doc/refman/8.1/en/windows-start-service.html
这里 Scoop 的优势就体现出来了,搜索任意一篇“MySQL安装教程”,通篇图文并茂的文章操作下来,其实也就上面几行命令,节省了不少时间
更新 Scoop 以及 bucket
scoop update
卸载 Scoop
scoop uninstall scoop
警告:这将卸载 Scoop 以及所有随 Scoop 安装的程序!
经验
1.有时下载失败,可能是hash校验失败,尝试如下命令重新安装
# -s or --skip Skip hash validation (use with caution!)
scoop install <app> -s
2.在官网 https://scoop.sh 搜索有时比 scoop search
更快
scoop search
效率低下,建议用 scoop-search 替代有时下载失败,可尝试关闭 aria2
scoop config aria2-enabled false
常用命令
scoop list # 查看已安装软件
# 搜索、安装
scoop search <app> # 搜索软件
scoop install <app> # 下载并安装软件
# 更新
scoop update # 更新 scoop 和所有 bucket
scoop status # 检查已安装包是否有更新
scoop update <app> # 更新指定包
scoop update * # 更新所有包
# bucket
scoop bucket known # 查看官方支持的下载源
scoop bucket add <name> [<repo>] # 添加下载源
# scoop 更新 app 后,其旧版本并不会被删除,可通过以下命令删除
scoop cleanup <app>
scoop cleanup *
scoop hold <app> # 锁定版本(暂停更新)
scoop unhold <app> # 解除版本锁定
scoop reset <app@版本号> # 切换包到指定版本(scoop 特色)
scoop cache rm * # 清空缓存(清空cache目录)
# 备份
scoop export > scoopfile.json # 导出包
scoop import scoopfile.json # 导入包
# 打开应用主页
scoop home <app>
# 自身诊断
scoop checkup
杂谈
Windows 管理器我只用过 chocolatey、scoop、还有自家的 winget,目前比较下来还是 scoop 最好用,chocolatey 虽然老牌但很多软件源缺少维护且需要管理员权限,winget 对国内软件支持度高多但还不成熟。如果是 MacOS,就选 homebrew 吧。
GitHub:https://github.com/ScoopInstaller/scoop
官网:https://scoop.sh
其他教程:https://zhuanlan.zhihu.com/p/463284082
还没有评论,来说两句吧...