折腾日志 | Windows 包管理器 Scoop 的安装与使用
前言 ¶
1 | sudo apt update |
在 Ubuntu
安装软件的时候敲入上面的命令是一件令人舒适的事情,而且也很便捷,想要在 MacOS
上这样操作,也可以使用 homebrew
等诸多的包管理工具。然而如果想在 Windows
安装软件,你可能需要:
- 打开百度搜索软件
- 在搜索结果中找到无毒无捆绑的版本
- 进行安装,不停点击
Next
或者下一步 - 结束安装
在这个过程中,你还要担心是否会混入病毒,是否会有捆绑软件同时下载;软件还很可能会索要管理员权限,把它自己安装在 C 盘的好位置;有些开发工具还可能会搞乱你的环境变量;最最重要的是,最后你要卸载它的时候不知道有多麻烦。
所以就有天降猛男来解决这个问题,开发了 Windows
的包管理工具。在 scoop
之前,Windows
上的包管理工具中比较出名的是 Chocolaty
。在 scoop
横空出世之后,由于其自定义程度高、拓展性强的特性而发展迅猛,目前社区中总计有 2000 + 的软件;另外 scoop
安装软件不依赖管理员权限,安装路径和环境变量管理也深得我这一类 “绿色用户” 的欢心。
安装 scoop¶
安装要求 ¶
- Windows 7 或更高版本
- PowerShell 5.0 或更高版本
- .NET Framework 4.5 或更高版本
- User Name 不含中文字符
- 确认打开了远程安装权限
1 | $PSVersionTable.PSVersion.Major # 查看Powershell版本 |
当然还有很重要的一点就是能够正常访问 Github
。
配置 ¶
默认情况下,scoop 以及大多数安装的软件都位于 %USERPROFILE%\scoop
, 全局安装的程序位于 C:\ProgramData\scoop
,当然我们也可以自定义安装位置:
1 | $env:scoop='D:\scoop' |
安装 ¶
1 | Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') |
卸载 ¶
以毒攻毒,以 scoop
卸载 scoop
(先卸载其他软件):
1 | scoop uninstall scoop |
基础 ¶
常用命令 ¶
scoop
的命令设计逻辑是 scoop + command + [object] + [options]
,例如 scoop install git -g
,常用的基础命令有:
命令 | 作用 |
---|---|
help | 查看帮助 |
bucket add/rm [args] | 添加、删除仓库 |
bucket list/know | 查看已有 / 已知仓库 |
search | 匹配查找 |
info | 查看详情 |
home | 查看主页 |
install | 安装 |
uninstall | 卸载 |
update | 更新 |
list | 查看已安装软件 |
cache show/rm [app] | 查看或删除缓存 |
cleanup | 删除旧版本 |
checkup | 自检查 |
安装位置 ¶
在配置这一步中,我们设置了 scoop
的安装位置为 D:\Scoop
,在这个文件夹下,会有这几个子目录:
app
就是软件的安装位置;buckets
则是已添加的仓库(后文会提到,scoop
的仓库实际上就是 git
的 repository
,所以该文件夹下其实就是一个一个 git repository
);cache
是下载缓存;GlobalApps
是自定义的全局安装位置;persist
则是一些配置文件;shim
会创建一些应用的软链接,让应用之间不会互相干扰。
加速 ¶
使用 aria2¶
aria2
可以利用多线程加速下载:
1 | scoop install aria2 |
设置代理 ¶
scoop
在拉取仓库更新和下载大部分软件时,都需要从国外服务器下载,速度十分感人,因此使用代理可以大大加速下载。有两种方式可以在 scoop
下载时使用代理:
- 在 Powershell 内设置环境变量:
$Env:http_proxy="http://127.0.0.1:1080";$Env:https_proxy="http://127.0.0.1:1080"
- 更改代理设置:
scoop config proxy [username:password@]host:port
,具体配置可以查看参考资料 5
Bucket 管理 ¶
介绍 ¶
Bucket
其实就是一个 git repository
,主要组成就是描述如何安装软件的 json
文件。在安装 scoop
时已经附带安装 main bucket
,然后这个仓库的收录标准十分严格:
- 主流的开发者工具
- 维护中的最新版本的软件
- 完整版本的软件
- 不可以有 GUI
- ……
这使得我们只能在 main
中找到部分软件,不可以有 GUI
这一点使得大部分日常使用软件都无法下载,所以我们需要添加其他仓库,可以使用 scoop bucket know
查看官方维护的仓库,还可以在这里查看较受欢迎的仓库,较完整的仓库列表可以在这里查看。
管理 ¶
官方维护的仓库可以直接添加,例如 scoop bucket add extras
;对于社区维护的仓库,使用 scoop bucket add <name> <url>
进行添加,例如 scoop bucket add dorado https://github.com/chawyehsu/dorado
。
每一次安装和更新软件之前,scoop
首先会从 github
拉取已添加仓库的更新,然后再进行操作。如果碰到不同的仓库中拥有名字相同的软件,可以加上仓库名以示区分,例如 scoop install main/git
。
建立自己的 bucket¶
App 查询 ¶
为了在 scoop
的许多仓库中找到自己需要的软件,可以在这里查询安装脚本所在的 bucket。
Q&A¶
- 还有其他的包管理工具吗?
有呀,例如 winget,是由官方推出的推出命令行安装工具,全称windows package manager client
仓库 ¶
名称 | 简介 |
---|---|
dorado | Yet another bucket for scoop. |
scoopet | A Bucket for the Best Windows Package Manager scoop : Continuously Assisting in Academic Research. |
sushi | A tasty and inclusive scoop bucket, providing various kinds of applications. |