我正在Azure DevOps管道中的MAC从站上执行以下shell脚本:
#!/bin/bash
curl -O https://github.com/MonoGame/MonoGame/releases/download/v3.7.1/MonoGame.pkg
ls -l
sudo installer -pkg MonoGame.pkg -target /
此脚本提供以下输出:
[command]/bin/bash /Users/vsts/agent/2.149.2/work/1/s/azure/install.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 601 0 601 0 0 1090 0 --:--:-- --:--:-- --:--:-- 1096
total 16
-rw-r--r-- 1 vsts staff 601 Apr 6 10:17 MonoGame.pkg
-rw-r--r-- 1 vsts staff 143 Apr 6 10:17 install.sh
installer: Error the package path specified was invalid: 'MonoGame.pkg'.
##[error]/bin/bash failed with return code: 1
##[error]Bash failed with error: /bin/bash failed with return code: 1
我尝试了以下变化而没有成功:
sudo installer -pkg MonoGame.pkg -target /
sudo installer -pkg "MonoGame.pkg" -target /
sudo installer -pkg "./MonoGame.pkg" -target /
sudo installer -pkg "$(pwd)/MonoGame.pkg" -target /
做一个chmod 777 MonoGame.pkg
或用sudo执行所有操作也不会改变任何东西。
知道为什么没有找到包裹吗? (我不太了解MAC,我只是计划将它用于CI)
该消息是否可能具有误导性,并且包本身是无效的(而不是它的路径?)
错误消息实际上是误导性的:包的路径是正确的,但包本身不是有效的包。
通过git bash
在curl
中下载程序包会生成包含以下内容的文件:
<html><body>You are being <a href="https://github-production-release-asset-2e65be.s3.amazonaws.com/1579990/3a223380-fad8-11e8-82f6-eae8d42e5ce3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190406%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190406T114805Z&X-Amz-Expires=300&X-Amz-Signature=73828664c94a3ba757f52e1cc1e5e6267082dd23d70b3e39f743874c844006a2&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3DMonoGame.pkg&response-content-type=application%2Foctet-stream">redirected</a>.</body></html>
显然,这不能作为包安装。
通过按照this answer进行重定向来修复下载修复了问题。