在微软开发 winget 这个工具之前,很难一次性检查当前 windows 电脑所安装的应用软件是否有可用的升级版本。
现在可以用以下 DOS 命令,一次性地检查本电脑中已安装应用软件有哪些可升级:
winget upgrade
如果无 winget , 则只能逐个应用软件,去其官方网站,逐个检查,是否有新版本发布。那样很费时间。
以下是我的电脑上运行的结果:
名称 ID 版本 可用 源
------------------------------------------------------------------------------------------------------------------------------
Visual Studio Community 2022 Microsoft.VisualStudio.2022.Community 17.1.1 17.2.0 winget
Android Studio Google.AndroidStudio 2021.1 2021.2 winget
Citrix Workspace Citrix.Workspace 19.12.2000.7 22.4.1.62 winget
GIMP GIMP.GIMP 2.10.18 2.10.30 winget
GPL Ghostscript ArtifexSoftware.GhostScript 9.54.0 9.56.1 winget
Google Chrome Google.Chrome 101.0.4951.54 101.0.4951.64 winget
Inkscape Inkscape.Inkscape 1.0.0- 1.1.2 winget
KDE Connect KDE.KDEConnect 21.04.1 22.04.0 winget
Logitech Unifying Software Logitech.UnifyingSoftware 2.50.25 2.52.33 winget
Mozilla Thunderbird Mozilla.Thunderbird 91.3.2 91.9.0 winget
NoMachine NoMachine.NoMachine 6.9.2 7.7.4 winget
Notepad++ Notepad++.Notepad++ 7.9.3 8.4.1 winget
VcXsrv marha.VcXsrv 1.20.9.0 1.20.14.0 winget
Vim vim.vim 8.2 8.2.4937 winget
WeChat Tencent.WeChat 3.3.0.115 3.6.0.18 winget
Tencent Meeting Tencent.TencentMeeting 3.6.8.400 3.7.9.426 winget
WinMerge WinMerge.WinMerge 2.16.10.0 2.16.20 winget
Visual Studio Community 2019 Microsoft.VisualStudio.2019.Community 16.7.30406.217 16.11.14 winget
Atom GitHub.Atom 1.58.0 1.60.0 winget
Visual Studio Community 2019 Microsoft.VisualStudio.2019.Community 16.11.5 16.11.14 winget
pgAdmin 4 PostgreSQL.pgAdmin 4.30 6.8 winget
WinSCP WinSCP.WinSCP 5.19.1 5.19.6 winget
Microsoft Visual C++ 2013 Redistributable (x64) Microsoft.VC++2013Redist-x64 12.0.30501.0 12.0.40664.0 winget
央视影音 CCTV.CBox 5.0.1.2 5.1.0.1 winget
Microsoft Build of OpenJDK with Hotspot 11 Microsoft.OpenJDK.11 11.0.12.7 11.0.15.10 winget
PuTTY PuTTY.PuTTY 0.74.0.0 0.76.0.0 winget
LibreOffice TheDocumentFoundation.LibreOffice 7.1.1.2 7.3.2.2 winget
MPC-HC clsid2.mpc-hc 1.7.13 1.9.21.2 winget
Microsoft Windows Desktop Runtime - 5 (x64) Microsoft.dotnetRuntime.5-x64 5.0.10.30418 5.0.16.31121 winget
TightVNC GlavSoft.TightVNC 2.8.27.0 2.8.63.0 winget
Microsoft Visual C++ 2015-2022 Redistributable (x86) Microsoft.VC++2015-2022Redist-x86 14.30.30704.0 14.32.31326.0 winget
Microsoft Visual C++ 2015-2022 Redistributable (x64) Microsoft.VC++2015-2022Redist-x64 14.30.30704.0 14.32.31326.0 winget
OpenOffice Apache.OpenOffice 4.17.9800 4.111.9808 winget
Python 3 Python.Python.3 3.7.8150.0 3.10.4150.0 winget
TortoiseSVN TortoiseSVN.TortoiseSVN 1.14.29085 1.14.29387 winget
Microsoft Web Platform Installer Microsoft.webpicmd 4.0.1622 5.1.51515.0 winget
OpenVPN OpenVPNTechnologies.OpenVPN 2.5.021 2.5.029 winget
Microsoft Visual Studio Code Microsoft.VisualStudioCode 1.66.2 1.67.1 winget
Unity Hub UnityTechnologies.UnityHub 2.4.7 3.1.2 winget
Microsoft Visual C++ 2013 Redistributable (x86) Microsoft.VC++2013Redist-x86 12.0.30501.0 12.0.40664.0 winget
企业微信 Tencent.wechat-work 2.8.17.1313 3.1.10.3010 winget
41 升级可用。
与 Ubuntu 来做一个些对比。以下是使用 mRemoteNG 软件以 SSH 协议远程登录某个 Ubuntu 电脑,得到的登录后提示信息:
Using username "xxxx".
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-107-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
54 updates can be applied immediately.
15 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable
New release '21.10' available.
Run 'do-release-upgrade' to upgrade to it.
*** System restart required ***
Last login: Wed May 11 18:22:54 2022 from 192.168.1.156
以上提示信息,简单明了。说明了现在有 54 个软件可升级,有 15 个安全补丁可安装。
初步比较,可以看出,winget 比 Ubuntu 少了安全补丁的检查。这对于电脑的安全,十分有必要。可能是因为 Windows 有图形化的安全更新,所以 winget 暂时忽略了安全方面的特别提示。但 Windows 安全更新只针对 Windows 自身、不针对第三方的应用程序。这方面 winget 仍需补强。
总体来说,winget 后续仍需补充应用软件的安全更新提示。
之后,我们按照提示,在 Ubuntu 电脑上运行:
apt list --upgradable
以下是运行结果:
正在列表... 完成
aspnetcore-runtime-5.0/groovy 5.0.17-1 amd64 [可从该版本升级:5.0.16-1]
dotnet-apphost-pack-5.0/groovy 5.0.17-1 amd64 [可从该版本升级:5.0.16-1]
dotnet-host/groovy 6.0.5-1 amd64 [可从该版本升级:6.0.4-1]
dotnet-hostfxr-5.0/groovy 5.0.17-1 amd64 [可从该版本升级:5.0.16-1]
dotnet-runtime-5.0/groovy 5.0.17-1 amd64 [可从该版本升级:5.0.16-1]
dotnet-runtime-deps-5.0/groovy 5.0.17-1 amd64 [可从该版本升级:5.0.16-1]
dotnet-sdk-5.0/groovy 5.0.408-1 amd64 [可从该版本升级:5.0.407-1]
firefox-locale-en/focal-updates,focal-security 100.0+build2-0ubuntu0.20.04.1 amd64 [可从该版本升级:99.0+build2-0ubuntu0.20.04.2]
firefox-locale-zh-hans/focal-updates,focal-security 100.0+build2-0ubuntu0.20.04.1 amd64 [可从该版本升级:99.0+build2-0ubuntu0.20.04.2]
firefox/focal-updates,focal-security 100.0+build2-0ubuntu0.20.04.1 amd64 [可从该版本升级:99.0+build2-0ubuntu0.20.04.2]
gnome-control-center-data/focal-updates,focal-updates 1:3.36.5-0ubuntu4 all [可从该版本升级:1:3.36.5-0ubuntu3]
gnome-control-center-faces/focal-updates,focal-updates 1:3.36.5-0ubuntu4 all [可从该版本升级:1:3.36.5-0ubuntu3]
gnome-control-center/focal-updates 1:3.36.5-0ubuntu4 amd64 [可从该版本升级:1:3.36.5-0ubuntu3]
gvfs-backends/focal-updates 1.44.1-1ubuntu1.1 amd64 [可从该版本升级:1.44.1-1ubuntu1]
gvfs-bin/focal-updates 1.44.1-1ubuntu1.1 amd64 [可从该版本升级:1.44.1-1ubuntu1]
gvfs-common/focal-updates,focal-updates 1.44.1-1ubuntu1.1 all [可从该版本升级:1.44.1-1ubuntu1]
gvfs-daemons/focal-updates 1.44.1-1ubuntu1.1 amd64 [可从该版本升级:1.44.1-1ubuntu1]
gvfs-fuse/focal-updates 1.44.1-1ubuntu1.1 amd64 [可从该版本升级:1.44.1-1ubuntu1]
gvfs-libs/focal-updates 1.44.1-1ubuntu1.1 amd64 [可从该版本升级:1.44.1-1ubuntu1]
gvfs/focal-updates 1.44.1-1ubuntu1.1 amd64 [可从该版本升级:1.44.1-1ubuntu1]
iio-sensor-proxy/focal-updates 2.8-1ubuntu2 amd64 [可从该版本升级:2.8-1ubuntu1]
libc-bin/focal-updates 2.31-0ubuntu9.9 amd64 [可从该版本升级:2.31-0ubuntu9.7]
libc-dev-bin/focal-updates 2.31-0ubuntu9.9 amd64 [可从该版本升级:2.31-0ubuntu9.7]
libc6-dbg/focal-updates 2.31-0ubuntu9.9 amd64 [可从该版本升级:2.31-0ubuntu9.7]
libc6-dev/focal-updates 2.31-0ubuntu9.9 amd64 [可从该版本升级:2.31-0ubuntu9.7]
libc6-i386/focal-updates 2.31-0ubuntu9.9 amd64 [可从该版本升级:2.31-0ubuntu9.7]
libc6/focal-updates 2.31-0ubuntu9.9 amd64 [可从该版本升级:2.31-0ubuntu9.7]
libcephfs2/focal-updates 15.2.16-0ubuntu0.20.04.1 amd64 [可从该版本升级:15.2.14-0ubuntu0.20.04.2]
libcurl3-gnutls/focal-updates,focal-security 7.68.0-1ubuntu2.11 amd64 [可从该版本升级:7.68.0-1ubuntu2.10]
libcurl4/focal-updates,focal-security 7.68.0-1ubuntu2.11 amd64 [可从该版本升级:7.68.0-1ubuntu2.10]
libnss-systemd/focal-updates 245.4-4ubuntu3.17 amd64 [可从该版本升级:245.4-4ubuntu3.16]
libnss3/focal-updates,focal-security 2:3.49.1-1ubuntu1.7 amd64 [可从该版本升级:2:3.49.1-1ubuntu1.6]
libpam-systemd/focal-updates 245.4-4ubuntu3.17 amd64 [可从该版本升级:245.4-4ubuntu3.16]
libpq-dev/focal-updates 12.10-0ubuntu0.20.04.1 amd64 [可从该版本升级:12.9-0ubuntu0.20.04.1]
libpq5/focal-updates 12.10-0ubuntu0.20.04.1 amd64 [可从该版本升级:12.9-0ubuntu0.20.04.1]
librados2/focal-updates 15.2.16-0ubuntu0.20.04.1 amd64 [可从该版本升级:15.2.14-0ubuntu0.20.04.2]
librbd1/focal-updates 15.2.16-0ubuntu0.20.04.1 amd64 [可从该版本升级:15.2.14-0ubuntu0.20.04.2]
libsensors-config/focal-updates,focal-updates 1:3.6.0-2ubuntu1.1 all [可从该版本升级:1:3.6.0-2ubuntu1]
libsensors5/focal-updates 1:3.6.0-2ubuntu1.1 amd64 [可从该版本升级:1:3.6.0-2ubuntu1]
libsystemd0/focal-updates 245.4-4ubuntu3.17 amd64 [可从该版本升级:245.4-4ubuntu3.16]
libudev1/focal-updates 245.4-4ubuntu3.17 amd64 [可从该版本升级:245.4-4ubuntu3.16]
linux-generic/focal-updates,focal-security 5.4.0.110.114 amd64 [可从该版本升级:5.4.0.109.113]
linux-headers-generic/focal-updates,focal-security 5.4.0.110.114 amd64 [可从该版本升级:5.4.0.109.113]
linux-image-generic/focal-updates,focal-security 5.4.0.110.114 amd64 [可从该版本升级:5.4.0.109.113]
linux-libc-dev/focal-updates,focal-security 5.4.0-110.124 amd64 [可从该版本升级:5.4.0-109.123]
lm-sensors/focal-updates 1:3.6.0-2ubuntu1.1 amd64 [可从该版本升级:1:3.6.0-2ubuntu1]
locales/focal-updates,focal-updates 2.31-0ubuntu9.9 all [可从该版本升级:2.31-0ubuntu9.7]
postgresql-12/focal-updates 12.10-0ubuntu0.20.04.1 amd64 [可从该版本升级:12.9-0ubuntu0.20.04.1]
postgresql-client-12/focal-updates 12.10-0ubuntu0.20.04.1 amd64 [可从该版本升级:12.9-0ubuntu0.20.04.1]
postgresql-server-dev-12/focal-updates 12.10-0ubuntu0.20.04.1 amd64 [可从该版本升级:12.9-0ubuntu0.20.04.1]
sbsigntool/focal-updates 0.9.2-2ubuntu1.1 amd64 [可从该版本升级:0.9.2-2ubuntu1]
snapd/focal-updates 2.54.3+20.04.1ubuntu0.3 amd64 [可从该版本升级:2.54.3+20.04.1ubuntu0.2]
systemd-sysv/focal-updates 245.4-4ubuntu3.17 amd64 [可从该版本升级:245.4-4ubuntu3.16]
systemd-timesyncd/focal-updates 245.4-4ubuntu3.17 amd64 [可从该版本升级:245.4-4ubuntu3.16]
systemd/focal-updates 245.4-4ubuntu3.17 amd64 [可从该版本升级:245.4-4ubuntu3.16]
ubuntu-drivers-common/focal-updates 1:0.9.0~0.20.04.7 amd64 [可从该版本升级:1:0.9.0~0.20.04.6]
udev/focal-updates 245.4-4ubuntu3.17 amd64 [可从该版本升级:245.4-4ubuntu3.16]
N: 忽略‘disco-partner.list.20200225_1045’(于目录‘/etc/apt/sources.list.d/’),鉴于它的文件扩展名无效
结论是,winget 比 apt 的可读性略强,至少有应用软件对应作者(公司/组织)名称。
但 Ubuntu apt 有另一个对应的图形版的软件"软件更新器",其升级提示见下图:
以上截图,将安全更新、非安全更新,分开,同时包含应用软件、操作系统自身,且提示了每个安装包的文件大小,这些都是 winget 所欠缺的。
如果没有接入宽带网络,当前只用移动网络,流量有限,可以先只安装重要的安全更新。
当然了,winget 、 apt 均只能提示一部分应用软件,如果某个软件不在其软件库中,则不会提示有升级版本。比如,我在 Windows、 Ubuntu 电脑上都安装了 NoMachine 远程桌面控制软件,winget 提示了有软件升级、而 apt 没有提示。当然,反过来的情况也有。
winget 可查看单个软件的详细信息,有的会写明升级了哪些功能、有的不会写。执行 DOS 命令:
winget show KDE.KDiff3
得到如下信息:
已找到 KDiff3 [KDE.KDiff3]
版本: 1.9.5
发布者: KDE e.V.
发布服务器支持 URL: https://invent.kde.org/sdk/kdiff3/-/issues
作者: Joachim Eibl
绰号: kdiff3
描述: Utility for comparing and merging files and directories
主页: https://invent.kde.org/sdk/kdiff3
许可证: GNU GPLv2
许可证 URL: https://invent.kde.org/sdk/kdiff3/-/blob/master/COPYING
版权 URL: https://invent.kde.org/sdk/kdiff3/-/blob/master/COPYING
安装:
类型: nullsoft
下载 URL: https://download.kde.org/stable/kdiff3/kdiff3-1.9.5-windows-64-cl.exe
SHA256: ccac297784f9a19e5482cdedc8a6ecb86232fdd93b865b56c8122767d19bcef8
发布日期: 2022-03-04
以上软件详细信息,未写明该版本号对应有哪些改进/改动。当然,Ubuntu 下 apt 运行结果也类似。
其它方面,基于个人使用体验,winget 在缓存方面比 apt 做的差。连续执行两次 winget show xxx, 第二次并不会比第一次快,说明没有使用缓存。当然,apt show 可能也没有使用缓存、只是单纯的响应速度快。winget search 与 apt search 好像都没有使用缓存。
另外,winget 中的 java 方面的应用软件比较少, 比如,apt 中有 jedit, 而 winget 中没有。
winget 在应用软件升级方面,是否会学习 Ubuntu apt 升级 apache httpd、PostgreSQL 软件那样,升级程序文件、保留数据、保留/升级配置文件,则需要在后续使用过程中,自己体会。
总体来说,winget 仍是一个好的开头吧。期待后续的逐步功能改进吧。