Scoop

来自Wikioe
跳到导航 跳到搜索


关于

Scoop:Windows 系统的包管理工具。

Scoop 将软件安装到一个相对隔离的环境下(Each program you install is isolated and independent),从而保证环境的统一和路径不被污染。


类比于:Homebrew(macOS)

要求:

  1. Windows 7 SP1+ / Windows Server 2008
  2. PowerShell 5+(include PowerShell Core and .NET Framework 4.5)
  3. 能正常访问 GitHub 并下载上面的资源
  4. 用户环境变量的路径中无中文字符(用户名为英文)

安装

如果要将 Scoop 安装在自定义位置(默认位置:“C:\Users\<user>\scoop”),需要先设置环境变量(用于设置安装位置)。

安装

  1. 在 PowerShell 中打开远程权限:
    Set-ExecutionPolicy RemoteSigned -scope CurrentUser
    
  2. 安装 Scoop:
    Scoop:安装成功.png
    iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
    或
    iwr -useb get.scoop.sh | iex
    
  • 安装问题:使用“1”个参数调用“DownloadString”时发生异常:“未能解析此远程名称: 'raw.githubusercontent.com'”
    Scoop:安装问题.png Scoop:安装问题2.png
    1. 到“https://www.ipaddress.com/”查看“http://raw.githubusercontent.com”的解析地址;
    2. 将解析的 IP 添加到 hosts(C:\Windows\System32\drivers\etc\)中,如:
      185.199.108.133 raw.githubusercontent.com
      185.199.109.133 raw.githubusercontent.com
      185.199.110.133 raw.githubusercontent.com
      185.199.111.133 raw.githubusercontent.com
      
    3. 继续执行安装命令。
  • 注:Scoop 支持利用 aria2 进行多线程下载。所以可先下载 aria2(“scoop install aria2”),之后所有的下载任务就均可以调用 aria2 多线程下载来提高速度了。

卸载

scoop uninstall scoop


环境变量

配置环境变量,用于设置 Scoop 的安装位置(Scoop位置用户程序位置全局程序位置

环境变量:

  1. SCOOP
    # 添加:变量(“SCOOP”),值($env:SCOOP 内容),到“用户变量”
    $env:SCOOP='D:\Scoop'
    [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
    
    • 用于:Scoop位置、用户程序位置。
    • 默认:“C:\User\<Your Username>\scoop”。
  2. SCOOP_GLOBAL:(需要管理员权限)
    # 添加:变量(“SCOOP_GLOBAL”),值($env:SCOOP_GLOBAL 内容),到“系统变量”
    $env:SCOOP_GLOBAL='D:\Scoop\apps_global'
    [Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')
    
    • 用于:全局程序位置。
    • 默认:“C:\ProgramData\scoop”。


文件夹结构

环境变量“SCOOP”中的文件夹。

文件夹:

  1. shims”:存放软链接;
    • scoop 会自动在该文件夹下为新安装的程序添加对应的 .exe 文件,所以程序一旦安装就可以直接在命令行中运行。
  2. apps”:存放已安装的软件;
  3. buckets”:存放添加的软件仓库;

相关命令

  1. 基础命令
    # scoop 帮助信息
    scoop help
    # 命令帮助信息
    scoop help <command>
    
    # 诊断测试:(执行一系列诊断测试,以确定 Scoop 的问题)
    scoop checkup
    
    # 命令别名:添加
    scoop alias add <alia> <command> <description>
    # 命令别名:删除
    scoop alias rm <alia>
    # 命令别名:列表
    scoop alias list <alia>
    # 命令别名:检查
    scoop alias list -v
    
    示例:
    # 为“status”添加别名“st”
    scoop alias add st 'scoop status' '检查更新'
    # 测试已添加的别名 st
    scoop st
    
  2. 软件相关
    # 查看已安装程序
    scoop list
    # 搜索软件
    scoop search <app_name>
    
    # 安装软件
    scoop install <app_name>
    # 安装软件(到 global 目录)
    scoop install -g <app_name>
    # 安装软件(特定版本)
    scoop install <app_name><version>
    
    # 卸载软件
    scoop uninstall <app_name>
    
    # 查看软件状态
    scoop status <app_name>
    # 查看软件详情
    scoop info <app_name>
    # 打开软件主页
    scoop home <app_name>
    
    • 安装指定仓库的软件:
      scoop install <bucket_name>/<app_name>
      
    • 切换软件版本:(该版本必须已下载安装到本地)
      # 切换软件版本(到对应版本)
      scoop reset <app_name><version>
      # 切换软件版本(到最新)
      scoop reset <app_name>
      
    • <version> 可以仅写“大版本号”。如:“openjdk10”、“python27”。
  3. 更新相关
    # 查看所有可用更新
    scoop status
    
    # 更新 Scoop 自身
    scoop update
    # 更新所有 app(需在apps目录下操作)
    scoop update *  
    
    # 更新软件
    scoop update <app_name1> [<app_name2> <app_name3> ...]
    # 禁止程序更新
    scoop hold <app_name>
    # 允许程序更新
    scoop unhold <app_name>
    
  4. 缓存与旧版本:
    # 查看:所有已下载的缓存信息
    scoop cache show
    
    # 清除所有缓存
    scoop cache rm *
    # 清除软件缓存
    scoop cache rm <app_name>
    
    # 删除软件旧版本
    scoop cleanup <app_name>
    # 删除软件旧版本(全局安装的)
    scoop cleanup <app_name> -g
    # 删除过期的下载缓存
    scoop cleanup <app_name> -k
    
  5. 仓库相关
    # 查看官方推荐仓库(bucket):
    scoop bucket known
    
    # 添加仓库:(官方)
    scoop bucket add <bucket_name>
    # 添加仓库:(第三方)
    scoop bucket add <bucket_name> <bucket_address>
    
    # 移除仓库:
    scoop bucket rm
    
    # 仓库列表(已添加):
    scoop bucket list
    

官方仓库

  • main
  • extras
  • games
  • nerd-fonts
  • nirsoft
  • Java
  • jetbrains
  • nonportable
  • php
  • versions