当我们谈论起Windows平台软件安装的话题,总是避免不了想起被各种流氓软件和捆绑安装支配的日子。这背后的原因,一方面是软件厂商的流氓,各种强行捆绑而且默认勾选;另一方面是搜索引擎的流氓,搜索软件出来的第一个永远是xx软件园而非官方平台,一个不留神就是各种全家桶伺候。
解决这一软件生态问题的故事自然离不开苹果的应用商店,无论是IOS的App Store还是macOS的Mac App Store。把各种软件的分发和下载规范化,让用户使用上安全稳定的软件,一方面满足用户对于软件的管理需求,一方面也为应用商店增加营收入口。
所谓平台概念,就是如此。当然这一应用商店模式,也拓展到各大操作系统,比如移动端另一大阵营安卓的Google Play及国内本地化的各大应用商城,Windows的Microsoft Store (曾用名Windows Store),以及Linux许多发行版的应用商店等等。
回顾一下软件管理的需求,然后判断当前的软件管理模式是否满足需求(不感兴趣的读者请直接跳过)。
浏览与搜索想要的软件,这背后是足够丰富的软件生态链的支持,即我想要什么基本都可是找到。
锁定版本:为维持软件及其他相关环境的稳定性,更新为非必要需求,或者纯粹不想更新某软件,需要锁定软件版本,防止更新。
用户数据的清理:强迫症患者需求,一般这个功能会交给各种清理软件,但是谁会比软件自己的开发者更了解产生并储存了哪些用户数据呢?更有一些软件因为卸载后的残留问题导致下次安装时的各种问题就属于软件本身的问题了,这里也不多探讨。
软件备份与迁移:当有多设备,或者某次重装系统,需要重新安装各种常用软件是一件头疼的事,所以当前设备软件的导出备份与迁移安装至新设备是一大需求clashwindows版怎么用,特别是对于某些装系统人员或者运维人员。
绝大多数应用商店的目的是盈利,所以什么推送、广告、排名等一系列手段玩得相当成熟。至于真正为用户推送「好」软件,那大概需要某些第三方非盈利平台了。还有如果整个应用商店的设计中心是在推广软件的话,其他方面的功能需求就被稀释或者淡化,甚至造成负体验。
对于已安装软件/应用的管理(查看已安装与卸载),大部分应用商店并不支持,而是把相关需求移交给了系统层级的应用管理,或者直接在桌面/开始菜单/Launchpad里的图标上进行右键管理或者长按操作管理。
高级需求基本都没怎么实现,往往需要通过备份系统镜像的方式曲线救国。手机方面应用云同步相对做的好一些,只是用户数据备份方面还没到应用层(除开相册、日程、通讯录之类)。
Scoop是一款适用于Windows平台的命令行软件(包)管理工具,这里是Github介绍页。简单来说,就是可以通过命令行工具(PowerShell、CMD等)实现软件(包)的安装管理等需求,通过简单的一行代码实现软件的下载、安装、卸载、更新等操作。其灵感来源于macOS的Homebrew,Mac用户可以去了解了解。
当然如果用过Linux系统,使用apt-get工具安装过软件,或者用过Python,知道pip工具用于管理Python各种依赖包,那么理解Scoop就比较容易,这些工具的设计理念与使用方法都非常类似。
Scoop一般用来管理绿色软件,即是一种通过解压压缩包即可就地使用的软件,对于比较专业软件(比如Office、Adobe等)支持不好(虽然有大神在自制这样的第三方仓库,不过好像一直没实现)。
用户在安装软件的时候,一般仅能自定义软件的安装目录(有一些甚至不能自定义),而无权管理软件与用户交互产生的数据的目录,至于第三类数据大家都很熟悉属于用户完全操纵。其中用户无法直接管理的第二类数据一般储存在「AppData」隐藏目录中,强迫症流泪。
而对于Scoop来说,其数据存储逻辑是先划好一块地盘——「Scoop」根目录,然后软件本体一个「apps」目录,用户数据一个「persist」目录。当然实际使用过程中,其实有挺多第三方仓库中的软件没有实现这一逻辑,依然把用户数据藏在「AppData」目录中,这就是需要优化的后话了。
由于一眼就爱上了这么一种软件管理逻辑,所以就一直使用Scoop至今,已有两三年了吧,期间换过不少Windows机子也一直使用着,觉着甚是方便。所以,如今来写篇教程也不过分吧。
下面就是正式的教程时间,我会从前置条件、Scoop的安装、常用的命令工具、推荐软件仓库四个方向介绍主要的用法。
还有两个中国用户需要确认的额外的条件(当然我觉得你能看到这篇文章自然也都满足了):
第一步,也是最重要的一步,就是先完成Scoop工具的安装。按照官方的教程,我们需要打开PowerShell(这个应该不用教了吧,当然我强烈建议使用新一代终端Windows Terminal,标签页、多种命令行工具多开、高颜值、更人性化的文本编辑等等太香了)。
如果你需要更改默认的安装目录,则需要在执行以上命令前添加环境变量的定义,通过执行以下命令完成:
设置Scoop代理。在命令行中输入(PowerShell或者CMD中都行)
(一看就是clash用户)让scoop网络连接走代理,后面的ip地址和端口根据自己的代理设置。
使用Gitee镜像源。可能备份更新得不是那么勤快,以及实际下载软件包同样会有网络问题,所以不推荐。在命令行中输入
(或者更直接点,找到Scoop配置文件,路径,然后直接修改里面的配置,如下图:
Scoop的操作命令十分简单,基本结构是scoop + 动词 + 对象,动词就是一个操作动作,如安装、卸载,对象一般就是软件名了(支持通配符*操作),当然这需要你先打开命令行工具。比如我想安装typora,通过输入scoop install typora即可自动完成软件的官网进入+下载+安装等操作。
如果忘记了,可通过输入scoop help来查询语法,以及更多不怎么常用的操作指导。
在实际使用过程中,我们可以先通过search命令查询一下是否有相应软件,软件名称是否正确,然后通过install命令完成软件的安装。另外,有两个必备的软件需要安装——git和7zip,建议完成Scoop安装后先执行以下命令:scoop install git 7zip(没错,Scoop支持多个软件同时依次安装),虽然后续操作中未安装这两个软件时也会提醒用户安装就是了。
软件仓库是Scoop软件管理的重要基础clashwindows版怎么用,通过json文件记录仓库中每一个软件的信息,从而实现软件的管理等便捷命令行操作,并由仓库管理员(其实开源项目都是大家用爱发电)负责软件信息的更新。
前面提到,默认安装Scoop后仅有main仓库,其中主要是面向程序员的工具,对于一般用户而言并不是那么实用。好在Scoop本身考虑到了这一点,添加了面向一般用户的软件仓库extras,其中收录大量好用的小软件,足够日常的使用。
此外,Scoop官方还有一些仓库可供使用,本人没有什么需求就不在此处介绍了,仅贴一下官方的介绍:
除了官方的软件仓库,Scoop也支持用户自建仓库并共享,于是又有很多大佬提供了许多好用的软件仓库。这里强推dorado仓库,里面有许多适合中国用户的软件,或者你有兴趣可以去看看仓库作者关于Scoop更多技术方面的探讨。添加dorado仓库的命令如下:scoop bucket add dorado 。
此外,若多个仓库间的软件名称冲突,可以通过在软件名前添加仓库名的方式避免冲突,如scoop install dorado/appname。
最好的教程肯定是官方文档,所以有需求的读者可以直接访问官方网站。这篇文章也主要不是来写教程的,而是一种产品体验与思考。所以,在文章的最后,我想简单做个竞品分析,说说是什么让我最终一直在使用Scoopclashx for windows。
GUI——Windows 11的Microsoft Store颜值非常高,Chocolatey有一个不怎么好看的GUI,Scoop有第三方GUI。不过实际使用下来发现命令行一行代码的体验也不差,反而清晰明了更加高效,GUI在用户体验方面也不一定是优势。
开源——我可太爱开源软件了,虽然开源软件一般不如商业软件稳定,但是我可以自己提需求甚至自己去改很是舒服。
软件搜索clashwindows版怎么用、安装、更新——需求中基础的基础,不能实现的话也别用了。为了更好地使用最新版的软件,体验稳定的新功能,我可是积极的更新派,但是让我去使用不稳定的beta版本当测试就不是那么愿意了。
回滚版本与锁定版本——并不是那么要紧的需求,但对于某些开发人员来说为了稳定就是非常重要的需求了。
导出与备份——并不是那么要紧的需求,但对于某些人员来说快速安装系统是非常重要的需求。
数据管理与清理——主要就是软件管理逻辑方面的需求了(强迫症需求),除了Scoop其他工具的数据管理一言难尽吧,虽然Scoop许多第三方仓库中的软件也没实现好。
综合而言,Scoop最能满足我的需求——软件生态链基本满足我的需求(大型软件我会另外安装),对于小软件的管理实在方便;理论上备份Scoop中的软件只需要复制整个根目录,然后新系统上安装好Scoop再覆盖掉初始文件即可;有一些小bug,比如安装的软件在控制面板找不着,固定到任务栏有奇怪的双开bug,不过这些实际上对于用户体验影响不大,完全可以接受;另外就算有一些严重影响使用的问题,Github上提交个issue马上就有大佬解决了。
Chocolatey各方面都与Scoop类似,在软件生态和稳定性方面更优。在开源和数据管理方面略输一筹,不能设定安装目录(高级版似乎可以),使用默认安装包逻辑安装稍微有一些劝退。
Winget是一个还没怎么完善的产品,可以肯定Winget启发于Chocolatey或Scoop。但是目前似乎bug还挺多,更新软件后依旧显示未更新的版本是我忍受不了的一个bug,所以虽然系统已经自带,不过我还是没怎么使用。Winget也使用软件默认安装包的逻辑进行安装,对于小众开源软件支持不佳,此外据说甚至会有捆绑安装的现象,属实劝退。当然,winget也有其最大的优势,可以和常规安装的方式共存,通过命令行操作扫描所有已安装软件,且对大众软件的支持最佳。期待后续版本可以做得更好。
Microsoft Store挺好用的,有很多软件我也一直在应用商店下载更新。只是软件生态太差了,好多软件不支持或者更新远比不上同一桌面端软件,期待后续软件生态可以更好,做到类似Mac App Store的程度。
*那么有没有大佬想要构建一个基于Scoop的GUI工具呢?之前找到的那个GUI工具似乎不是那么好用。。。毕竟不是所有人都喜欢使用命令行工具的。