一文教你快速打造高效的windows平台开发环境

每一次换工作、每一次换电脑,把自己常用的软件都安装一遍就要浪费很久。有时是半天,有时是几天,总之很费时间,对此深感无奈。既没钱购置Mac,也不想完全使用Linux,于是满世界找解决方案,终于找到了一些线索,密码就在“SCOOP”上。

拿到一台新电脑后,如果你会使用SCOOP,那么你初始化你的工作环境仅仅只需要两步,第一步是安装Scoop,第二步是安装其他软件(支持一键安装)。在这里插入图片描述

一、Scoop是什么?

在这里插入图片描述

Scoop是windows平台上最流行的包管理工具。

1.1 概念

  • APP scoop把可以被scoop安装的软件、程序统称做app,app有它自己的组织结构。如使用zip封装,包含一个清单文件。
  • Buckets 桶就是一些类应用的集合,实际上桶是一个包含特定JSON清单文件的git仓库。

1.2 可以干什么

它可以用最简单的方式协助你快速的安装你需要和喜欢的程序,避免烦人的安装引导、让人不知所措的选项。例如:

# 安装nodejs
scoop install nodejs

# 安装vscode
# 添加扩展库(vscode的包在extras库里)
scoop bucket add extras
# 开始安装vscode
scoop install vscode

# 批量安装应用,这是最惊喜的部分,通过这种方式可以快速批量的安装应用
scoop install sudo
sudo scoop install 7zip git openssh --global
scoop install aria2 curl grep sed less touch
scoop install python ruby go perl

二、Scoop的安装与使用

2.1 scoop的安装

打开PowerShell(要求版本>=5.0),执行以下命令:


# 方法一
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression

# 方法二
iwr -useb get.scoop.sh | iex

scoop默认会被安装到$Env:UserProfile\scoop目录(eg. C:\Users<username>\scoop),如果想要安装到其他目录,则需要再执行以上安装命令之前在powershell中设置环境变量。


# 在当前环境设置变量SCOOP
$env:SCOOP='D:\app\Scoop'

# 将SCOOP添加到用户环境变量中,执行完这个之后在用户的环境变量中可以看到一条记录,如下图

