作为程序员,换电脑的时分重新装备环境应该是很苦楚的,尤其是在 Windows 上,需求拜访一堆网站,下载装置程序,然后点击GUI向导的装置程序装置。

尤其是用过 homebrew 或者 apt-get 之后,期望有一种更简略的方法来告知开发人员如何装置程序。

Scoop 是个不错的选择。

Scoop: Windows下的包管理器

Scoop 是一个 Windows 下的指令行下载东西。

Scoop 能做什么?

Scoop 能以最小的代价从指令行装置程序。它能

  • 消除权限弹出窗口

  • 躲藏 GUI 向导款式的装置程序

  • 避免 PATH 污染装置很多程序

  • 避免装置和卸载程序的意外副作用

  • 自动查找并装置依靠项

  • 自行履行一切额定的设置步骤以取得工作程序

Scoop 能让程序员留在指令行上,提高效率,而且扩展了 PowerShell,能够运用能够很好处理文本的程序。

装置 Scoop

从非管理员 PowerShell 运转以下指令,将 scoop 装置到其默许方位。 C:\Users\<YOUR USERNAME>\scoop

iwr -useb get.scoop.sh | iex

先决条件

启用 PowerShell 的履行战略

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

高档装置

假如要进行高档装置,能够下载装置程序并运用参数手动履行它。

irm get.scoop.sh -outfile 'install.ps1'

这里能够查看装置程序的一切可装备参数。

.\install.ps1 -?

例如,将 scoop 装置到自定义目录,将 scoop 装备为将全局程序装置到自定义目录,并在装置时绕过体系代理。

.\install.ps1 -ScoopDir 'D:\Scoop' -ScoopGlobalDir 'F:\GlobalScoopApps' -NoProxy

认识 Scoop

Scoop 装置完结后,能够运用 scoop help 获取帮助信息,能够发现 Scoop 有很多指令选项。

Scoop: Windows下的包管理器

简洁易懂,例如,下载一个运用程序 7zip

scoop install 7zip

只需求静静等候装置完结即可,完结装置或许需求重启终端,Scoop 会自动完结环境变量的装备,即可运用。

那 Scoop 是怎么完结环境变量的装备的呢,咱们翻开体系环境变量 PATH ,能够发现 Scoop 增加了一个 <-ScoopDir>/shims 变量,翻开 Scoop 装置途径下的 shims 能够发现目录下有装置软件的可履行文件和同名的 .shim 文件,.shim 里的内容指向实际程序途径。

卸载程序也很简略

scoop uninstall 7zip

假如需求升级运用程序或者 Scoop 自身,只需求运用 scoop update 指令,详细信息能够加上参数 --help 获取。

Scoop: Windows下的包管理器

装置运用

大约了解了 Scoop 的运用,就能够装置运用了。可是在这之前,咱们还需求了解一下 Scoop 的存储桶机制,Scoop 运用存储桶来存储运用。

存储桶

以下是 Scoop 已知的存储桶:

  • main – 最常见(主要是CLI)运用的默许存储桶

  • extras – 不符合主存储桶条件的运用

  • games – 开源/免费软件游戏和游戏相关东西

  • nerd-fonts – 字体

  • nirsoft – Nirsoft 的几乎一切250多个运用程序

  • java – Java 开发东西包 (JDK)、Java 运转时引擎 (JRE)、Java 的虚拟机调试东西和基于 Java 的运转时引擎的集合。

  • nonportable – 非便携式运用(或许需求 UAC)

  • php – 大多数版本的 PHP 的装置程序

  • versions – 在其他存储桶中找到的运用程序的替代版本

默许情况下会装置主存储桶。要增加任何其他存储桶,能够自行增加

scoop bucket add bucketname

例如,要增加附加存储桶,请键入:

scoop bucket add extras

Github上托管的许多其他运用程序存储桶能够在Scoop 目录或其他搜索引擎中找到。

必备运用

这里是个人主张,非常好用的运用

  • main/sudo: 模仿 UNIX 环境下 sudo 指令,在指令前运用 sudo 指令会弹出提升至管理员权限的窗口。

  • main/touch: 相同是模仿 UNIX 环境下的 touch 指令

  • main/aria2: 运用多连接下载

默许情况下,在运转时或启用时显现正告。能够经过运转指令来抑制此正告。

scoop config aria2-warning-enabled false

常用软件

像是 git, vscode 这样的软件都能够经过 Scoop 装置,推荐运用这个网站:Scoop,能够找到大部分开发软件所在的存储桶,装置指令能够直接复制到指令行。

Scoop: Windows下的包管理器

Scoop 能够装置什么样的运用程序?

运用 Scoop 装置最好的运用程序一般被称为“便携式”运用程序:即压缩的程序文件,它们在提取时独立运转,并且没有副作用,例如更改注册表或将文件放在程序目录之外。

由于装置程序很常见,因此 Scoop 也支持它们(及其卸载程序)。

可是关于 TIM,腾讯会议之类的运用,或许 Scoop 支持的不多,就得去官网下载了。

Scoop: Windows下的包管理器

社区存储桶的 star 数或许能做个参阅,数量太少很简单失效,毕竟是个人维护,主张运用尽量运用官方的存储桶。

导出装置的运用

换电脑怎么办?总不能再一个个指令敲进去装置运用吧?别急,Scoop 提供了导出选项,将装置的存储桶和运用悉数导出为装备文件,下次装置的时分直接导入即可。

导出:

scoop export > scoopfile.json

导出的 JSON 文件:

{
    "buckets": [
        {
            "Name": "main",
            "Source": "https://github.com/ScoopInstaller/Main",
            "Updated": {
                "value": "\/Date(1661805004000)\/",
                "DisplayHint": 2,
                "DateTime": "2022年8月30日 4:30:04"
            },
            "Manifests": 1072
        },
        {
            "Name": "versions",
            "Source": "https://github.com/ScoopInstaller/Versions",
            "Updated": {
                "value": "\/Date(1662064635000)\/",
                "DisplayHint": 2,
                "DateTime": "2022年9月2日 4:37:15"
            },
            "Manifests": 354
        },
        ...
    ],
    "apps": [
        {
            "Info": "",
            "Source": "main",
            "Name": "7zip",
            "Version": "22.01",
            "Updated": "\/Date(1659095893850)\/"
        },
        {
            "Info": "",
            "Source": "main",
            "Name": "aria2",
            "Version": "1.36.0-1",
            "Updated": "\/Date(1657286226200)\/"
        },
        ...
    ]
}

导入相同简略

scoop import <path/url to scoopfile.json>