软件使用技巧

修复 scoop update 后 vcpkg 无法运行的故障

系统使用的 vcpkg 是由 scoop 安装的,在某次 scoop update -a 更新后故障无法运行。通过分析发现是由于安装脚本未能正确执行导致文件缺失引起的。以下是故障分析过程。

发现问题

打开 UniGetUI 更新时发现 vcpkg 的安装源不见了。

在命令行中运行 vcpkg 提示:

Shim: Could not determine if target is a GUI app. Assuming console.
Shim: Could not create process with command '"D:\Apps\scoop\apps\vcpkg\current\vcpkg.exe" '.

运行命令 scoop list vcpkg,显示软件已安装:

Installed apps matching 'vcpkg':

Name  Version    Source Updated             Info
----  -------    ------ -------             ----
vcpkg 2025.07.25 main   2025-07-29 10:56:05

尝试修复

看起来是 scoop shim 出了问题。尝试用 scoop reset vcpkg 命令重置。再次运行 vcpkg,无响应。接着尝试卸载 vcpkg 重新安装。运行 scoop uninstall vcpkg 命令,卡在运行 uninstall script 无响应。

……

Scoop 安装 Chrome 浏览器的用户数据问题

不知道从哪个版本开始,通过 Scoop 安装的 Chrome 浏览器不再保留本地用户数据。每次更新后,用户数据都要从 Google 账户同步。

Scoop 官方的解释是因为浏览器限制导致的:

Profile might point to default location (e.g. $env:LOCALAPPDATA\Google\Chrome\User Data), when --user-data-dir point to a specified path(e.g. $dir\userdata(persist\googlechrome\userdata)).

官方的建议是:

I would recommend that you install the default/main browser by its official installer.

不过 Chrome 并不是我的主力浏览器,即便官方不支持,也还是可以补救一下的。

根据以下路径找到开始菜单里 Chrome 的快捷方式:

……

WinGet 更新后,已安装列表出现重复条目

平常使用 WinGet 来管理 Windows 软件包。经常发现在使用一段时间后,winget list 返回的列表中会出现同一个已安装包的多个不同版本。特别是微软自家的大型软件,比如 Visual Studio 之类的,安装后新增的条目更是大肠包小肠。更恶心的是,有些包在更新后,无法覆盖旧版本的条目。而另一边,旧条目一直处在可升级状态。这导致每次更新都要重新升级一遍。

……

关闭指定程序的 UAC 通知

在启动某些 Windows 程序时会弹出 UAC (用户账户控制)确认窗口,这表示该程序需要管理员权限来运行。用户可以选择批准或拒绝。

运行 Listary 每次都要弹出 UAC 通知

运行 Listary 每次都要弹出 UAC 通知

以管理员身份运行 Everything

以管理员身份运行 Everything

用户可以通过控制面板 > 系统和安全 > 更改用户帐户控制设置来更改 UAC 的行为。将滑块移动到从不通知便可以全局关闭系统 UAC 通知。Windows 并没有提供 UAC 通知的白名单功能。

……

标准 Windows 字体

标注 * 的为推荐字体。

Font NameWinXPVistaWin7Win8
Monospaced Fonts
Consolasxxx
Courier *xxxx
Courier New *xxxx
Lucida Console *xxxx
Symbol Fonts
Cambria Mathxxx
Marlettxxxx
Segoe UI Symbolxx
Symbolxxxx
Webdingsxxxx
Wingdingsxxxx
Proportional Fonts
Arial *xxxx
Arial Blackxxxx
Calibrixxx
Cambriaxxx
Candaraxxx
Comic Sans MSxxxx
Constantiaxxx
Corbelxxx
Estrangelo Edessaxxxx
Franklin Gothic Mediumxxxx
Gabriolaxx
Gautamixxxx
Georgiaxxxx
Impactxxxx
Lathaxxxx
Lucida Sans Unicodexxxx
Modernxxxx
MS Sans Serif *xxxx
MS Serif *xxxx
MV Bolixxxx
Myanmar Textx
Nyalaxxx
Palatino Linotypexxxx
Plantagenet Cherokeexxx
Romanxxxx
Scriptxxxx
Segoe Printxxx
Segoe Scriptxxx
Segoe UI *xxx
Small Fontsxxxx
Sylfaenxxxx
Tahoma *xxxx
Times New Roman *xxxx
Trebuchet MSxxxx
Tungaxxxx
Verdanaxxxx
配置 PowerShell PSReadLine 模块

PowerShell 的 PSReadLine 模块提供类似 GNU Readline 的功能,包括命令行编辑、历史记录管理、语法高亮、智能提示和多行输入支持,以增强 PowerShell 命令行的交互体验。

无论是 Windows 10/11 自带的 PowerShell 5.x 版本,或是最新的 PowerShell 7.x 版本,都已自带 PSReadLine 模块。可以使用如下命令查看是否已加载该模块:

powershellGet-Module PSReadLine

正常会输出 PSReadLine 版本等信息。如果没有输出内容,则需要手动导入模块:

……

禁用 Windows 系统热键

Windows 中存在大量与 Win 组合使用的全局热键。比如 Win + E 打开资源管理器、Win + R 打开运行对话框、Win + D 最小化所有桌面窗口、Win + Tab 显示任务视图,等等。几乎所有 Win 与单一按键的组合都被系统占用了,而通常用户日常使用的系统热键只占其中很少一部分。如果能禁用(释放)一些 Windows 系统热键,以供其他软件使用,想来也是甚好。

……

热修复 Scoop 的 GIMP 3.0 安装脚本错误

Windows 包管理器 Scoop 上的 GIMP 3.0 已经发布一周多了,期间已经推送了三个版本。然而官方的安装脚本存在错误,导致用户无法正确安装,至今仍未解决。目前 GIMP 3.0 的安装配置主要存在两个问题:

  1. 软件安装包解压缩失败
  2. 安装脚本中的文件路径不正确

问题一只要将 Scoop 默认的 innounp 卸载并替换成 innounp-unicode 就行了:

powershellscoop uninstall innounp 
scoop install versions/innounp-unicode

问题二的错误信息如下:

……

记一次 WinGet 升级故障排查

本文记录一次 WinGet 升级故障排查的过程。最终删除了 Windows 应用商店安装的版本,再使用 Scoop 重新安装,通过这种方式解决了问题。

用 Dufs 搭建简易网盘

需要在老破小 VPS 上部署一个简单的网盘服务。由于服务器配置很低,程序越小巧越好。具体需求如下:

  • 单一可执行文件
  • 不依赖外部组件
  • 配置简单
  • 支持 WebDAV

找到两个符合要求的开源项目,分别是 Go 语言编写的 webdav,以及 Rust 语言编写的 dufs。后者除了支持 WebDAV 以外,还提供了一个网页管理界面。因此最后决定选择 dufs

……