① 【干貨】Windows軟體包管理器(WinGet)最實用教程
微軟公司在 2020 年 5 月的 Microsoft Build 開發者大會上發布了 Windows 系統的官方軟體包管理器——Windows 軟體包管理器(WinGet)。經過三年的發展,越來越多的軟體廠商在這個平台上發布了自家軟體。WinGet 不僅支持 exe、msi 等傳統 Win32 安裝包格式,還支持新版 Windows 的 msix/msixbundle 格式打包的軟體。
首先確認系統是否滿足需求:WinGet 只能運行在 Windows 10 高於 1709 (Build 16299) 的版本和 Windows 11 上。在安裝 WinGet 之前,建議使用微軟新推出的終端模擬器 Windows Terminal 代替傳統的 conhost.exe。
2.1 Windows 10/11 非 LTS 版本(家庭版、教育版、專業版、專業工作站版、企業版)
Windows Terminal 和 WinGet 都可以通過系統預裝的 Microsoft Store 商店搜索安裝,也可以轉到下面的網頁調用 Microsoft Store 安裝,或者去微軟託管在 GitHub 的發布頁下載安裝包到本地安裝(較新版本的 Windows 11 已經預裝,如已預裝請略過此章節)。
2.2 Windows 10/11 LTS 版本,長期服務頻道(企業版 LTSC,IoT 企業版 LTSC)
如果使用了 Windows LTSC 版本的系統,需要先安裝一個 Microsoft Store 的環境才能安裝 Windows Terminal 和 WinGet。
2.3 設置 Windows Terminal 為系統默認終端模擬器
較新版本的 Windows 11 已經默認 Windows Terminal 為系統終端模擬器,如已配置好請略過此章節。
3. 使用 WinGet 管理軟體
3.1 概述
使用 WinGet,大多數軟體就可以像 Linux 發行版的軟體安裝方式一樣,可以通過 apt/apt-get、yum、pacman 等命令在終端模擬器中以一條命令即可做到。很多大佬已經寫過 WinGet 的使用教程,再加上微軟官方給出的參考文檔和實例也已經十分詳實,這里就不再贅述,只列舉幾個最常用的命令,以開源壓縮軟體 7-Zip 舉例。
3.2 常用命令:替換源
微軟官方軟體包伺服器的訪問速度不穩定,可能出現一直超時失敗的情況,這里可以替換為國內的鏡像源,類似於 Debian 系 Linux 發行版的 add-apt-repository 命令。在使用 WinGet 之前,可以替換軟體源為中科大的鏡像源。
3.3 常用命令:搜索軟體包
3.4 常用命令:查看軟體包
3.5 常用命令:安裝軟體包
3.6 常用命令:更新軟體包
3.7 常用命令:卸載軟體包
4. 使用 WinGet + GUI 管理軟體
4.1 什麼是 WingetUI
眾所周知,Windows 被設計為一個圖形界面的操作系統,整個系統的交互邏輯都是圍繞著所見即所得的圖形化方式設計的;而 WinGet 卻是一個傳統的命令行程序,對於日常管理來說,還是不夠直觀;並且整天面對黑乎乎的命令行窗口也難免審美疲勞。所以,開源軟體 WingetUI 應運而生,完美解決了 WinGet 在面向普通用戶的使用過程中的諸多痛點。
4.2 獲取和使用 WingetUI
既然有了 WinGet,就可以直接從 WinGet 安裝 WingetUI。如果遇到網路問題等不方便直接從 WinGet 下載安裝的情況,還可以使用網路正常的電腦下載 WingetUI 安裝包到本地,再拷貝回目標設備安裝。
5. 使用 WinGet + PowerShell 管理軟體
5.1 使用批處理或 PS 腳本管理 WinGet 軟體包
在 Linux 發行版中,包管理器的作用是提供一個統一的應用程序分發平台,以便在維護、備份和遷移的過程中進行自動化部署和配置;對於普通用戶,一個常見的做法是將安裝部署應用程序的命令行保存為 Shell 腳本,以便快速安裝。對於 Windows 平台下的 WinGet 也毫無疑問可以採用這種最常用的方法來管理程序:將 WinGet 命令保存為 *.bat *.cmd *.ps1 等批處理腳本或 PowerShell 腳本進行自動化部署。
5.2 使用 PS 腳本從網路批量下載來自 WinGet 的軟體包
眾所周知,因為歷史遺留的兼容性包袱,Windows 平台的軟體包不能說是包羅萬象,只能說是千奇百怪。例如在安裝軟體時,安裝程序通常提供可以指定為當前用戶安裝或為所有用戶安裝的選項、可以任意指定到自定義的目錄、可以指定是否創建桌面和開始菜單快捷方式等等;其中大部分軟體的安裝配置都可以適應 WinGet 用於指定軟體包的安裝方式額外控制參數(詳見 winget install 命令),但少數軟體並不能適應 WinGet 安裝命令的控制參數。遇到這種情況,通常的做法是直接訪問軟體提供商的官方網站去下載安裝包,但如今有了 WinGet 包管理器,搭配實用的 PowerShell 工具,便可以編寫腳本,從 WinGet 源直接獲取軟體包信息並下載到本地手動安裝。