教程_Scoop:超好用的Windows包管理器


前言

Scoop 是一個 Win­dows 包管理工具,類似於 De­bian 的 apt、ma­cOS 的 homebrew。它由開源社區驅動,體驗可能是是目前所有 Win­dows 包管理工具中最好的。對開發者來說,包管理器能非常方便的部署開發環境,比如 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

常用的寫盤工具 Ru­fus 就在 extras 這個倉庫中。

scoop install rufus

nerd-fonts 包含了美化終端時會用到的 Pow­er­line 字體

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 選項可對軟件進行全局安裝,全局安裝需要管理員權限,所以需要提前以管理員權限運行的 Pow­er­Shell 。更簡單的方式是先安裝 sudo,然后用 sudo 命令來提權執行:

scoop install sudo
sudo scoop install -g <app>

達成在 Win­dows 上使用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 有關的設置選項:

博主在這里推薦以下優化設置,單任務最大連接數設置為 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 *

尾巴

文章仍有許多不足之處,希望大家可以指出,如有疑問,請大家在評論區中提出,也請看到的人積極回答,我將盡力解答並收集問題以完善文章。

遺留的問題

安裝軟件失敗

scoop安裝軟件失敗
下載7zip失敗需要開代理,可以直接將代理軟件設為全局,也可以自己配置。
下載其他軟件失敗看看你有沒有裝某些軟件,如sudo,反正我吧sudo刪掉就好了~

參考資料
Scoop Documentation
再談談 Scoop 這個 Windows 下的軟件包管理器
「一行代碼」搞定軟件安裝卸載,用 Scoop 管理你的 Windows 軟件
Scoop - 最好用的 Windows 包管理器
scoop的安裝及基本使用
你需要掌握的Scoop技巧和知識


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM