折腾日志 | 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. |