Я нашел решение.
Прежде чем мы продолжим, это мой код, который гарантирует, что установленный brew gnu-tar
имеет приоритет над bsd-tar
, который поставляется с OSX:
# gnu-tar
export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"
export MANPATH="/usr/local/opt/gnu-tar/libexec/gnuman:$MANPATH"
Этот код изначально находился в моем ~/.bash_profile
файле.
Способ, которым ansible ищет двоичный файл tar
, такой же, как и следовало ожидать: переменная $PATH
, как и любой другой процесс. Однако при запуске воспроизведения создается интерактивная оболочка без регистрации . Как объяснено здесь , файл ~/.bashrc
загружается для интерактивных оболочек без регистрации , в то время как ~/.bash_profile
загружается для оболочек входа .
Поскольку мой код находился в файле ~/.bash_profile
, он никогда не запускается, когда я запускаю воспроизведение. Опять же, это потому, что при запуске игры создается интерактивная оболочка без регистрации , которая не загружает ~/.bash_profile
. Следовательно, код на самом деле должен быть в ~/.bashrc
.
Правда, момент, когда я переместил свой код в ~/.bashrc
, был, когда моя задача начала использовать установленный gnu-tar
. Я смог подтвердить это, создав задачу для регистрации which tar
в переменной и напечатав ее в другой debug
задаче.