likes
comments
collection
share

Scoop: Windows下的包管理器

作者站长头像
站长
· 阅读数 10

作为程序员,换电脑的时候重新配置环境应该是很痛苦的,尤其是在 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>
转载自:https://juejin.cn/post/7155708362829594632
评论
请登录