教程_Scoop:最好用的Windows包管理器
前言
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
常用命令總結
看到這裡一定有很多小夥伴已經懵逼了,最後總結一波 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 *
尾巴
文章仍有許多不足之處,希望大家可以指出,如有疑問,請大家在評論區中提出,也請看到的人積極回答,我將盡力解答並收集問題以完善文章。
遺留的問題
安裝軟體失敗
參考資料
Scoop Documentation
再談談 Scoop 這個 Windows 下的軟體包管理器
「一行程式碼」搞定軟體安裝解除安裝,用 Scoop 管理你的 Windows 軟體
Scoop - 最好用的 Windows 包管理器
scoop的安裝及基本使用
你需要掌握的Scoop技巧和知識