MSYS2 和“此操作成功所需的至少一个有效且已启用的存储库。”

jww*_*jww 9 package-management mingw msys2

我在 Windows 8.1 测试机上安装了单独的 MSYS2 32 位和 64 位。MSYS2 是从MinGW-64 下载页面获得的。每个安装都安装了开发人员工具,如 GCC、Git、GDB、Make 等。

我在更新 MSYS2 时遇到问题。当我尝试更新组件时,我收到“此操作成功所需的至少一个有效且已启用的存储库”

在此处输入图片说明

设置 | 网络设置为无代理设置 | 存储库具有默认存储库:

在此处输入图片说明

MSYS2 32 位和 MSYS2 64 位都会出现此问题。maintenancetool.exe以管理员和普通用户身份运行时也会发生这种情况。

据我所知,自从我安装 MSYS 或各种开发人员包以来,一切都没有改变。存储库与以前相同。

搜索没有出现预期的结果。我预计会有很多点击和很多建议,但有 5 个结果(这看起来很奇怪)。

为什么我会遇到错误以及如何修复它?

Col*_*fin 8

maintenancetool.exe是IMO不可否认平展一个破碎的怪物,在msys2开发团队(显然是4人在整个世界)的MSYS2 Github上回购这里列出:

4 个具有 MSYS2 存储库/项目权限的 DEV

早就应该猛拉了,答案的一部分是,除了完全手动卸载整个 MSYS2 之外,此时根本不可能对它做任何事情。

我永远不会在任何其他情况下实际发布这样的官方堆栈答案,但遗憾的是这是事实,在这种情况下,会为其他人节省大量搜索时间。我自己也浪费了很多时间尝试一切,是的,您可以手动尝试为 QT 等添加存储库,但这对于它的预期目的来说不是一个有效的解决方案,通常是典型的 Windows 安装上的 mingwin32/64/msys+。

相反,作为部分答案,第二部分是我发现的唯一解决方法是启动 shell,并且因为您将收到使用错误等,我通常只是跳转到运行:

   <DO>

1. pacman -Syu --force

2. <WAIT UNTIL PROMPTED WITH IN USE (IF CORE UPDATING) - CLICK X TO KILL SHELL/RELAUNCH/RERUN SAME ABOVE COMMAND AGAIN>

   <LOOP UNTIL IT REPORTS UP TO DATE>
Run Code Online (Sandbox Code Playgroud)

直到提交此代码的开发人员将其作为工具集的主要面孔留给公众使用多年,决定将 WORKING 代码放在提供现有未连线 GUI 按钮/下拉菜单/文本框预期功能的表单上/等等。(使它成为一个有效的 GUI 包管理界面)帮自己一个忙,做我下次提醒自己的事情,并在此处做最后一步,将maintenancetool.exe.IS.BROKEN!!!.txt文件放在目录下。:)