修复 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 的快捷方式:

……

热修复 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

问题二的错误信息如下:

……

Scoop 踩坑记录

安装时无法指定软件版本

网上部分教程表示 scoop 安装软件时可以指定版本号:

powershellscoop install [email protected]

但实际上这个功能现在已无法正常使用,目前的官方文档里也没有注明这样的用法。此外,有些软件官方网站并不会保留历史版本的下载链接,这也是 scoop 不能支持安装软件指定版本的原因之一。

如果要安装软件的历史版本,只能通过自建软件仓库的方式来实现。

不支持通过 manifest 文件安装

通过命令 scoop help install 查看安装参数可以得知,scoop 应该是支持从 URL 或本地 manifest 文件来安装软件的。

……

Windows 包管理工具

几乎每个 Linux 发行版都会自带包管理工具,比如 CentOS 的 yum、Debian 家族的 apt、Arch Linux 的 pacman 等;此外,FreeBSD 系统有 pkg 和 ports;macOS 上有 Homebrew。而 Windows 长久以来都是通过安装包来进行软件分发部署,官方没有提供任何包管理工具,且 Win 10 自带的微软应用商店一直被人诟病。直到 2020 年,微软通过抄袭另一款开源 Windows 包管理工具 AppGet 之后,开发出了一款叫做 WinGet 的包管理工具,但微软的这款工具只能运行在 Win 10 系统上。令人遗憾的是,由于微软的抄袭行为,AppGet 的作者已经停止维护这个项目。

……