首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过macOS中的可解析解压缩模块提取tar文件?

无法通过macOS中的可解析解压缩模块提取tar文件?
EN

Stack Overflow用户
提问于 2019-02-05 05:23:54
回答 2查看 10.4K关注 0票数 3

我编写了一本剧本,它下载tar文件,并在运行剧本时将其解压缩到Mac.But中的某个目录,但在运行失败时出现以下错误

"msg":“未能找到\"/Users/harmeet/.ansible/tmp/ansible-tmp-1549339698.75-251687957122076/config.tar9IXAUQ.gz\".的处理程序,请确保安装了解压缩文件所需的命令。命令\"/usr/bin/ tar \”检测为tar类型bsd。GNU需要。命令\"/usr/bin/unzip\“无法处理存档。

剧本代码

代码语言:javascript
复制
-name: Download the tar for sample config 
unarchive:
 src: http://someremoteurl/config.tar.gz 
dest: /Users/{{ansible_user}}/.myfolder/ 
remote_src: yes 
creates: /Users/{{ansible_user}}/.myfolder/config

如果在远程服务器(如http://someremoteurl/config.zip )上使用zip,则此任务可以工作,但对于tar文件则失败。

在查看gtar之后,我还在.bash_src中安装了gnu tar,如this question &更新的路径。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-19 07:11:27

实际上,在macOS上,它查找的是基于GNU的tar存档模块,这在mac上是找不到的。因此,如果您在ansible中为mac使用zip模块,它将工作,但为此,我们可能需要更改剧本文件&它可能会产生问题,因为我在mac和linux中都使用单一的剧本。我使用基于GNU的tar存档模块来解决这个问题。

我用以下步骤解决了这个问题

  1. 用自制的方法安装gtar。brew install gnu-tar
  2. .bashsrc文件中设置gtar的路径,否则它将无法使用gtar进行解压缩。通常.bashsrc存在于$HOME路径上。如果不存在,那么创建它。

出口PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH“MANPATH="/usr/local/opt/gnu-tar/libexec/gnuman:$MANPATH”

谢谢

票数 6
EN

Stack Overflow用户

发布于 2021-04-21 09:25:00

如果您的默认外壳是zsh,那么您应该将以下内容放在~/.zshenv

代码语言:javascript
复制
export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"

您可以通过以下方法检查它是否正常工作:

代码语言:javascript
复制
ansible the-hostname -m command -a "which tar"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54528115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档