前言
Scoop 是一個 Windows 包管理工具,類似於 Debian 的 apt
、macOS 的 homebrew
。它由開源社區驅動,體驗可能是是目前所有 Windows 包管理工具中最好的。對開發者來說,包管理器能非常方便的部署開發環境,比如 Python 、Node.js 。而對於像博主這樣的普通的計算機使用者來說,可以方便的安裝一些常用軟件,尤其是開源軟件,免去了手動去官網下載的繁瑣步驟,而且后續對軟件進行升級只需要輸入一行命令,非常便捷。
環境要求
- Windows 7 SP1 + / Windows Server 2008+
- PowerShell 5(或更高版本,包括 PowerShell Core)和 .NET Framework 4.5(或更高版本)Win10(11)默認滿足此條件
- Windows 用戶名為英文(Windows 用戶環境變量中路徑值不支持中文字符)
- 正常、快速的訪問 GitHub 並下載資源
安裝 Scoop
Scoop 默認使用普通用戶權限,其本體和安裝的軟件默認會放在 %USERPROFILE%\scoop
(即 C:\Users\用戶名\scoop
),使用管理員權限進行全局安裝 (-g
) 的軟件在 C:\ProgramData\scoop
。如果有自定安裝路徑的需求,那么要提前設置好環境變量,否則后續再改不是一件容易的事情。
- 打開 PowerShell
- 設置用戶安裝路徑
$env:SCOOP='D:\Scoop'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
- 設置全局安裝路徑(需要管理員權限)
$env:SCOOP_GLOBAL='D:\Scoop_Global'
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')
- 設置允許 PowerShell 執行本地腳本
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
- 安裝 Scoop
iwr -useb get.scoop.sh | iex
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
其實,上面兩種都不可行
先配置Host文件,加上
199.232.68.133 raw.githubusercontent.com
然后執行另一條可用的網址的命令:
iex (new-object net.webclient).downloadstring('https://raw.githubusercontent.com/lukesampson/scoop/master/bin/install.ps1')
- 沒安裝過 Git 則需要安裝。
scoop install git
基礎使用
最基礎的使用方法和其它包管理器類似,這里就不做贅述了,直接上命令列表:
scoop search <app>
- 搜索軟件scoop install <app>
- 安裝軟件scoop info <app>
- 查看軟件詳細信息scoop list
- 查看已安裝軟件scoop uninstall <app>
- 卸載軟件,-p
刪除配置文件。scoop update
- 更新 scoop 本體和軟件列表scoop update <app>
- 更新指定軟件scoop update *
- 更新所有已安裝的軟件scoop checkup
- 檢查 scoop 的問題並給出解決問題的建議scoop help
- 查看命令列表scoop help <command>
- 查看命令幫助說明
進階使用
添加 bucket
所有的包管理器都會有相應的軟件倉庫 ,而 bucket 就是 Scoop 中的軟件倉庫。細心的你可能會發現 scoop
翻譯為中文是 “舀”,而 bucket
是 “水桶”,所以安裝軟件可以理解為從水桶里舀水,似乎很形象的說。
Scoop 默認軟件倉庫(main bucket)軟件數量是有限的,但是可以進行額外的添加。通過 scoop bucket known
命令可以查看官方認可的 bucket:
$ scoop bucket known
main
extras
versions
nightlies
nirsoft
php
nerd-fonts
nonportable
java
games
jetbrains
以上官方認可的 bucket 可以通過下面這個命令直接添加:
scoop bucket add <bucketname>
好像有人添加bucket出現問題?如有,請在評論區提出。
extras 涵蓋了大部分因為種種原因不能被收錄進主倉庫的常用軟件,這個是強推薦添加的。
scoop bucket add extras
常用的寫盤工具 Rufus 就在 extras
這個倉庫中。
scoop install rufus
nerd-fonts 包含了美化終端時會用到的 Powerline 字體
scoop bucket add nerd-fonts
當添加 nerd-fonts
倉庫后可以通過以下命令搜索到所有的字體:
scoop search "-NF"
安裝字體需要使用管理員權限:
sudo scoop install FiraCode-NF
第三方 bucket
添加第三方 bucket
scoop bucket add <bucketname> https://github.com/xxx/xxx
從第三方 bucket 中安裝軟件
scoop install <bucketname>/<app>
清理安裝包緩存
Scoop 會保留下載的安裝包,對於卸載后又想再安裝的情況,不需要重復下載。但長期累積會占用大量的磁盤空間,如果用不到就成了垃圾。這時可以使用 scoop cache
命令來清理。
scoop cache show
- 顯示安裝包緩存scoop cache rm <app>
- 刪除指定應用的安裝包緩存scoop cache rm *
- 刪除所有的安裝包緩存
如果你不希望安裝和更新軟件時保留安裝包緩存,可以加上 -k
或 --no-cache
選項來禁用緩存:
scoop install -k <app>
scoop update -k *
刪除舊版本軟件
當軟件被更新后 Scoop 還會保留軟件的舊版本,更新軟件后可以通過 scoop cleanup
命令進行刪除。
scoop cleanup <app>
- 刪除指定軟件的舊版本scoop cleanup *
- 刪除所有軟件的舊版本
與安裝軟件一樣,刪除舊版本軟件的同時也可以清理安裝包緩存,同樣是加上 -k
選項。
scoop cleanup -k <app>
- 刪除指定軟件的舊版本並清除安裝包緩存scoop cleanup -k *
- 刪除所有軟件的舊版本並清除安裝包緩存
全局安裝
全局安裝就是給系統中的所有用戶都安裝,且環境變量是系統變量,對於需要設置系統變量的一些軟件就需要全局安裝,比如 Node.js、Python ,否則某些情況會出現無法找到命令的問題。
使用 scoop install <app>
命令加上 -g
或 --global
選項可對軟件進行全局安裝,全局安裝需要管理員權限,所以需要提前以管理員權限運行的 PowerShell 。更簡單的方式是先安裝 sudo
,然后用 sudo
命令來提權執行:
scoop install sudo
sudo scoop install -g <app>
達成在 Windows 上使用
sudo
的成就
使用 scoop list
命令查看已裝軟件時,全局安裝的軟件末尾會有 *global*
標志。
➜ scoop list
Installed apps:
7zip 19.00
adb 30.0.0
aria2 1.35.0-1
busybox 3466-g53c09d0e1
CascadiaCode-NF 2.1.0 [nerd-fonts]
colortool 1904.29002
dark 3.11.2 *global*
ffmpeg 4.2.3
figlet 1.0-go
FiraCode-NF 2.1.0 [nerd-fonts]
git 2.26.2.windows.1 *global*
innounp 0.49
iperf3 3.1.3
lessmsi 1.6.91 *global*
lxrunoffline 3.4.1 [extras]
nano 4.9-4
neofetch 7.0.0
nodejs-lts 12.17.0 *global*
python 3.8.3 *global*
rclone 1.52.0
rufus 3.10 [extras]
screentogif 2.24.2 [extras]
sudo 0.2020.01.26
此外對於全局軟件的更新和卸載等其它操作,都需要加上 -g
選項:
sudo scoop update -g *
- 更新所有軟件(且包含全局軟件)sudo scoop uninstall -g <app>
- 卸載全局軟件sudo scoop uninstall -gp <app>
- 卸載全局軟件(並刪除配置文件)sudo scoop cleanup -g *
- 刪除所有全局軟件的舊版本sudo scoop cleanup -gk *
- 刪除所有全局軟件的舊版本(並清除安裝包包緩存)
代理設置
Scoop 默認使用的是系統代理,如果你想手動指定代理,可以輸入下面的命令。需要注意的是只支持 http 協議。
scoop config proxy localhost:1080
設置完可以通過
scoop config proxy
查看。
如果你想取消代理,那么輸入下面的命令,這將會恢復使用系統代理。
scoop config rm proxy
開啟多線程下載
使用 Scoop 安裝 Aria2 后,Scoop 會自動調用 Aria2 進行多線程加速下載。
scoop install aria2
使用 scoop config
命令可以對 Aria2 進行設置,比如 scoop config aria2-enabled false
可以禁止調用 Aria2 下載。以下是與 Aria2 有關的設置選項:
aria2-enabled
: 開啟 Aria2 下載,默認true
aria2-retry-wait
: 重試等待秒數,默認2
aria2-split
: 單任務最大連接數,默認5
aria2-max-connection-per-server
: 單服務器最大連接數,默認5
,最大16
aria2-min-split-size
: 最小文件分片大小,默認5M
博主在這里推薦以下優化設置,單任務最大連接數設置為 32
,單服務器最大連接數設置為 16
,最小文件分片大小設置為 1M
scoop config aria2-split 32
scoop config aria2-max-connection-per-server 16
scoop config aria2-min-split-size 1M
常用命令總結
emm想要記住上文那么多的知識有些困難,這里總結一下 Scoop 在日常使用中常用的命令:
# 更新 scoop 及軟件包列表
scoop update
## 安裝軟件 ##
# 非全局安裝(並禁止安裝包緩存)
scoop install -k <app>
# 全局安裝(並禁止安裝包緩存)
sudo scoop install -gk <app>
## 卸載軟件 ##
# 卸載非全局軟件(並刪除配置文件)
scoop uninstall -p <app>
# 卸載全局軟件(並刪除配置文件)
sudo scoop uninstall -gp <app>
## 更新軟件 ##
# 更新所有非全局軟件(並禁止安裝包緩存)
scoop update -k *
# 更新所有軟件(並禁止安裝包緩存)
sudo scoop update -gk *
## 垃圾清理 ##
# 刪除所有舊版本非全局軟件(並刪除軟件包緩存)
scoop cleanup -k *
# 刪除所有舊版本軟件(並刪除軟件包緩存)
sudo scoop cleanup -gk *
# 清除軟件包緩存
scoop cache rm *
尾巴
文章仍有許多不足之處,希望大家可以指出,如有疑問,請大家在評論區中提出,也請看到的人積極回答,我將盡力解答並收集問題以完善文章。
遺留的問題
安裝軟件失敗
下載7zip失敗需要開代理,可以直接將代理軟件設為全局,也可以自己配置。
下載其他軟件失敗看看你有沒有裝某些軟件,如sudo,反正我吧sudo刪掉就好了~
參考資料
Scoop Documentation
再談談 Scoop 這個 Windows 下的軟件包管理器
「一行代碼」搞定軟件安裝卸載,用 Scoop 管理你的 Windows 軟件
Scoop - 最好用的 Windows 包管理器
scoop的安裝及基本使用
你需要掌握的Scoop技巧和知識