在平常生活中如果要安装像git、java、node这些环境的时都需要先去官网下载安装程序,点击安装,之后还需要配置,不仅过程麻烦,而且工具多了之后整理起来也相当不容易,配置也很杂,整个电脑就像被污染了一样。而scoop可以很好地解决这一问题,安装scoop后,只需要在命令行输入简单的一串命令即可安装你想要的软件。
Scoop 是一款适用于 Windows 平台的命令行软件(包)管理工具,可以通过命令行工具(PowerShell、CMD等)实现软件(包)的安装管理等需求,通过简单的一行代码实现软件的下载、安装、卸载、更新等操作。Scoop 没有提供任何注册发布应用的仓库,Scoop 的“Bucket仓库”提供了应用的下载地址、安装、卸载方式以及依赖等信息。
官方网址:https://scoop.sh
¶安装 scoop
¶配置环境变量
以管理员身份打开 PowerShell 终端:
1 | # 设置系统用户环境变量,配置所有用户软件(包括scoop软件)安装路径(不设置则默认安装到C:\Users\{username}\scoop) |
¶安装
关闭以上终端,以非管理员身份重新打开一个新的 PowerShell 终端。注意是非管理员身份,否则会提示默认不能以管理员身份运行脚本安装。
1 | # 设置当前用户的执行策略:为了计算机安全,设置只允许在本地计算机上运行本地脚本,但不允许从远程计算机运行未签名的脚本 |
💁♂ 访问 github 不畅时以上安装可能会失败。解决办法就是自行想办法开代理或者配置 hosts 以确保能够顺利访问 github ,然后重新执行安装命令即可。开代理的方式是最推荐的,但由于不可描述的原因就不多介绍了,这里主要介绍下配置hosts的方式:
(1)然后访问 https://raw.hellogithub.com/hosts 获取最新访问 github 相关的 hosts 配置
(2)通过记事本打开系统的 hosts 文件,复制获取到的配置内容追加 hosts 文件里。
1 | notepad "C:\Windows\System32\drivers\etc\hosts" |
(3)大部分情况下是直接生效,如未生效可尝试下面的办法,可通过如下命令刷新 DNS:
1 | ipconfig /flushdns |
获取 hosts 配置的方式可能会失效,可以关注这个链接来源的github项目:https://github.com/521xueweihan/GitHub520
¶卸载 scoop
1 | #卸载scoop(注意这会除了卸载scoop本身外,还会卸载所有通过scoop安装的软件) |
¶常用命令
1 | #帮助 |
这些是一些常用的Scoop命令,但还有很多其他命令和选项可以使用。可以使用
--help
选项查看每个命令的帮助文档,例如scoop install --help
。
¶配置存储库
Scoop 中的 bucket 是指一组Scoop应用程序的存储库。其提供了应用的下载地址、安装、卸载方式以及依赖等信息。可以通过添加 bucket 来安装更多的软件, bucket通常都是存储在Git仓库里(比如:github)。scoop 安装好后默认的存储库就只有main这一个bucket,可以加入一些其他的存储库来满足获取更多软件的需求。
相关命令:
1 | #查看官方推荐存储库 |
添加存储库示例:
1 | #安装git(添加存储库即下载Git仓库的存储库,下载功能依赖git) |
常见的bucket有如下:
- main:Scoop默认的官方存储库,包含常见的应用程序和工具。
- extras:官方的补充存储库,包含非标准的应用程序和工具。
- versions:官方存储库的历史版本存档。
- nirsoft:由NirSoft提供的存储库,包含一系列小型Windows实用工具。
- sysinternals:由Microsoft Sysinternals提供的存储库,包含Windows管理和诊断工具。
- php:由PHP社区提供的存储库,包含PHP编程语言及其扩展。
- nerd-fonts:由社区维护的存储库,包含专为程序员设计的字体。
- nonportable:由社区维护的存储库,包含不需要安装即可使用的绿色软件包。
- java:由Java社区提供的存储库,包含Java开发相关的应用程序和工具。
- games:由社区维护的存储库,包含多个游戏相关的应用程序和工具。
更多 Buckets 参见:buckets
¶配置国内存储库
只要国内的git仓库gitcode上有scoop的官方 bucket 镜像存储库,能够用于替换 github 上的 bucket ,这样就不用担心 github 访问的网络问题了。
1 | #替换main存储库 |
¶安装常用软件
1 | scoop install sudo |
¶多线程加速下载
1 | # 安装aria2,加速下载 |
可对 scoop 使用 aria2 的配置参数(可选):
1 | scoop config aria2-retry-wait 4 |
关于以下参数的作用,详见 aria2 的相关资料
¶常见问题
¶scoop 安装 git 问题
scoop 默认安装的 git 默认不会像常规安装那样会在右键菜单里添加 git bash 和 git gui 按钮。如果需要则可以通过修改注册表配置来实现,具体如下:
以管理员身份打开 PowerShell 终端:
1 | ##右键菜单添加 git bash 和 git gui 按钮,只需在注册表增加相关信息即可 |
如果卸载 git 后,或者不想要这两个按钮了则需要手动删除注册表的相关信息,操作如下:
以管理员身份打开 PowerShell 终端:
1 | ##删除右键菜单的 git bash 和 git gui 按钮,只需删除注册表相关信息即可 |
如果想在注册表里查看右键菜单配置,可如下操作:
按 Win + R 组合键,然后输入命令regedit
来打开“注册表编辑器”,在“注册表编辑器”的输入栏里填写路径值计算机\HKEY_CLASSES_ROOT\Directory\Background\shell
进行查找。可通过按 F5 键刷新“注册表编辑器”内容展示。
¶应用缓存数据和注册表问题
常规安装的应用程序都会将运行时的数据、缓存、日志、临时文件等存到C盘的 C:\Users\%username%\AppData
目录下。在 scoop 的管理中,scoop 根据 bucket 里软件安装规则进行处理,规则一般会将这些数据存到%Scoop%\LocalApps\persist
目录里。但bucket也有一些软件没有这样的规则,这样就会按照程序原本的处理进行。
scoop 卸载软件时也是按照bucke里对应软件的卸载配置规则进行处理,如果配置里有删除应用程序运行时产生的数据文件和注册表项的规则,那么就会清理。否则就会按照程序原本的卸载逻辑,有可能清理也有可能不清理,这决定于应用程序本身。
所以说 scoop 在不自动删除应用程序运行时产生的数据文件和注册表项时,但又想完全卸载干净包括数据文件和注册表项等在内的数据,就需要手动或者借助 geek、CCleaner 等工具进行处理,当然 scoop 也支持在应用程序的 bucket 中自行添加或者修改卸载脚本来进行相关处理,但这就需要对应用程序内部数据缓存有所了解,也需要有一定的技术能力。
¶参考
https://www.cnblogs.com/sleepyocean/p/17017084.html
https://dyphire.github.io/undefined/198c7fc6.html