Scoop 包管理教程
scoop 是什么
简而言之 scoop 是一个包管理工具,可以在命令行安装一些软件
scoop 项目地址:
lukesampson/scoop: A command-line installer for Windows. (github.com)
chocolatey VS scoop
chocolatey
权限要求高,scoop
使用-g
安装才需要管理员权限,默认普通用户权限.scoop
可以建软件包仓库,如果官方仓库里没有想用的软件,可以自己建一个仓库,存放自己的软件.chocolatey
很多软件安装位置不固定,会污染Path
安装 scoop
-
设置
powershell
1
set-executionpolicy remotesigned -s currentuser
-
默认安装 (安装到
C:\Users\<user>\scoop
), 在powershell
里面运行:1
2
3iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
#or
iwr -useb get.scoop.sh | iex -
安装到指定目录 (
E:\Tools\Scoop
)1
2
3[environment]::setEnvironmentVariable('SCOOP','E:\Tools\Scoop','User')
$env:SCOOP='E:\Tools\Scoop'
iex (new-object net.webclient).downloadstring('https://get.scoop.sh') -
指定
-g
安装目录 (D:\tool\scoop_global
),需管理员身份运行1
2[environment]::setEnvironmentVariable('SCOOP_GLOBAL','E:\Tools\Scoop_global','Machine')
$env:SCOOP_GLOBAL='E:\Tools\Scoop_global'
验证 scoop 是否安装成功执行:
1 | scoop help |
更换 Scoop-Core 源(可选)
可以选择更换为维护状态更为活跃的 scoop-Core
:shovel
执行以下操作:
scoop install 7zip git
scoop config SCOOP_REPO 'https://github.com/Ash258/Scoop-Core'
scoop update
scoop status
scoop checkup
安装后,运行 scoop help
以获取更多信息。
scoop 使用方法
常用命令
1 | scoop help #帮助 |
-
shims 目录
scoop
安装程序后会在scoop
安装目录下的shims
里生成一个对应程序的shim.exe
(不知道为啥不用快捷方式).安装
scoop
后 会自动把shims
目录加到用户的Path
里. -
persist 目录
这个目录下面放的是已安装软件的配置文件,后续更新软件的时候这部分内容不会修改.
命令示例
安装指定的版本
1 | 查找应用程序 |
一次安装多个软件,打开多个窗口同时安装
1 | scoop install git 7zip python |
安装指定 Bucket 的应用
1 | scoop install main/curl |
删除所有旧版本
1 | scoop cleanup * |
导出软件列表
1 | scoop list > %HOMEPATH%\Desktop\Apps.txt |
版本切换
1 | scoop reset python |
卸载
1 | scoop uninstall AppName |
如果要用管理员运行命令,无需用管理员打开 cmd (or powershell) 直接在命令行前加一个 sudo 即可.
安装 sudo
1 | scoop install sudo |
安装 grep
1 | scoop install grep |
安装完之后就可以在 windows 的终端使用 grep
1 | ls | grep something |
安装增强命令 - 可选
一组用 PowerShell 编写的命令行实用程序 :lukesampson/psutils
这些设计为与 Scoop 一起安装。
- gitignore -
.gitignore
从 gitignore.io 获取文件模板并将它们写入标准输出。 - ln - 类似 Unix
ln
命令的。 - runat - 替代
at
,Microsoft 已在 Windows 2012 中弃用和删除的命令。 - say - 类似 macOS 的
say
。 - shasum - 类似 shasum。
- sudo - 类似 Unix
sudo
命令,不幸的是显示了一个 UAC 弹出窗口。 - time - 类似 Unix
time
命令。 - touch - 类似 Unix
touch
命令。 - vimtutor -
vimtutor
Vim for Windows 附带的不适用于 Scoop,这个可以。 - set,less,……
常见问题
-
安装某些
gui
程序后,运行对应的shim.exe
会出现cmd
窗口 (nvim-qt
cmd
窗口一直显示,cmder
cmd
窗口一闪而过 )。 解决办法:把Scoop Apps
目录加到path
里,目录在C:\Users\fcying\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Scoop Apps
-
raw.githubusercontent.com
未能解析解决办法:在
C:\Windows\System32\drivers\etc\hosts
中添加 host 解析:199.232.68.133 raw.githubusercontent.com
-
fatal: not a git repository (or any of the parent directories): .git
添加 bucket 时,由于网络问题,未成功添加,bucket 文件夹为空。
-
添加快捷方式
开始菜单栏
Scoop Apps
目录,右键打开文件位置,你需要的快捷方式就在这。设置快捷键或添加右键打开方式非常方便。例如 vscode,在快捷方式属性中设置快捷键
Ctrl+Shift+Alt+Z
,快速打开 vscode,做个便笺不错。
aria2 下载加速
Scoop 可以利用 aria2 来使用多连接下载。只需通过 Scoop 安装 aria2,之后所有下载都将使用它。
aria2 是什么
aria2 是一个跨平台的快速而且可靠的下载工具,支持 HTTP (S)、FTP、BitTorrent、Metalink 等协议。可以从多个来源 / 协议下载文件,并尝试利用最大下载带宽
安装
1 | scoop install aria2 |
如果使用代理,有时需要通过如下命令关闭 aria2
1 | scoop config aria2-enabled false |
aria2 配置参数
1 | # aria2 在 Scoop 中默认开启 |
安装 Git 来添加新仓库
1 | scoop install git |
添加 bucket 仓库
添加官方维护的 extras 仓库(含大量 GUI 程序)
1 | scoop bucket add extras |
查看官方推荐仓库
1 | scoop bucket known |
第三方 bucket
若在 scoop search 中找不到需要的软件,可以上 github 上的第三方 bucket 查找一下。比如安装 cajviewer,添加 bucket:
1 | scoop bucket add scoopbucket https://github.com/yuanying1199/scoopbucket |
安装 cajviewer:
1 | scoop install scoopbucket/cajviewerlite |
1 | # 社区提供 |
搜索功能增强
scoop
自带的搜索加载体验实在是糟糕,推荐安装 scoop-search 改善 scoop 搜索体验 :https://github.com/shilangyu/scoop-search
1 | scoop install scoop-search |
安装后使用 vscode
打开 $PROFILE
1 | code $PROFILE |
添加相关 hook(可选)
1 | Invoke-Expression (&scoop-search --hook) |
以后就可以使用 scoop-search
来搜索仓库已有软件名称,速度比原本自带的搜索功能快非常多
换源:提高下载速度
要改善 Scoop 的下载速度,详细可以参照 Scoop | Gitee 版 的说明更换下载源。换源之后的 Scoop,速度提升很明显。
- 更换 Scoop 源
1 | scoop config SCOOP_REPO https://gitee.com/squallliu/scoop |
- 更换 bucket 源
1 | scoop install git |
1 | scoop bucket rm apps |
也可以使用镜像网址来加速 github 访问,以下为示例镜像:
1 | 将 https://github.com 替换为 |
安装 oh-my-posh 主题
参考: Home | Oh my Posh
安装 oh-my-posh
1 | scoop install https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/oh-my-posh.json |
更新 oh-my-posh
1 | scoop update oh-my-posh |
使用 oh-my-posh 的主题
主题预览
Themes | Oh my Posh
一。执行 $PROFILE
会输出 powershell 的配置文件路径,如果没有就新建一个
1 | C:\Users\19154\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 |
使用 VScode 打开配置文件
1 | code $PROFILE |
二。在配置文件中追加一行如下代码:
1 | oh-my-posh --init --shell pwsh --config ~/.mytheme.omp.json | Invoke-Expression |
其中 ~/.mytheme.omp.json
是本地的主题文件,路径在 ~\scoop\apps\oh-my-posh\current\themes\
三。执行. $PROFILE
命令使配置文件生效
四. oh-my-posh 安装成功之后,所有的主题存在 ~\scoop\apps\oh-my-posh\current\themes\
文件夹下 (就是一些 json 文件).
更多进阶操作
维护自己的 bucket 仓库
下面的操作涉及到一定的开发经验,需要
git
的版本控制知识和对json
文件的了解。如果上面介绍的方法已经满足了你的需求,就可以忽略这里的介绍了。
「想要安装的软件在已有仓库里都找不到」
针对这种需求也可以自己维护一个 bucket (Creating your own bucket),在里面写上所需要软件的安装步骤配置文件,从而自定义一个自己的 bucket。以在 GitHub 上托管一个名字为 my-bucket
的 bucket 为例子:
- 建立一个 GitHub 仓库名为 my-bucket
- 在 PowerShell 中执行下面的操作,向 my-bucket 中添加一个名字叫 hello 的 App:
1 | 将仓库克隆至本地 |
- 在 Scoop 中将 my-bucket 添加至你的 Scoop bucket 列表:
1 | scoop bucket add my-bucket https://github.com/<你的 GitHub 用户名>/my-bucket |
- 测试是否成功:
1 | 安装 hello 这个 App |
应该会看到 Hello, <你的 Windows 用户名>!
。
这就是官方给出的自定义 bucket 的 demo,你需要继续对 hello.json
进行配置,包括你所想要安装 App 的下载地址、安装步骤等一系列配置方法,参考:App Manifests
备份还原
常规备份还原操作
导出 Scoop 软件列表
备份 Scoop 的方式为:
1 | scoop export > %HOMEPATH%\Desktop\Apps.txt |
可以对 Scoop 的导出列表进行额外处理,以方便后续安装。使用 VSCode 打开 scoop.txt
文件,以正则表达式搜索:
1 | (.*?) .* |
并全部替换成:
1 | 1 |
注意正则式中包含空格,请完整复制。
重新安装
按照上面导出的软件列表执行 scoop 安装命令
1 | scoop install app1 app2 app3 ... |
备份及还原(离线安装)
使用备份还原脚本实现 scoop
离线安装
脚本地址:https://github.com/fsdrw08/SysOps/tree/master/Scoop
注意:执行备份前建议关掉所有通过 scoop
安装的程序
演示视频: