我正在尝试执行一个可操作的剧本,其中包含一个使用非存档
模块的任务。因为我是在OSX上这样做的,所以我需要它使用gnu-tar
,而不是通常随OSX附带的bsd tar
,因为BSD焦油不是官方支持的。
我已经使用brew
安装了gnu tar
,并将此包的gnubin
文件夹置于$PATH
变量中的其他路径之前。然而,我的playbook仍然在/usr/bin
文件夹(原始tar
)中查找焦油
,而不是新安装的gnu焦油
。
我的问题是,< code>unarchive模块如何查找< code>tar二进制文件,我最好用什么方法来覆盖这种行为,使它利用< code>gnu-tar?
从源代码来看,它看起来像tar正在寻找一个gtar
二进制文件,如果不是tar
< code > # prefere gtar(GNU tar),因为它支持压缩选项-zjJ self . cmd _ path = self . module . get _ bin _ path(' gtar ',None)if not self . cmd _ path:# Fallback to tar self . cmd _ path = self . module . get _ bin _ path(' tar ')因此,将brew安装的GNU tar命名为“gtar”或“tar”应该可以解决问题
我找到了解决办法。
在我们继续之前,这是我的代码,用于确保酿造安装的 gnu-tar
优先于 OSX 附带的 bsd-tar
:
# gnu-tar
export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"
export MANPATH="/usr/local/opt/gnu-tar/libexec/gnuman:$MANPATH"
此代码最初位于我的<code>中。bash_profile文件。
ansible查找< code>tar二进制文件的方式与您预期的一样:与任何其他进程一样,是< code>$PATH变量。但是,运行一个play会创建一个交互式的非登录shell。正如这里所解释的,< code>~/。bashrc文件为交互式非登录shells加载,而< code>~/。bash_profile为登录shells加载。
因为我的代码位于<code>中。bash_profile文件,它从不在我运行游戏时执行。同样,这是因为运行play会创建一个交互式非登录shell,它不会加载~/.bash_profile
。因此,代码实际上应该在~/.bashrc
中。
没错,当我将代码移动到 ~/.bashrc
的那一刻,我的任务开始使用已安装的 gnu-tar
。我能够通过创建一个任务来确认这一点,将哪个 tar
注册到变量中,并将其打印到另一个调试
任务中。
介绍两类Modules: Core Module和Extra module Extra module的配置和使用方法 通过命令行查看modules的用法
我写了一个剧本,下载tar文件 " msg ":"找不到\"/Users/harmeet/的处理程序。ansi ble/tmp/ansi ble-tmp-1549339698.75-251687957122076/config . tar 9 ixauq . gz \ "。确保安装了提取文件所需的命令。命令\"/usr/bin/tar\ "被检测为tar类型bsd。需要GNU tar。命令\"/u
什么是Ansible Module? bash无论在命令行上执行,还是bash脚本中,都需要调用cd、ls、copy、yum等命令;module就是Ansible的“命令”,module是ansible命令行和脚本中都需要调用的。常用的Ansible module有yum、copy、template等。 在bash,调用命令时可以跟不同的参数,每个命令的参数都是该命令自定义的;同样,ansible
问题内容: 我有一个字节列表作为整数,这类似于 如何将此列表作为二进制文件写入文件? 这行得通吗? 问题答案: 这正是用于: 如果您使用的是Python 3.x,则可以改用(也许应该这样做,因为它可以更好地表明您的意图)。但是在Python 2.x中,这是行不通的,因为它只是的别名。像往常一样,使用交互式解释器进行显示比使用文本进行解释要容易,所以让我这样做。 Python 3.x: Python
问题内容: 我从事Web编程已经有几年了,自那时以来,我还没有为桌面应用程序做任何编程,而且我已经忘记了很多事情。如果这太简单,请耐心等待。 现在我有这种情况: 我正在尝试将一些散列字存储在文件中。我想我应该为此使用二进制文件(如果我错了,请纠正我)。但是我不知道如何将单词写到文件中。我尝试了很多方法,但是当我读回文件并尝试解密单词时,我得到了。 有谁知道如何将单词写到文件中? PS:我使用以下代
问题内容: 使用带有角的ResponseEntity下载任何文件不起作用 我需要在客户端使用angular下载文件,该文件可以具有pdf或excel或image或txt的任何格式…我的方法仅适用于txt文件,但给我excel和image的失败格式,对于pdf,它会给出一个空的pdf。 所以在我的控制器中,这里是调用service方法的函数: 而我的service.js具有: 我的服务方法是这样的: