标签: msys2

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

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

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

在此处输入图片说明

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

在此处输入图片说明

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

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

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

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

package-management mingw msys2

9
推荐指数
1
解决办法
4583
查看次数

可以在 Cygwin 或 Git Bash 中访问 Windows %PROGRAMFILES(X86)% 环境变量吗?

在 Git Bash 和 Cygwin 中,我可以轻松访问 Windows%PROGRAMFILES%环境变量:

$ echo $PROGRAMFILES
C:\Program Files

$ echo ${PROGRAMFILES}
C:\Program Files
Run Code Online (Sandbox Code Playgroud)

但是,由于变量名称中的方括号/圆括号,我无法%PROGRAMFILES(X86)%以相同的方式访问:

$ echo $PROGRAMFILES(X86)
bash: syntax error near unexpected token `('

$ echo ${PROGRAMFILES(X86)}
bash: ${PROGRAMFILES(X86)}: bad substitution

$ echo ${PROGRAMFILES\(X86\)}
bash: ${PROGRAMFILES\(X86\)}: bad substitution
Run Code Online (Sandbox Code Playgroud)

当然,除非我使用命令提示符:

C:\Users\myname>echo %PROGRAMFILES(X86)%
C:\Program Files (x86)
Run Code Online (Sandbox Code Playgroud)

(我很少这样做!)

有没有办法转义环境变量名称中的括号,或者这些在类似 Bash 的环境中完全无效(因此无法访问)?

cygwin environment-variables git-bash msys2 git-for-windows

6
推荐指数
1
解决办法
2134
查看次数

MSYS2 主文件夹:显示 ~

我刚刚安装了 MSYS2,为了让它使用我的 Windows 用户文件夹作为 $HOME,我把它放在 /etc/bash.bashrc 中:

HOME=$USERPROFILE
Run Code Online (Sandbox Code Playgroud)

当我只运行 cd 时,这工作正常,除了当我在那里时提示不再显示 ~ 作为当前路径。另一个问题是

cd ~
Run Code Online (Sandbox Code Playgroud)

带我到我的主目录,但在 ~ 之后按 Tab 不会用我的主目录的内容展开它;相反,我得到了一个以 ~ 为前缀的计算机用户列表,并尝试访问其中之一使其尝试 cd 到 /home/(username)。

我怎样才能让 ~ 与不在 /home 中的主目录一起玩得很好?

bash msys msys2

5
推荐指数
2
解决办法
9184
查看次数

MSYS安装中msys2.exe和mingw64.exe的区别

我的 Windows 机器上安装了 MSYS。

根文件夹内有两个可执行文件:

  • msys2.exe
  • mingw64.exe

(还有一个 mingw32.exe,但我相信这只是 mingw64 的 32 位版本)。

两个可执行文件都会启动一个终端窗口,除了 $PATH 报告略有差异之外,这对我来说似乎是相同的。

这两者有什么区别,各自的目的是什么?

mingw msys msys2

5
推荐指数
0
解决办法
1112
查看次数

将curl中的服务器地址替换为IP

我的意思是使用IP而不是服务器名称,直接curlhttp://....\n我在Msys2,Win 10下(这就是为什么在这里发帖而不是在askubuntu中发帖的原因,例如),但我想这将是在 Linux 中也一样。

\n

我无法完成这项工作。\n我在下面发布了我尝试过的详细信息。\n我使用 时遇到了类似的失败wget。\n我写了一篇单独的文章,因为我不确定解释和解决方案与此处相同。

\n

这样做的正确方法是什么?

\n

注意:使用curl ftp://<IP>/...\n 而不是curl http://<IP>/...\n 效果很好。

\n
\n

这是我尝试过的:

\n
    \n
  1. 获取服务器的 IP 地址
  2. \n
\n
    $ ping us.archive.ubuntu.com\n    \n    Haciendo ping a us.archive.ubuntu.com [91.189.91.38] con 32 bytes de datos:\n    Respuesta desde 91.189.91.38: bytes=32 tiempo=173ms TTL=52\n    Respuesta desde 91.189.91.38: bytes=32 tiempo=166ms TTL=52\n    Respuesta desde 91.189.91.38: bytes=32 tiempo=172ms TTL=52\n    \n    Estad\xc3\xadsticas de ping para 91.189.91.38:\n        Paquetes: enviados = 3, recibidos …
Run Code Online (Sandbox Code Playgroud)

networking linux ip curl msys2

4
推荐指数
1
解决办法
3万
查看次数

Windows 终端预览中的 MSYS shell?

[编辑添加:]事实证明,这里的实际问题是我犯的一个无脑的打字错误。我实际问题的答案是“是的,如果你不是白痴,你只需做显而易见的事情,它就会起作用”。我接受基本上是这样说的答案,但也许实际上应该删除这个问题。

我的雇主在 Windows 上进行软件开发的标准设置涉及使用 MSYS。(传统的 MSYS 或 MSYS2。)有没有办法在新的 Windows 终端中运行其中任何一个的 shell?

sh.exe传统的 MSYS 有一个 Windows 批处理脚本,可以安排在运行它的任何终端内执行。因此,您可能认为在 WT 中创建一个新的配置文件profiles.json,使用"commandline": "path\to\sh.exe",就可以解决问题。唉,不:如果我这样做并向 WT 询问该类型的终端,我会得到一个普通的旧cmd提示。(从 开始C:\WINDOWS\System32。)[编辑添加:] 呃,不,唉,是的:如果我这样做,那么它基本上可以工作,但是这会出现一些错误,而接受的答案是正确的。

您运行以获得 MSYS2 提示符的是 Windows 可执行文件,而不是传统 MSYS 中的批处理脚本,但它也启动自己的sh.exe. 同样的事情也会发生。

这里发生的事情是 MSYSsh.exe只是期望通过 stdin 和 stdout 进行交互,而适合直接从 WT 运行的可执行文件需要了解相当复杂的 Microsoft 控制台 API 或类似的东西。

我也尝试过以下方法,但没有什么乐观的态度,也没有成功(它们都产生与上面相同的结果):

"commandline": "cmd path/to/sh.exe"
"commandline": "cmd /c path/to/sh.exe"
"commandline": "cmd path/to/msys2_shell.cmd"
"commandline": "cmd /c path/to/msys2_shell.cmd"
Run Code Online (Sandbox Code Playgroud)

有没有什么方便的方法可以让 MSYS shell 在 Windows 终端中运行?

windows msys msys2 windows-terminal

3
推荐指数
1
解决办法
9987
查看次数