如何在VSTS在线构建任务的Hosted Linux Preview中安装AzCopy并复制文件到Azure存储
解决Hosted Linux Preview环境中AzCopy安装失败(rsync报错)的问题
我碰到过类似的坑,在Hosted Linux Preview环境里安装AzCopy时,确实会因为基础镜像缺少依赖工具导致报错——你看到的rsync: co...的错误,就是因为环境里默认没装rsync,而AzCopy的安装脚本依赖它来完成文件复制。下面是一套亲测可行的解决步骤:
1. 先安装rsync依赖
在VSTS构建流程里添加一个Shell脚本任务,先执行依赖安装:
sudo apt-get update && sudo apt-get install -y rsync
这个命令会更新包源并安装rsync,解决脚本依赖缺失的问题。
2. 正确安装AzCopy(推荐v10版本)
旧版本的AzCopy可能有更多兼容性问题,推荐使用跨平台的v10版本,步骤如下:
- 从Azure官方获取AzCopy v10的Linux版本下载链接
- 执行以下命令完成安装:
# 下载AzCopy压缩包 wget -O azcopy.tar.gz <你的AzCopy下载链接> # 解压压缩包 tar -xf azcopy.tar.gz # 执行安装脚本 sudo ./azcopy_linux_amd64_*/install.sh
安装完成后,可以执行azcopy --version验证是否安装成功。
3. 使用AzCopy上传构建ZIP到Azure存储文件
安装成功后,就可以用AzCopy把构建生成的ZIP文件传到Azure文件共享了,命令示例:
azcopy copy "$(Build.ArtifactStagingDirectory)/your-archive.zip" "https://<你的存储账户名>.file.core.windows.net/<文件共享名>/your-archive.zip?<SAS令牌>"
需要替换的参数说明:
<你的存储账户名>:Azure存储账户的名称<文件共享名>:你要上传到的文件共享名称<SAS令牌>:需要在Azure门户生成有写入权限的SAS令牌,或者用Azure CLI在构建任务中动态获取
问题原因解析
Hosted Linux Preview的基础镜像并没有预装rsync,而AzCopy的install.sh脚本第20行正好用到了rsync来将AzCopy二进制文件复制到系统目录(比如/usr/bin),所以缺少这个工具就会直接抛出错误。先补装依赖再安装AzCopy就能解决问题。
内容的提问来源于stack exchange,提问作者DFBerry
相关产品推荐
相关产品推荐