[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')

在这里插入图片描述

使用scoop install来安装软件。

# 安装某个软件至最新版
scoop install <app>

# 安装某个软件至某个版本
scoop install <app>@[version]

使用scoop update来升级scoop和软件。

# 升级scoop,并且更新本地的软件清单
scoop update

# 升级指定的软件至最新版本
scoop udpate <app>

# 升级指定软件至某个版本
scoop update <app>@[version]

# 升级所有已安装的软件到最新版
scoop udpate *

使用scoop reset切换软件版本。

# 将软件切换到0.11.14版本
scoop reset app@0.11.14

# 将软件切换到最新版本
scoop reset app

使用scoop uninstall卸载软件

#卸载软件
scoop uninstall app

#卸载软件的某个版本
scoop uninstall app@version

2.2 使用aria2加速软件下载

scoop可以通过aria2工具同时下载多个软件,无需做额外的配置,只需要先使用scoop安装aria2即可。

# 先使用scoop安装aria2
scoop install aria2

# aria2安装完成后,scoop就可以自动利用aria2进行多连接(并行)下载
scoop install 7zip git curl

当然,使用aria2进行下载的时候,scoop会给出一个警告,可以通过scoop config aria2-warning-enabled false关闭警告。

关于aria2的其他配置项也可以通过scoop config命令进行配置,aria2配置项:

  • aria2-enabled (default: true)
  • aria2-warning-enabled (default: true)
  • aria2-retry-wait (default: 2)
  • aria2-split (default: 5)
  • aria2-max-connection-per-server (default: 5)
  • aria2-min-split-size (default: 5M)
  • aria2-options (default: )

2.3 默认安装目录

Scoop默认把软件安装在~\scoop目录,目录结构如下:
在这里插入图片描述

对于命令行的应用,scoop会在shims目录创建快捷方式,这个快捷方式将会被添加到PATH路径中。对于图形界面应用,scoop将会在开始菜单的Scoop Apps创建快捷方式。

如果在安装时候通过环境变量的方式修改了安装目录,那scoop的安装目录也随之被改变成指定的目录了。

如果我们不想安装在~/scoop这个目录(或自定义安装目录),还可以通过以下方式修改目录。

# 设置scoop的主目录即安装目录,默认在$Env:UserProfile\scoop目录
scoop config root_path <path>

# 设置scoop 全局安装app的目录,默认在$Env:ProgramData\scoop目录
scoop config global_path <path>

# 设置缓存目录,默认在scoop根目录的cache
scoop config cache_path <path>

2.5 如何搜索软件

在scoop中搜索软件很简单,只需要使用scoop search <software name>进行搜索即可。
如果在已经添加的桶中无法找到对应的软件,还是可以尝试通过Scoop官方其他搜索引擎去搜索。
在这里插入图片描述

2.6 配置的查看与设置

scoop配置存储在~/.config/scoop/config.json文件中,可以使用scoop config命令进行查看与操作。

# 查看所有配置项,即列出config.json文件的内容
scoop config

# 查看指定配置项
scoop config <config name>

# 设置指定配置项
scoop config <config name> <value>

# 删除指定配置项
scoop config rm <config name>

2.7 命令列表

scoop的命令虽然不多,但也有几十个。可以使用scoop help查看命令列表,使用scoop help <command>查看具体命令的帮助文档。

  • alias 对命令别名进行处理,能为scoop命令创建别名,简化操作
  • bucket 对桶进行管理
  • cache 显示或者清楚缓存
  • cat 显示JSON清单文件的内容,如果允许查看,使用bat的能用更友好的格式查看
  • checkup 检查是否存在潜在的问题
  • cleanup 清理不再需要的旧版本应用
  • config 获取或设置配置值
  • create 创建自定义应用清单
  • depends 列出应用的依赖项,按安装顺序列出
  • download 下载应用并验证哈希值
  • export 将已安装的应用、桶(以及可选的配置)导出为JSON格式
  • help 显示命令的帮助信息
  • hold 暂停应用以禁用更新
  • home 打开应用主页
  • import 从JSON格式的Scoopfile中导入应用、桶和配置
  • info 显示应用详情
  • install 安装应用
  • list 列出已安装的应用
  • prefix 返回指定应用的路径
  • reset 重置应用以解决冲突
  • search 搜索可用的应用
  • shim 操作Scoop的shims
  • status 显示状态并检查新应用版本
  • unhold 取消暂停应用以启用更新
  • uninstall 卸载应用
  • update 更新应用或Scoop本身
  • virustotal 在virustotal.com上查找应用的哈希或URL
  • which 定位shim/可执行文件(类似于Linux上的’which’命令)

三、如何构建自己的软件包

如果你想构建一个适用于scoop管理软件包,也很简单。只需要把软件包压缩成一个zip文件,在zip文件中提供一个JSON格式的清单文件去告诉scoop如何安装即可。

清单文件参考:

{
    "version": "1.6.4",
    "description": "GIF encoder based on libimagequant (pngquant).",
    "homepage": "https://gif.ski",
    "license": "AGPL-3.0-or-later",
    "url": "https://gif.ski/gifski-1.6.4.zip",
    "hash": "dc97c92c9685742c4cf3de59ae12bcfcfa6ee08d97dfea26ea88728a388440cb",
    "pre_install": "if (!(Test-Path '$dir\config')) { New-Item '$dir\config' }",
    "bin": "gifski.exe",
    "checkver": "For Windows.*?gifski-([\d.]+)\.zip",
    "autoupdate": {
        "url": "https://gif.ski/gifski-$version.zip"
    }
}

其实很简单,就是按指定的规则写一个json文件,一个json文件对应一个app。我们可以看到这个json文件中包括版本、说明、主页、下载地址、哈希、安装脚本、主文件、版本校验规则、升级地址。

json文件中指定的软件包或升级包可以放到本仓库也可以放到其他仓库,这个可以根据实际情况确定,只需要提供一个可下载的地址即可。

四、如何打造自己的桶

不是提桶跑路,而是提桶入职! Not running, but hardworking!

桶(buckets)的一些主要操作

# 添加某个桶,如果在已知桶列表则不需要指定repo url,如果不在则需要指定。
scoop bucket add <bucket name> [<repo url>]

# 查看已知的桶,记录了桶名和仓库地址,即https://github.com/ScoopInstaller/Scoop/blob/master/buckets.json中的桶
scoop bucket known

# 查看已安装的桶,不包括主桶
scoop bucket list

# 移除某个桶
scoop bucket rm <bucket name>

4.1 定制一个属于自己的桶

  1. 克隆BucketTemplate仓库。
  2. 在bin/auto-pr.ps1文件中修改桶的名字
    在这里插入图片描述
    在这里插入图片描述
  3. 按需配置应用清单json
    在这里插入图片描述
    在这里插入图片描述

Easy-Bucket是我自己做的一个桶,大家如果有兴趣的话,我们可以一起交流。

使用方法:

# 添加桶
scoop add easy https://gitee.com/fatex_top/easy-bucket-4scoop
# 安装软件
scoop install oepnjdk8

这个桶的软件下载路径我现在都是放的官网的,有些国外的软件可能就不是很合适了,后续应该是会考虑迁移一下。除了放到gitee之外,没有想到其他既省钱,又安全的方案。大家有好的方案也可以评论区告诉一下我。

五、常用的一些应用桶(buckets)

5.1 已知的一些桶

这些桶是被官方认可,并且已经收录到桶列表中的桶。一般而言都是经过审核,比较稳定、安全的桶。

  • main - 主桶,包含一些无UI的应用。
  • extras - 扩展桶,不适合放在主桶中的应用程序,参考标准
  • games - 游戏桶,一些开源、免费游戏和视频相关工具。
  • nerd-fonts - Nerd 字体桶。
  • nirsoft - Nirsoft公司桶,来自Nirsoft公司开发的软件,有超过250+的应用。
  • sysinternals - 微软内置套件桶, 参考
  • java - Java桶,包含JRE、JDK等开发组件。
  • nonportable - 非免便携安装的应用桶。
  • php - PHP桶。
  • versions - 替代桶,找寻替代工具的桶。

在以上桶中找不到想用的软件,也可以尝试一下从Scoop官方搜索 或通过 其他搜索引擎

六、参考

官方文档:https://github.com/ScoopInstaller/Scoop/wiki

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非特笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值