這些年我漸漸變成 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 有付費版提供企業需要的額外功能),簡單歸納三者的差異:

  1. Chocolatey
    起源最早,目前有超過 9500 個套件,涵蓋許多常用軟體(Chrome、VLC Player),Chocolatey 依賴 PowerShell 及 NuGet 運作,對非程式開發使用者來說比較複雜,安裝時需要管理者權限。
  2. Scoop
    Scoop 的初衷是用於安裝系統工具,尤其是 Linux 常用但 Windows 缺少的工具程式。它也能用來安裝一般桌面程式,但需要新增特定安裝來源(Bucket)。
    Scoop 最大的優點是軟體限縮在使用者環境,不修改 Registry 及系統設定,不需要管理者權限,不依賴 PowerShell/NuGet,使用較簡單。
    若算上散佈各地的 1,100 個 Bucket,套件數量可達 27,000 種,但引用時多了搜尋、確認對象跟設定來源的手續。
  3. winget
    2020 年才推出的 winget,血統純正是其最大優勢,winget 由微軟開發維護,但因推出時間較晚,套件數量不如前二者豐富,且因透過微軟商店安裝,限定 Windows 10 1709 之後的版本才能使用,跟 Windows Terminal 一樣,要應用在 Server 及網路受限環境得花點功夫。

【小結】

若要安裝 Windows 上的工具程式或軟體的話,Chocolatey 仍是最方便的選擇,單一來源涵蓋幾乎大小會用到的軟體,並能處理 Registry、右鍵選單等系統層次設定,但執行時需要管理者權限。
Scoop 以開發用的工具程式為主,最大的優點安裝範圍會限制在當時登入的使用者環境下,不干擾系統設計也不需要管理者權限。Scoop 也能安裝 Chrome、VLC 播放器這類軟體,但需要找到並設定安裝來源。
winget 是微軟的官方指令安裝系統,預設透過微軟商店下載安裝,要在 Windows Server 或網路受限環境使用需費點工夫,且因出道較晚,提供的軟體種類不如其他二者齊全。

【延伸閱讀】


Comments

# by lkk

PowerShell/NuGet,使用較簡單。 若包含世界各地的 後面沒了

# by Jeffrey

to lkk, 已補上,感謝。

# by 小雞

之前用過巧克力 感覺版本跟官方的還是有差 後來寧願去找官方下載 順便看看更新訊息

# by Nesquate

Scoop成也可攜式,敗也可攜式,可攜式軟體在部份狀況下的問題不小(特別是瀏覽器,雖可以設成預設瀏覽器但Profile一定會跑掉)

# by saxon

scoop install chrome 體驗確實如Nesquate說的不方便

Post a comment