指令式軟體安裝服務比較:Chocolatey、Scoop 與 winget
5 |
這些年我漸漸變成 CLI 愛好者,覺得很多時侯敲指令比滑滑鼠簡單有效率,跟伙伴溝通更簡潔精確(例如:「git add Program.cs && git commit -m "poc"」對上「切換到 Git Changes,在 Changes 的 Program.cs 按右鍵點 Stage,在 Message 欄位輸入 poc,然後點下面那個 Commit...」,簡單十倍),常用指令可以用記事本保存快速重複操作,寫幾行程式可將複雜作業自動化或改為批次作業或排程,比 GUI 操作更容易擴充及應用。
安裝軟體這檔事也是如此,習慣了在 Linux 下指令 apt-get install XXX 就裝好軟體,便會覺得 Google 找網站下載檔案再跑安裝程式或解壓縮的做法太繁瑣。Windows 其實也有下指令裝軟體的做法,最早只有 Chocolatey (之前寫過文章,但已年代久遠:你是我的巧克力-Chocolatey),後來陸續加入其他選擇,我的資訊有點落後,在這篇做個更新。
目前 Windows 上常用的指令式軟體安裝服務有三個:Chcolatey、Scoop 及 winget。
資料來源 (註:資料時間 2020/10,套件數已有變化)
三者都是開源軟體,可免費使用(Chocolatey 有付費版提供企業需要的額外功能),簡單歸納三者的差異:
- Chocolatey
起源最早,目前有超過 9500 個套件,涵蓋許多常用軟體(Chrome、VLC Player),Chocolatey 依賴 PowerShell 及 NuGet 運作,對非程式開發使用者來說比較複雜,安裝時需要管理者權限。
- Scoop
Scoop 的初衷是用於安裝系統工具,尤其是 Linux 常用但 Windows 缺少的工具程式。它也能用來安裝一般桌面程式,但需要新增特定安裝來源(Bucket)。
Scoop 最大的優點是軟體限縮在使用者環境,不修改 Registry 及系統設定,不需要管理者權限,不依賴 PowerShell/NuGet,使用較簡單。
若算上散佈各地的 1,100 個 Bucket,套件數量可達 27,000 種,但引用時多了搜尋、確認對象跟設定來源的手續。 - winget
2020 年才推出的 winget,血統純正是其最大優勢,winget 由微軟開發維護,但因推出時間較晚,套件數量不如前二者豐富,且因透過微軟商店安裝,限定 Windows 10 1709 之後的版本才能使用,跟 Windows Terminal 一樣,要應用在 Server 及網路受限環境得花點功夫。
【小結】
若要安裝 Windows 上的工具程式或軟體的話,Chocolatey 仍是最方便的選擇,單一來源涵蓋幾乎大小會用到的軟體,並能處理 Registry、右鍵選單等系統層次設定,但執行時需要管理者權限。
Scoop 以開發用的工具程式為主,最大的優點安裝範圍會限制在當時登入的使用者環境下,不干擾系統設計也不需要管理者權限。Scoop 也能安裝 Chrome、VLC 播放器這類軟體,但需要找到並設定安裝來源。
winget 是微軟的官方指令安裝系統,預設透過微軟商店下載安裝,要在 Windows Server 或網路受限環境使用需費點工夫,且因出道較晚,提供的軟體種類不如其他二者齊全。
【延伸閱讀】
- Winget vs Chocolatey vs scoop, and the automation of building development environments by Nodachisoft
- Scoop or Chocolatey? Which Windows 10 package manager should you use? by ONMSFT.com
- 你是我的巧克力-Chocolatey
- Windows 套件管理工具 - Chocolatey 配置與安裝 by 余小章
- Windows 套件管理工具 - Scoop 配置與安裝 by 余小章
- 使用 winget 工具來安裝和管理應用程式 by MS Learn
Comments
# by lkk
PowerShell/NuGet,使用較簡單。 若包含世界各地的 後面沒了
# by Jeffrey
to lkk, 已補上,感謝。
# by 小雞
之前用過巧克力 感覺版本跟官方的還是有差 後來寧願去找官方下載 順便看看更新訊息
# by Nesquate
Scoop成也可攜式,敗也可攜式,可攜式軟體在部份狀況下的問題不小(特別是瀏覽器,雖可以設成預設瀏覽器但Profile一定會跑掉)
# by saxon
scoop install chrome 體驗確實如Nesquate說的不方便