Scoop - 当Windows遇上包管理器

包管理器是什么东西?

Unix系的系统最为诱人也最为烦人的地方,就是通过几条命令行去安装软件,这难免给初次接触Linux的用户,感觉到不适应。

apt install python

这背后工作地就是包管理器(Package Manager)。另外还有一样东西大家会更为熟悉,Linux各大发行版、OS X、iOS、Android里面的应用市场。它其实是给包管理器套了一层GUI,让其是用起来更友好。

应用市场,简直是安装软件的福音,其一站式的检索、查找、安装,并且所安装的软件来源明确、依赖关系清晰,相比较于Windows安装软件的过程中,可能遇到植入病毒、广告推荐、绑定流氓软件等等,简直不能太清爽。

Windows也可以拥有

其实Windows也有类似包管理器的应用,包括Windows自家的Windows Store。微软同样希望能够将Windows软件生态变得更为规范,奈何生态圈发展尚未成熟,应用市场里面更多的是UMP应用,少量新生的软件或大牌软件才会上架Windows Store。

而最广为认知的第三方包管理器应该是Chocolatey,奈何一点都不友善亲民。

在后来我发现了Scoop,由于它开源的特性,开源社区里的每个人都可以为它的软件库提供扩充,让它拥有许多的Bucket(相当于软件源),资源可谓相当丰富。

通过简单的命令即可以定义路径以及进行安装,在Powershell中运行一下命令:

[environment]::setEnvironmentVariable('SCOOP','D:\Applications\Scoop','User')
$env:SCOOP='D:\Applications\Scoop'
[environment]::setEnvironmentVariable('SCOOP_GLOBAL','F:\GlobalScoopApps','Machine')
$env:SCOOP_GLOBAL='D:\Applications\GlobalScoop'
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

它的原理其实相当于通过shell脚本,帮你自动完成下载安装包、解压、添加环境变量、添加快捷方式等几个步骤。

尤为方便的地方在于,它利用了shim的特性,能够快速方便的安装、卸载一个软件。这简直是在Windows下安装部署开发环境的福音。

scoop  install nodejs
scoop uninstall nodejs

建立自己的Buckets和Apps

它的底层是利用了Git去更新/添加Buckets,因此可以自己建一个github仓库,作为自己专属buckets。社区上也有许多人的buckets可以使用,详见官方索引

在安装方面,它利用了7zip去解压安装包/压缩包,因此它对绿色软件有天生的友好属性。大家都可以自己尝试为一些免安装软件建立软件源(需要安装的软件比较复杂,需要一定门槛)。例如,网易云音乐的App-Manifests:

{
	"homepage": "https://github.com/sunzongzheng/music",
	"description": "网易云音乐客户端.",
	"version": "2.5.2.197037",
	"license": "Freeware",
	"url": "https://d1.music.126.net/dmusic/cloudmusicsetup_2.5.2.197037.exe#/dl.7z",
	"hash": "836A561E53301C727766C580C46F32E06C9EDC808A4349DAA47FF8B58F99127D",
	"bin": "cloudmusic.exe",
	"shortcuts": [
		[
			"cloudmusic.exe",
			"cloudmusic"
		]
    ]	
}   

用过就戒不掉

虽然使用scoop需要记一些命令行,但是当你安装一个软件的体验:从“搜索网页、识别广告、下载安装包、选择安装路径、取消勾选绑定、完成安装”,转变了“输入一条命令行”。这种感觉,用过了戒不掉!

2 个赞

和 Chocolatey 有什么不一样吗(虽然两个我都没有用过:see_no_evil:

我觉得win用户其实更适合类似symenu

用了好久了,很方便,但也并不完美。肯折腾还是可以用的。
和 Chocolatey 各有优劣。不过我用的很少,也评价不出啥来

比起安装已知的软件,平时更多的是尝试新的软件,翻官网还是少不了

卸载软件的时候可以卸载干净吗 :joy:

清理注册表,删除残留文件夹之类的。

这个主要还是安装各种基础软件吧,比如各种开发运行环境之类,便于安装、卸载、升级、自动添加系统变量什么的。

装了半年没用过一次,这玩意主要是以可以统一管理应用,都装到appdata里,但大多数时候我觉得windows下的桌面应用是不适合这种统一化的管理的。也就自动化配置一些命令行工具比较方便。

呵呵哒,对于不是汉语操作的东西都讨厌。。。。

what do you mean ?

不是汉语操作,是不是汉语界面,不是汉语或者按钮这种命令之外的我都讨厌

(弱弱地说,这两个都是命令行

不过知道你的意思应该是更喜欢汉语的 GUI 界面。

想想给这种东西做个界面也不算太难的事情,有没有必要肯定见仁见智。输出结果也可以汉化后显示,这样挺小白友好的。

但是……这种包管理主要(重点)面向的是各种开发相关的东西,结果一看软件列表,依旧全是英文,这要是翻译过来……

  • 咖啡编程(一种编程语言
  • 大蛇编程(一种编程语言
  • 节点脚本(一种编程语言
  • 纱(一个包管理
  • ……

场面太美,我不敢看

只用Vb.net暂时不需要那些,哈哈

我觉得你可以说你更喜欢汉语、更喜欢GUI的软件,画面没必要这么美

symenu也是可以快速安装许多freeware,不过symenu和portableapps、Librekey更接近。我一开始也是用portableapps,后来转symenu,辗转认识了chocolatey,最后用了scoop。(还是挺波折的)

Chocolatey,不用折腾,省心,资源更丰富,付费可以自定义目录。
Scoop,要折腾,资源依赖社区,自定义程度高。

scoop home xxx 就可打开某个软件官网,非常适合于bucket更新了新软件后打开官网看看介绍

windows下, 也就绿色软件适合这么干.

可以改默认安装路径,非常适合管理不太重的应用。一条命令行更新,安装,删除。更新完后自动将生成的开始菜单快捷方式链接到最新版本的软件上。我现在里面已经安装了107个软件,8GB的内容。