上篇文章介绍了在各个系统平台中使用包管理的工具,说到使用包管理的好处很多,可以更大进度的提高生产效率和工具管控。不过呢,因为我这个号是订阅号,每天只能发送一篇文章,文章质量只能说是赶工之作。这个文章系列可能产出多篇,我会介绍一套完整的软件管理方案。
Scoop 的软件安装在了哪儿里?
在上一篇文章中,简单的介绍了 Scoop 的安装步骤,今天就来详细的拆解一下。
# 设置当前可执行的权限,跳过签名认证Set-ExecutionPolicy RemoteSigned -scope CurrentUser# 全局变量定位到 D 盘的 scoop 文件夹$env:SCOOP='D:scoop'# 为当前 User 创建一个 SCOOP 的全局变量[environment]::setEnvironmentVariable('SCOOP',$env:SCOOP,'User')
以上的命令执行完成之后,会在用户的环境变量创建一个 SCOOP 的全局变量,我们可以在当前管理员的操作权限之下在任何目录中获取这个变量。直接通过命令来验证一下:

我们执行上面的目录就是为了自定义到自己软件安装目录,默认情况下 Scoop 安装到 C 盘 Scoop 目录下,但是 C 盘中存放的是系统盘,为了保证 C 盘的纯净,我建议安装到其他盘。
接着往下走:
# 这个命令就是安装 scoop 的命令iwr -useb get.scoop.sh | iex# 检测是否安装成功,如果提示命令找不到说明没有安装成功,或者环境变量没有配置成功,请重复上面的步骤。scoop version# 如果提示了相应的源版本信息,则代表安装配置都成功# 接下来就是安装一个解压软件 7zip,为什么要安装这个软件呢?# 因为 scoop 有的时候从提供商拿到的可执行文件是压缩文件,在你执行安装命令的时候需要进行解压操作,所以安装 7zip 是必备的。scoop install 7zip# git 也是必须安装的,因为很多软件是开源的项目,没有专门维护公司官网,则是通过 git clone 的方式来进行下载包的。scoop install git
安装完成之后,打开之前设置的安装目录 D:scoop:

从这里我们可以看到,scoop 的整个目录结构,接下来介绍不同文件目录的作用:
- apps 我们所有安装的软件都会在这个目录下面通过上面可以看到,我安装的所有的软件列表。
- buckets 这个是软件的提供源,多个源可以帮助我们获取更加丰富的包上面我们提到过的 extras 最全的一个源,覆盖了日常生活中用到的绝大多数软件!比如 qq!
- cache 缓存目录这个文件中存放是的是从提供商哪里拿到的可执行文件或者压缩文件的备份。
通过拆解每个命令的步骤、scoop 的目录结构,我们就详细的了解到了软件装在了哪里,下次使用的时候就会变的一目了然。
Scoop 如何精准的定位到软件的官网的呢?
要想搞清楚这个问题,接下来我就以 git 为小白鼠,去解刨他的文件构造!
搞清楚 git 是从哪个源来的,也就是上面的 buckets 目录中的源。
# 直接打开 git 的官方网站scoop home git# 定位 gitscoop search git

在这里我看到他是在 main bucket 里面,这样在打开 D:scoopbucketsmain 目录打开 bucket 目录。
在这个目录中一共有将近 700 个 json 文件,每个文件都对应着一个软件名称,找到 git.json 并打卡:

这个 JSON 文件中包含了几乎所有设计到的所有参数,提取出我们最想要看到的东西就是 architecture -> 64bit -> url 这个就是 exe 执行文件的链接地址。
在你执行 scoop install git 命令的时候,他已经给你判定好了你当前的机器是 64 位的还是 32 位的,并不需要你手动的去选择。以及相应的依附软件、官网地址、协议、版本号、图标等等这里都已经配置好了。
总结一下:
执行 scoop install git 命令之后发生的事情
- scoop 本地现有源去找相应的配置文件,如果没有则到网络上去找
- 找到 包.json 文件之后,根据配置下载相应的版本包,现在完成之后放入 cache 目录下
- 再通过 7zip 解压,安装到 apps 的目录结构下面去
基本的思路就是这样的,有了这个思路之后,接下来就可以自己做一些事情了。
搭建自己的 bucket
解决两个问题
- 可以把自定义软件来源吗?
答:可以,你自己的软件也可以被收录。
- 为什么要搭建自己的 buckets?
答:大部分的 buckets 都在国外,速度会异常的慢,如果你需要经常安装一些特定的软件,又不想被网速击败的话,那你一定需要!
官方文档
下面是一个示例,其中一种方法可能是使用 GitHub 来托管新 bucket。不过,您不必使用 GitHub — 您可以使用任何您喜欢的源代码管理存储库,甚至只能在本地或网络驱动器上使用 Git 存储库。
- 创建新的 GitHub 存储库,例如my-bucket
- 将应用添加到 bucket 中。在 PowerShell 中:
git clone https://github.com//my-bucketcd my-bucket'{ version: "1.0", url: "https://gist.github.com/lukesampson/6446238/raw/hello.ps1", bin: "hello.ps1" }' > hello.jsongit add .git commit -m "add hello app"git push
- 将勺子配置为使用新 bucket:
scoop bucket add my-bucket https://github.com//my-bucket
- 检查其工作原理:
scoop bucket list # -> you should see 'my-bucket'scoop search hello # -> you should see hello listed under, 'my-bucket bucket:'scoop install hellohello # -> you should see 'Hello, !'
- 要共享 bucket,只需告诉人们如何添加 bucket,即通过在步骤 3 中运行该命令。如果希望将 bucket 列在Scoop 目录"中,请向其 github 页添加主题。scoop-bucket
注:的是以上这种方式仅仅使用编写 ps1 文件,ps1 文件就是 powershell 的编程文件。
PHP/Golang/Linux, 知乎/哔哩哔哩/头条同名搜索 UltraEfficent