我们都有过这样一种困惑:你明明只是想装个浏览器、一个解压工具,或者一个代码编辑器,却要开始一场奇怪的寻宝游戏。你打开浏览器,小心翼翼地避开那些“高速下载”的按钮,找到藏在角落里的“普通下载”;或者你打开某个软件的官网,才发现它需要你先装另一个包管理器,然后像背咒语一样敲下一行命令——这件事本身,就足够让人困惑了。Windows生态里软件获取方式的碎片化,已经存在了十几年。

说人话就是,跟macOS有一个整齐划一的应用商店不同,Windows这边一直走的是一种更狂野的路子。很多优秀开发者,他们可能根本不会把自己的作品提交到Microsoft Store里去。这背后有历史原因,也有分发策略的考量,但对你来说,产生的结果是一样的:你的电脑上,软件正在从四面八方涌进来。有的来自Scoop,有的来自Chocolatey,有的是你直接下载的安装包,还有的干脆就是一段脚本。它们各自为政,互不认识。

这就像一个图书馆,但每本书都按自己不同的编目规则摆放。你当然能找到你想要的那一本,但每次找书的姿势都可能不太一样。天长日久,你就忘记了到底有哪些书,哪些该更新。直到一个试图当“总图书管理员”的家伙出现——它叫UniGetUI。严格来说,UniGetUI并不是一个应用商店,虽然它已经做得比市面上绝大多数软件管家都像那么回事了。

你可能也好奇过,为什么我们自己的电脑上,光是管软件的工具就要装好几个?从商业逻辑上看,这种碎片化恰恰催生了需求。中国市场上,你能数出一堆软件管家——360软件管家、火绒软件管家、腾讯应用宝。但它们背后往往绑定了各自的商业利益,或者,它们只能管自己安装的那部分软件。你用它装了一个,卸载时发现根本摸不着另一个来源的软件,这种体验本身就带着一种不够彻底的遗憾。

UniGetUI试图解决的,就是这个“不够彻底”。它没有妄图自己做一个新的包管理器,而是选择了一个更聪明的路径:当所有主流包管理器的“翻译官”和“整合界面”。你可以把它理解成,在你的电脑里,原本住着好几个操着不同方言的管家,有的叫winget,这是Windows近年来主推的;有的叫Scoop和Chocolatey,是Windows用户圈子里的老资格了;还有服务于编程用户的npm、pip、cargo和vcpkg。UniGetUI所做的,就是给你打造了一个统一的客厅,把这些管家都请过来,给他们每人发了一个可以和你用同一种语言对话的权力。

支撑这个“权力”的,是它足够宽广的覆盖网络。得益于对winget的默认支持,任何一个Windows 10或Windows 11用户,打开它就能看见一批基础软件。而一旦你在设置里,把Scoop或Chocolatey的开关打开,这个候选池就会急剧膨胀。按照使用者的说法,这些包管理器的上游来源组合在一起之后,你电脑上大约90%的日常软件在这里应该都可以找得到。这个数字不一定精确到个位数,但它传达了一个很直接的信号:你再也不用为了找一个软件,在搜索引擎里和那些伪装得很像“下载”的广告按钮搏斗了。

你只需要打开它的“发现软件包”界面,输入名字,就像在任何一个正常的应用商店里做的那样。点进去,描述信息、版本号这些关键信息都在,你可以判断它是不是自己需要的那一个。如果你发现自己的搜索结果不够多,那通常不是因为它真的没有,而是因为你的电脑上还没装对应的包管理器。它原则上不去凭空造软件,只是忠实地反映出你当前拥有的“软件源”里,有哪些可以安装。

装软件这件事本身,或许只占用你使用电脑时间的1%。剩下的99%时间里,真正的挑战在于“保持状态”。软件作者们勤奋地修Bug、更新功能,而你的电脑里却悄悄积攒了一批“老版本钉子户”。以前,这件事的维护成本很高,你得点开一个个软件去检查更新,或者等它们自己某个时刻突然弹出一个更新框。

UniGetUI的处理方式,是把这种分散的焦虑收拢在一个地方。它左侧菜单里的更新功能,会主动帮你扫描所有受它管辖的软件版本。那些需要更新的,会整齐地列出来,你可以根据自己的节奏,选择一次性全部升上去,或者只更新某一个。后面那个底部的队列窗口,清清楚楚地告诉你当前的进度,你甚至可以修改并发处理速度。这背后是一种产品逻辑上的转变:你不是在伺候一堆零散的软件,而是在管理一个叫做“我的软件环境”的整体。你用更少的精力,就能确保它们都是最新的,这减少的不是操作步骤,而是那种“总觉得有什么忘了”的认知负担。

除了个人维护上的爽快,UniGetUI还提供了一个非常有想象空间的功能:制作软件捆绑包。什么意思呢?就像你出门旅行,会有一个固定的物品清单;你配置电脑时,其实也有一组必装的软件组合。这个功能,就是让你把自己那套固定的“软件套餐”打包成一个Bundle文件。

这个东西的妙处,不在于打包本身,而在于复现。对于有固定使用习惯的人来说,你完全可以维护这么一套Bundle。下次你重装系统,或者拿到一台新电脑,不需要再对着一个空白系统,从零开始回忆“我到底装过哪些好东西”。一个软件捆绑包丢过去,它就能帮你把环境恢复到你最舒服的状态。更进一步,你甚至可以为不同的场景创建不同的组合,比如一套给修图用,一套给写作用,再给家人做一套他们用来炒股看剧的组合。

把眼光再往外放一点,这已经隐隐触及了团队管理和业务交付的需求。它还支持导出一个纯粹的PowerShell脚本。这个脚本一旦生成,就和UniGetUI本身解绑了。这意味着什么呢?如果你要把一套软件配置交付给一个完全不想折腾新工具的同事或客户,你可以直接把这个脚本给对方。对方甚至不需要先安装UniGetUI,跑了脚本,软件就装上了。这种降低交付门槛的设计,透着一种特别的实用性——它让“配置环境”这件事,从一个人孤独的准备工作,变成了一项可以被传递、被复用的资产。

当然,我们得诚实地承认,UniGetUI目前还不是那个终极的解决者。它的本质,决定了它永远只是在打理你电脑里已有的那几个包管理器。有些小众到没有进入任何包管理器的软件,你还是得回到官网去下载。它的界面,对于完全没接触过包管理器概念的新用户来说,也需要一点点理解成本。但这并不妨碍它代表了Windows软件管理生态里一个很有趣的整合方向——它不试图重新发明轮子,它只试图给所有的轮子装上统一的遥控器。

这件事本身没那么神奇,真正神奇的是,当你把所有零散的包管理能力汇聚到一个简单的图形界面里时,那种“我的电脑终于是一个整体了”的控制感,就这么自然地回来了。