Windows包管理工具 之 Scoop

4,103 阅读3分钟

介绍

scoop 官⽅: scoop.sh/源码: github.com/lukesampson…,这 个是Windows下的包管理⼯具,不单包括开发环境,还包括很多开源的⼯具。

安装

安装条件

  1. Powershell版本3以上,查看Powershell版本的⽅法
$PSVersionTable.PSVersion.Major 

.NET Framework 4.5 以上,查看.NET Framework 版本的⽅法

$PSVersionTable.CLRVersion.Major 

Powershell 下直接安装

默认安装

set-executionpolicy remotesigned -scope currentuser  
iex (new-object net.webclient).downloadstring('https://get.scoop.sh') 

指定⽬录安装

[environment]::setEnvironmentVariable('SCOOP','D:\Users\Admin\Scoop',' User') 
$env:SCOOP='D:\Users\Admin\Scoop' 
set-executionpolicy remotesigned -scope currentuser 
iex (new-object net.webclient).downloadstring('https://get.scoop.sh') 

设置代理(可选)

  • 设置
scoop config proxy 127.0.0.1:46781 
  • 取消
scoop config proxy none1 

安装必须包

scoop install git
scoop install 7zip

scoop 常用命令

scoop checkup // 检查潜在问题
scoop install xxx    //安装软件
scoop uninstall xxx  //卸载软件
scoop search xxx   //查询库里面是否有这个软件
scoop update xxx  //更新软件
scoop info xxx  //查看软件信息
scoop bucket add|list|known|rm [<args>]
scoop bucket add xxx //添加仓库
scoop list  // 查看已安装应用
scoop bucket list //查看已安装仓库
scoop bucket known  // 查询官方仓库
scoop cache rm <app> // 移除某个app的缓存
scoop hold <app>// 禁止某程序更新
scoop unhold <app> //允许某程序更新

利用aria2加速下载

安装aria2后,scoop会自动调用aria2进行多线程下载以加速下载:

scoop install aria2 

第三方仓库

rasa.github.io/scoop-direc…

常⻅问题

  1. 错误:未能创建 SSL/TLS 安全通道

在Powershell执⾏:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 
  1. ⽆法完成下载,请设置代理,⻅上⾯ “设置代理” ⼀节

  2. bucket 更新时遇到问题

情况是这样:当我运行 scoop update 进行更新时提示: extras bucket 更新失败。于是我将其删除后再添加,提示成功,但是它却把 main bucket (默认的 bucket) 给删除了。通过"scoop status"检查状态时出现 “These app manifests have been removed"并且下面列出了已被移除的软件名单。 那么如何解决此问题?

我们需要重新添加 main bucket :

scoop bucket add main #添加 main bucket
  1. 网络问题导致app安装失败

示例:

ERROR Download failed! (Error 1) An unknown error occurred
ERROR https://mediaarea.net/download/binary/mediainfo/19.09/MediaInfo_CLI_19.09_Windows_x64.zip
    referer=https://mediaarea.net/download/binary/mediainfo/19.09/
    dir=D:\Scoop\Applications\cache
    out=mediainfo#19.09#https_mediaarea.net_download_binary_mediainfo_19.09_MediaInfo_CLI_19.09_Windows_x64.zip
ERROR & 'D:\Scoop\Applications\apps\aria2\current\aria2c.exe' --input-file='D:\Scoop\Applications\cache\mediainfo.txt'
我们可以发现文件的下载路径和下载后的文件名称,这里 referer= 后面的压缩包就是下载后 文件的名称,(也可以在 scoop 的 cache 目录下的 mediainfo.txt 文件中找到下载路径与文 件名称)

然后我们可以尝试在浏览器或其他下载程序中(可以 fq 的程序中)下载该程序,下载完成 后再更改文件名并将其放入 scoop 的 cache 目录,最后再次运行scoop install 应用名称即可安装。 5. 如何利用 aria2 进行断点续传?

示例:

# 更新 vscode
scoop update vscode-portable

scoop 更新 vscode 时下载到 80%的时候 失败了(安装时处理方法也一样)。我们需要在提示中找到如下内容:

'D:\Scoop\Applications\apps\aria2\current\aria2c.exe' --input-file='D:\Scoop\Applications\cache\vscode-portable.txt' 
--user-agent='Scoop/1.0 (+http://scoop.sh/) PowerShell/5.1 (Windows NT 10.0; Win64; x64; Desktop)' 
--allow-overwrite=true --auto-file-renaming=false --retry-wait=2 
--split=5 --max-connection-per-server=5 --min-split-size=5M 
--console-log-level=warn --enable-color=false --no-conf=true 
--follow-metalink=true --metalink-preferred-protocol=https 
--min-tls-version=TLSv1.2 --stop-with-process=15584 --continue

我们从上面的信息中提取出下面的命令;若要进行断点续传,只需再次执行下面的命令即可:

aria2c.exe --input-file='D:\Scoop\Applications\cache\vscode-portable.txt

当提示下载完成后,我们需要再次运行 scoop 对应的 app 更新命令(或安装命令),即可完成 app 更新(或安装):

scoop update vscode-portable
  1. 安装和切换JDK、Python的版本

命令格式为:

scoop reset <java>[@<version>]