包管理器是什么东西?
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可以使用,详见官方索引。
- Extras - 官方的额外软件源
- nerd-fonts - 非常优秀的字体源
- scoop-ques - 小弟自己维护的一个软件源
在安装方面,它利用了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需要记一些命令行,但是当你安装一个软件的体验:从“搜索网页、识别广告、下载安装包、选择安装路径、取消勾选绑定、完成安装”,转变了“输入一条命令行”。这种感觉,用过了戒不掉!