一款Windows平台开发管理神器

发布时间 2023-08-10 20:11:35作者: 萍水真相逢

今天为大家推荐一款Windows平台开发管理神器--Scoop ! 她是一款Windows平台的包管理工具,类似于Debin系列的APT,RPM系列的YUM。有了Scoop妈妈再也不用担心重装系统了!

安装要求

  • Windows7 SP1+ / Windows Server 2008+
  • PowerShell 5(或更高版本,包括 PowerShell Core)和 .NET Framework 4.5(或更高版本)
  • Windows 用户名为英文(Windows 用户环境变量中路径值不支持中文字符)
  • 正常、快速的访问 GitHub 并下载资源

如果PowerShell版本低于5则需要升级PowerShell,查看命令如下:

$psversiontable.psversion.major

安装

Scoop 默认使用普通用户权限,其本体和安装的软件默认会放在 %USERPROFILE%\scoop(即 C:\Users\用户名\scoop),使用管理员权限进行全局安装 (-g) 的软件在 C:\ProgramData\scoop。如果有自定安装路径的需求,那么要提前设置好环境变量。

  1. 设置安装路径

    $env:SCOOP='D:\common-tools\scoop'
    
    #普通用户安装路径
    [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
    
    #管理员全局安装路径
    [Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')
    
  2. 设置PowerShell脚本执行权限

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. 安装 Scoop

    iwr -useb get.scoop.sh | iex
    #上面命令会从github上下载,可能下载失败,使用下面命令替换源
    iwr -useb get.glimmer.ltd | iex
    #如果还下载失败请使用以下命令
    iwr -useb https://raw.githubusercontent.com/ScoopInstaller/Scoop/master/bin/install.ps1 | %{$_.Content.replace("github.com","ghproxy.com/https://github.com").replace("raw.githubusercontent.com","ghproxy.com/https://raw.githubusercontent.com")} | iex
    
    

添加源

修改repo,默认是github上的repo,改为国内gitee上的,速度快很多。同时可以添加第三方源,如果是公司内部的可能统一维护一份源,能保证所有人使用的是同一开发库。

#修改repo
scoop config SCOOP_REPO https://gitee.com/scoop-bucket/scoop

#删除原有源
scoop bucket rm main
#添加gitee国内源
scoop bucket add main https://gitee.com/scoop-bucket/main.git
#添加扩展源
scoop bucket add extras https://gitee.com/scoop-bucket/extras.git
#以下仓库包含很多中文软件
scoop bucket add dorado https://gitee.com/scoop-bucket/dorado.git
#字体
scoop bucket add nerd-fonts https://gitee.com/scoop-bucket/nerd-fonts.git
#scoop bucket add versions https://gitee.com/scoop-bucket/versions.git
scoop bucket add backit https://gitee.com/scoop-bucket/backit.git
#更新仓库
scoop update

安装软件

安装软件之前要说明一点,很多软件是从github上下载的,而国内访问github并不稳定,所以可使用镜像代理下载github上的仓库和包。具体如下:

  1. 找到scoop/lib/manifest.ps1中的 Get-Content $path -Raw -Encoding UTF8 | ConvertFrom-Json -ErrorAction Stop
  2. 替换为:$(Get-Content $path -raw -Encoding UTF8).replace("github.com","ghproxy.com/https://github.com").replace("raw.githubusercontent.com","ghproxy.com/https://raw.githubusercontent.com") | ConvertFrom-Json -ErrorAction Stop

scoop可使用aria2加速下载,配置完之后下载如飞,具体配置如下:

#安装aria2
scoop install aria2

# aria2 在 Scoop 中默认开启
scoop config aria2-enabled true
# 关于以下参数的作用,详见aria2的相关资料
scoop config aria2-retry-wait 4
scoop config aria2-split 16
scoop config aria2-max-connection-per-server 16
scoop config aria2-min-split-size 4M

命令

常用命令

scoop help #查看帮助
scoop help <某个命令> # 具体查看某个命令的帮助

scoop install [appname]   # 安装 APP
scoop uinstall [appname]  # 卸载 APP

scoop list  # 列出已安装的 APP
scoop bucket list #列出已订阅的仓库
scoop search # 搜索 APP
scoop status # 检查哪些软件有更新

scoop bucket known #通过此命令列出已知所有 bucket(软件源)
scoop bucket add bucketName #添加某个 bucket

scoop cache rm [appname] # 移除某个app的缓存

安装卸载软件

# 安装之前,通过 search 搜索 APP, 确定软件名称
scoop search  xxx
# 安装 APP
scoop install AppName
# 安装特定版本的 APP;语法 AppName@[version],示例
scoop install git@2.23.0.windows.1
# 卸载 APP
scoop uninstall #卸载 APP

更新软件

scoop update # 更新 Scoop 自身

scoop update appName1 appName2 # 更新某些app

# 更新所有 app (可能需要在apps目录下操作)
scoop update *

# 禁止某程序更新
scoop hold <app>
# 允许某程序更新
scoop unhold <app>

清除缓存与旧版本

# 查看所有以下载的缓存信息
scoop cache show
# 清除指定程序的下载缓存
scoop cache rm <app>
# 清除所有缓存
scoop cache rm *
# 删除某软件的旧版本
scoop cleanup <app>
# 删除全局安装的某软件的旧版本
scoop cleanup <app> -g
# 删除过期的下载缓存
scoop cleanup <app> -k

别名

# 可用操作
scoop alias add|list|rm [<args>]

## 添加别名,格式:
scoop alias add <name> <command> <description>

# 示例:(注意:必须在 Powershell中运行)
scoop alias add st 'scoop status' '检查更新'
# 检查已添加的别名
scoop alias list -v

Name Command      Summary
---- -------      -------
st   scoop status 检查更新

# 测试已添加的别名 st
scoop st

# 另一个示例:
scoop alias add rm 'scoop uninstall $args[0]' '卸载某 app'

在同一程序的不同版本之间切换

scoop reset [app]@[version]

#如
scoop reset idea-ultimate-eap@201.6668.13
scoop reset idea-ultimate-eap@201.6073.9
# 切换到最新版本
scoop reset idea-ultimate-eap

其它命令

# 显示某个app的信息
scoop info <app>

# 在浏览器中打开某app的主页
scoop home <app>

# 比如
scoop home git