【发布时间】:2015-01-04 18:08:08
【问题描述】:
从命令提示符或 PowerShell 开始(两者都可以;我可以弄清楚如何做另一个给定的),我如何调用 MSYS2 shell 来运行命令?
更具体的问题
我包含此信息是为了避免 XY 问题,但我坚信最好通过上述(更一般的)问题的答案来解决。
特别是,我希望编写一个 shell 脚本来更新Part III, Step 3 here 中列出的软件包。所以我需要类似的东西:
[invoke msys2 bash] -c "pacman -Sy --needed msys2-runtime"
直接调用 bash 可执行文件不起作用:
C:\>C:\msys64\usr\bin\bash.exe -c "pacman -Sy --needed msys2-runtime"
/usr/bin/bash: pacman: command not found
我认为这是环境问题。更改 PATH 以包含 MSYS2 的 bin 目录的路径也不能解决问题。当它试图安装一个包时,会发生不好的事情(nano 只是一个例子):
C:\>bash -c "pacman -Sy --needed --noconfirm nano"
:: Synchronizing package databases...
mingw32 is up to date
mingw64 is up to date
msys is up to date
resolving dependencies...
looking for conflicting packages...
Packages (1) nano-2.3.6-2
Total Installed Size: 1.81 MiB
Net Upgrade Size: 0.17 MiB
:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring [########################################################] 100%
(1/1) checking package integrity [########################################################] 100%
(1/1) loading package files [########################################################] 100%
(1/1) checking for file conflicts [########################################################] 100%
(1/1) checking available disk space [########################################################] 100%
(1/1) upgrading nano [########################################################] 100%
error: command (/usr/bin/bash /usr/bin/bash -c . /tmp/alpm_shqjUE/.INSTALL; post_upgrade 2.3.6-2 2.3.2-1 ) failed to execute correctly
尝试调用批处理文件 (C:\msys64\msys2_shell.bat) 在新窗口中打开一个新 shell,这让我不知道它是失败还是成功。
那么我怎样才能让shell进入MSYS2的正常状态呢?
【问题讨论】:
-
我现在无法测试,但不妨试试
bash -i -c ...或bash -l -c ...或bash -i -l -c ...