Scoop: Windows下的命令行软件包管理器
Scoop 是由开发者 Luke Sampson 开发的开源软件包管理工具, 主要针对 Windows 操作系统. 类似于 macOS 上的 Homebrew, Scoop 可以帮助用户轻松安装, 卸载和管理软件.
Scoop 主要专注于命令行工具的安装, 对于软件开发者和高级用户来说非常便捷. 以下是我scoop中安装的软件列表, 相信你也一样需要的.
scoop list
Installed apps:
Name Version Source Updated Info
---- ------- ------ ------- ----
7zip 23.01 main 2023-08-25 13:58:33
ag 2.2.5 main 2023-06-07 10:58:10
autohotkey 2.0.10 extras 2023-11-19 14:38:28
babashka 1.3.186 scoop-clojure 2023-11-19 14:44:48
clojure 1.11.1.1413 scoop-clojure 2023-11-19 14:44:52
emacs 29.1 extras 2023-08-25 17:18:58
fzf 0.44.1 main 2023-11-19 14:44:54
git 2.43.0 main 2023-11-29 17:53:49
leiningen 2.10.0 main 2023-03-09 10:48:41
nmap 7.94 main 2023-05-26 12:16:01
nodejs 21.2.0 main 2023-11-19 14:45:53
openjdk19 19.0.2-7 java 2023-03-09 10:20:17
pandoc 3.1.9 main 2023-11-19 14:46:01
perfview 3.1.6 extras 2023-11-19 14:49:28
sqlite 3.44.2 main 2023-11-29 17:53:53
time 0.2018.07.25 main 2023-11-27 17:40:19
unxutils 2007.03.01 main 2023-03-09 11:26:59
vcredist2015 14.0.24215.1 extras 2023-03-09 11:54:55
vcredist2022 14.38.33130.0 extras 2023-11-19 14:46:41
注意到不同的程序来自不同的bucket, 比如emacs就来自extras这个bucket.
最初安装scoop之后, 只有一个main bucket, 其他需要手动添加, 比如说:scoop bucket add extras.
安装
直接安装
通过 PowerShell 运行以下命令进行安装:
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
使用国内镜像安装
由于直接访问 GitHub 在国内可能会有些不稳定, 你也可以选择使用国内的镜像源来进行安装.
请参考:
https://github.com/lzwme/scoop-proxy-cn
安装emacs或clojure需要添加extras库
安装scoop-clojure 参考:https://github.com/littleli/scoop-clojure
# if you don't have git version control system installed
# it is required for adding new external buckets to your scoop installer
# you can skip this step otherwise
scoop install git
# add scoop bucket for Java
scoop bucket add java
# add scoop bucket with extras, here there is a dependency on visual studio redistributable 'extras/vcredist2022'
scoop bucket add extras
# add scoop bucket for clojure build
scoop bucket add scoop-clojure https://github.com/littleli/scoop-clojure
Tips:下载bucket的时候需要翻墙,参考:好心人局域网
高级安装选项
scoop安装时候如果想加入一些高级设置(比如说安安装到D盘). 需要先把脚本下载到本地, 然后可以加参数执行.
irm get.scoop.sh -outfile 'install.ps1'
可以查看所有的高级选项:
.\install.ps1 -?
举个例子: scoop程序本身安装到D盘, 通过scoop安装的程序放到F盘, 而且安装时候绕过系统代理(如果已经配置)
.\install.ps1 -ScoopDir 'D:\Applications\Scoop' -ScoopGlobalDir 'F:\GlobalScoopApps' -NoProxy
管理员(admin)安装
scoop默认是低权限执行的(非admin用户), 如果以admin用户的权限执行, 会遭到拒绝.
如果确实想以admin身份安装, 可以通过执行时候添加参数-RunAsAdmin执行.
irm get.scoop.sh -outfile 'install.ps1'
.\install.ps1 -RunAsAdmin [-OtherParameters ...]
# I don't care about other parameters and want a one-line command
iex "& {$(irm get.scoop.sh)} -RunAsAdmin"
工作原理
Scoop 使用一个简单的 JSON 格式文件(即"桶"(bucket))来获取软件的信息和安装方式.
- 从指定的桶(bucket)获取软件信息(即" 配方" (formula)或" 小木桶" (keg)).
- 根据配方进行依赖解析和软件安装.
- 软件被安装在用户的
~/scoop/目录下, 不会影响系统目录.
术语
- Bucket(桶): Scoop的软件源, 存储了多个软件的安装信息.
- App(应用): 在Scoop中, 软件被称为 App.
- Manifest(清单): 存储在桶里的JSON文件, 描述了如何安装和卸载应用.
- Shim(垫片): 一个轻量级的代理执行文件, 用于在命令行下直接运行应用.
常用命令
查找应用
使用 scoop search 命令:
scoop search git
安装命令行程序
例如安装 Git:
scoop install git
卸载程序
scoop uninstall git
更新程序
scoop update git
或更新所有:
scoop update *
查看所有已经安装的应用
scoop list
添加新的源(Bucket)
scoop bucket add my-bucket
查看软件状态
scoop info git
备份与迁移已安装的Scoop软件
如果你已经在一台电脑上通过 Scoop 安装了多个软件, 而现在你希望将这些软件复制或迁移到另一台电脑上, 以下是一些方法:
导出已安装的软件列表
首先, 在源电脑上, 你可以导出所有已安装的软件列表到一个文本文件中:
scoop export > installed_apps.txt
这会生成一个名为 installed_apps.txt 的文本文件, 其中包含所有通过 Scoop 安装的软件.
将Scoop文件夹复制到新电脑
接下来, 你可以将源电脑上的 ~/scoop/ 文件夹整个复制到新电脑上的同一位置.
注意: 请确保目标电脑上没有预先安装 Scoop, 否则这一步可能会覆盖目标电脑上的 Scoop 安装.
在新电脑上导入软件列表
将 installed_apps.txt 文件复制到目标电脑上, 并在目标电脑的 PowerShell 中运行以下命令:
scoop import installed_apps.txt
这会从文本文件 installed_apps.txt 中读取软件列表, 并开始在新电脑上安装这些软件.
更新Shim(可选)
在复制文件和导入软件列表之后, 你可能还需要更新 Shim 以确保所有的命令行工具都能正常运行:
scoop reset *
这样, 你就成功地将所有通过 Scoop 安装的软件从一台电脑复制或迁移到了另一台电脑.
注意: 某些软件可能依赖于特定的系统环境或配置, 因此即使你复制了所有的文件和安装信息, 也不能保证所有软件都能在新电脑上正常运行.
通过这些步骤, 可以更方便地将一台电脑上的 Scoop 配置迁移到另一台电脑, 从而节省重新安装和配置软件所需的时间和精力.