scoop
0 Preparation
Installing Scoop to Custom Directory
Assuming the target directory is C:\scoop
, in a PowerShell command console, run:
$env:SCOOP='C:\scoop' [environment]::setEnvironmentVariable('SCOOP',$env:SCOOP,'User') iwr -useb get.scoop.sh | iex
Assuming you didn't see any error messages, Scoop is now ready to run.
Installing global apps to custom directory
Assuming the target directory is C:\apps
, in a admin-enabled PowerShell command console, run:
$env:SCOOP_GLOBAL='c:\apps' [environment]::setEnvironmentVariable('SCOOP_GLOBAL',$env:SCOOP_GLOBAL,'Machine') scoop install -g <app>
1 Install
In a PowerShell command console, run:
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
or the shorter:
iwr -useb get.scoop.sh | iex
2 Install app
Scoop 常用命令
scoop help #查看帮助
scoop help <某个命令> # 具体查看某个命令的帮助
scoop install <app> # 安装 APP
scoop uinstall <app> # 卸载 APP
scoop list # 列出已安装的 APP
scoop search # 搜索 APP
scoop status # 检查哪些软件有更新
scoop update # 更新 Scoop 自身
scoop update appName1 appName2 # 更新某些app
scoop update * # 更新所有 app (前提是需要在apps目录下操作)
scoop bucket known #通过此命令列出已知所有 bucket(软件源)
scoop bucket add bucketName #添加某个 bucket
scoop cache rm <app> # 移除某个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
别名
⚠️️ 注意:请在 Powershell 中运行下面的命令
# 可用操作
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
对应版本的程序需要已经安装于本地系统中;所以在你清除某个软件的旧版本时考虑一下自己是否还会再次使用到此旧版本。
另外 idea-ultimate-eap 切换过程可能需要更长时间。
其它命令
# 显示某个app的信息
scoop info <app>
# 在浏览器中打开某app的主页
scoop home <app>
# 比如
scoop home git
添加软件源 Bucket
Scoop 可安装的软件信息存储在 Bucket(翻译为:桶)中,也可以称其为软件源。Scoop 默认的 Bucket 为 main
;官方维护的另一个 Bucket 为 extras
,我们需要手动添加。
# bucket的用法
scoop bucket add|list|known|rm [<args>]
添加 extras :
scoop bucket add extras
我们也可以添加第三方 bucket ,示例:
scoop bucket add dorado https://github.com/h404bi/dorado
并且明确指定安装此 bucket (软件源)中的的程序:
scoop install dorado/<app_name>
# 下面是dorado中特有的软件,测试其是否添加成功
scoop search trash
推荐的 Bucket(软件源):
extras
:Scoop 官方维护的一个仓库,涵盖了大部分因为种种原因不能被收录进主仓库的常用软件(在我看来是必须要添加的)。地址:lukesampson/scoop-extrasnirsoft
:是一个 NirSoft 开发的小工具的安装合集。NirSoft 制作了大量的小工具,包括系统工具、网络工具、密码恢复等等,孜孜不倦、持续更新。- Bucket 地址:kodybrown/scoop-nirsoft
- NirSoft 官网地址:NirSoft
- dorado(添加了一些国内的app,比如 qqplayer ️)h404bi/dorado
- ash258:Ash258/scoop-Ash258
- java:添加后可以通过它安装各种 jdk 、 jre
- nerd-fonts :包含各种字体
# 先添加bucket
scoop bucket add extras
scoop bucket add nirsoft
scoop bucket add dorado https://github.com/h404bi/dorado
scoop bucket add Ash258 'https://github.com/Ash258/Scoop-Ash258.git'
scoop bucket add nerd-fonts
# 对于开发人员,可添加下面的两个
scoop bucket add java
scoop bucket add versions
https://github.com/ivaquero/scoopet/blob/master/README_CN.md
科研工具
App | 自动更新 | 原创 |
---|---|---|
CopyTranslator | √ | √ |
GeoGebra-Portable | √ | √ |
Gephi | √ | √ |
Julia-cn | √ | √ |
KingDraw | √ | √ |
LogSeq | √ | √ 已迁移至 Extras |
LyX-cn | √ | √ |
Mathpix Snipping Tool | √ | √ |
Mendeley Desktop | √ | √ |
Miniconda-cn | √ | √ |
NetLogo | √ | √ |
SageMath-cn | √ | √ |
TeXLive | √ | 拷贝自 dorado |
思源笔记 | √ | 拷贝自 dorado |
语雀 | √ | 拷贝自 dorado |
开发辅助
App | 自动更新 | 原创 |
---|---|---|
Cyberduck | √ | √ 已迁移至 Extras |
scoop-completion | √ | 拷贝自 Moeologist |
uTools | √ | 拷贝自 dorado |
VirtualBox [含扩展包] | √ | 拷贝自 Ash258 |
VMware Workstation Pro | √ | 拷贝自 Ash258 |
WinGet | √ | 拷贝自 Ash258 |
傲梅分区助手 | √ | √ |
日常办公
App | 自动更新 | 原创 |
---|---|---|
File Converter | √ | √ |
OBS Studio-cn | √ | √ |
Office Tool Plus | √ | √ |
RustDesk | √ | √ |
小狼毫输入法 | √ | √ |
Wise Care 365 | √ | √ |
WPSOffice | × | 拷贝自 dorado |
百度网盘 | √ | √ |
腾讯会议 | × | 拷贝自 sushi |
社交休闲
App | 自动更新 | 原创 |
---|---|---|
钉钉 | √ | √ |
洛雪音乐助手 | √ | √ |
网易云音乐 | √ | 拷贝自 dorado |
微信 | √ | 拷贝自 dorado |
magnetW | √ | √ |
You-Get | √ | √ |
scoop bucket known
main [默认]
extras [墙裂推荐]
versions
nightlies
nirsoft
php
nerd-fonts
nonportable
java
games
jetbrains
这里,推荐一个网站,这个方便全网查询安装脚本所在 bucket
bucket 更新时遇到问题
情况是这样:当我运行 scoop update
进行更新时提示: extras
bucket 更新失败。于是我将其删除后再添加,提示成功,但是它却把 main
bucket (默认的 bucket) 给删除了。通过"scoop status"检查状态时出现 "These app
manifests have been removed"并且下面列出了已被移除的软件名单。 那么如何解决此问题?
我们需要重新添加 main bucket :
scoop bucket add main #添加 main bucket
网络问题导致app安装失败
一个示例:
scoop install mediainfo
当安装 mediainfo 时由于网络问题,安装包无法下载,从命令行输出信息中可以看到如下
内容
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'
我们可以发现文件的下载路径和下载后的文件名称,这里 out=
后面的压缩包就是下载后
文件的名称,(也可以在 scoop 的 cache
目录下的 mediainfo.txt
文件中找到下载路径与文
件名称)
然后我们可以尝试在浏览器或其他下载程序中(可以 fq 的程序中)下载该程序,下载完成
后再更改文件名并将其放入 scoop 的 cache
目录,最后再次运行scoop install mediainfo
即可安装。
如何利用 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
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
安装和切换JDK、Python的版本
这里需要使用 scoop reset
它的作用是:重置一个应用程序来解决冲突。
命令格式为:
scoop reset <java>[@<version>]
安装和切换不同的 JDK 版本:
PS C:> scoop bucket add java
PS C:> scoop install oraclejdk
Installing 'oraclejdk' (12.0.2-10) [64bit]
PS C:> scoop install zulu6
Installing 'zulu6' (6.18.1.5) [64bit]
PS C:> scoop install openjdk10
Installing 'openjdk10' (10.0.1) [64bit]
PS C:> java -version
openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10)
OpenJDK 64-Bit Server VM (build 10.0.1+10, mixed mode)
PS C:> scoop reset zulu6
Resetting zulu6 (6.18.1.5).
Linking ~\scoop\apps\zulu6\current => ~\scoop\apps\zulu6\6.18.1.5
PS C:> java -version
openjdk version "1.6.0-99"
OpenJDK Runtime Environment (Zulu 6.18.1.5-win64) (build 1.6.0-99-b99)
OpenJDK 64-Bit Server VM (Zulu 6.18.1.5-win64) (build 23.77-b99, mixed mode)
PS C:> scoop reset oraclejdk
PS C:> java -version
java version "12.0.2" 2019-07-16
Java(TM) SE Runtime Environment (build 12.0.2+10)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.2+10, mixed mode, sharing)
安装和切换不同的 Python 版本:
$ scoop bucket add versions # add the 'versions' bucket if you haven't already
$ scoop install python27 python
python --version # -> Python 3.6.2
# switch to python 2.7.x
$ scoop reset python27
python --version # -> Python 2.7.13
# switch back (to 3.x)
$ scoop reset python
python --version # -> Python 3.6.2