各個系統都會有自己的工具包管理工具 Ubuntu上 的 apt-get / apt、MacOS上的 homebrew、Linux 的 snap 、CentOS 或者 REHL 的 yum 或者 dnf、Windows 的 Chocolatey、Scoop、Winget,透過這樣的工具,做到自動安裝,節省下載和手動安裝時間。
之前有介紹 Chocolatey 配置與安裝 | 余小章 @ 大內殿堂 - 點部落 (dotblogs.com.tw) 的使用方式,這次來介紹 Scoop。
不同於 Chocolatey , Scoop 預設安裝位置在 home (個人)目錄,所以安裝軟體時不會有討人厭的 UAC 。另外一個優點就是 Scoop 對環境變數的管理,可以方便開發者快速切換軟體版本。
開發環境
- Windows 10 Pro 20H2
- Powershell 7
- Windows Terminal
安裝請參考 Windows 終端機安裝 | Microsoft Docs - WSL2
安裝 Powershell 7
非必要,你仍然可以選用 cmd / cmder 來執行﹑只不過接下來的範例均是使用 Powershell 操作
安裝 Scoop
官網:Scoop
github 專案:lukesampson/scoop: A command-line installer for Windows. (github.com)
文件:
Home · lukesampson/scoop Wiki (github.com)
Introduction | Scoop (scoop-docs.vercel.app)
預設安裝
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
# or shorter
iwr -useb get.scoop.sh | iex
預設安裝路徑為
%userprofile%\scoop
執行結果如下:
個人帳號安裝
指定安裝目錄和環境變數
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
$env:SCOOP='d:\tools\scoop'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
執行結果如下:
全域安裝
指定安裝目錄和環境變數,這必須使用管理員身分啟動 Windows Terminal
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
$env:SCOOP_GLOBAL='d:\tools\scoop'
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
執行結果如下:
常用指令
安裝完成後,重啟 Windows Terminal,調用 scoop help 就可以確定有沒有安裝成功
執行結果如下:
取得已知 bucket
列出官方支援的 bucket
Scoop bucket known
執行結果如下:
加入 bucket
scoop bucket add extras
執行結果如下:
列出已經安裝的 bucket
Scoop bucket list
執行結果如下:
移除 bucket
Scoop bucket rm awesome
搜尋所有可用的程序
scoop search
執行結果如下:
搜尋套件
scoop search python
下圖搜尋了兩個 bucket
內建的 scoop search 速度有點慢,可以改用 scoop-search
scoop install scoop-search
或是在這個網站搜尋
安裝套件
scoop install task
執行結果如下:
對 Scoop 進行版本更新
scoop update
更新
scoop update <app> # 更新特定 app
scoop update * # 更新全部
解除安裝
scoop uninstall <app> # 解除安裝特定 app
scoop uninstall scoop # 解除安裝所有 app
切換版本
scoop reset [app]@[version]
清除快取
scoop cache rm <app> # 移除特定 app 快取
scoop cache rm * # 移除所有 app 快取
刪除舊版本
scoop cleanup <app> # 删除舊版本
scoop cleanup * # 删除所有舊版本
Buckets
在 Scoop 中,Buckets 是應用程序的集合。bucket 是一個 Git 存儲庫,其中包含描述如何安裝應用程序的JSON 應用程序清單。預設的 bucket是 main 主存儲桶,它始終可用預設作安裝應用程序的主要來源。執行 scoop bucket known 看到官方維護的其他 bucket
- extras:蒐集包含有 GUI 的工具。
- java:蒐集各種不同發行版的 JDK 、 JRE ,像是 Oracle Java 、 OpenJDK 、 AdoptOpenJDK
- version :main 只維護最新正式版本的軟體,當需要舊版本可以從這裡安裝。
預設的情況下,運行時 scoop install <app>,它會在主存儲桶中查找,但也可以從其他存儲桶安裝。
除了官方之外,也可以建立自己的 git 倉儲來維護自己的 bucket 參考 Creating your own bucket,也可以在 awesome-scoop 找到更多社群維護的 bucket。
加入其他的 bucket
官方
scoop bucket add extras
第三方
- 語法
scoop bucket add <name-of-bucket> <location-of-git-repo>
- 範例
#官方的extras
scoop bucket add extras https://github.com/lukesampson/scoop-extras.git
scoop bucket add awesome https://github.com/tapannallan/awesome-scoop.git
scoop bucket add JetBrains
PS.似乎不可用
這裡有整理出一些 bucket
推薦使用這一個 repo 會固定每天合併其他的 bucket,位置 https://github.com/kkzzhizhou/scoop-apps。
scoop bucket add apps https://github.com/kkzzhizhou/scoop-apps
參考
Introduction | Scoop (scoop-docs.vercel.app)
Scoop - 在Windows命令行上進行程序安裝 - IT閱讀 (itread01.com)
Windows 套件管理工具 - Scoop:叡揚部落格 (gss.com.tw)
Windows 安裝 Scoop 來進行包管理 | IT人 (iter01.com)
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET