Gestión de FreeBSD en Raspberry pi 3 (FreeBSD-aarch64-12.0-GENERIC-320146M del proyecto RaspBSD -http://www.raspbsd.org/) falla.
El host de control es MacOS 10.13.2.
Python se instaló correctamente en el host administrado (rpi3_freebsd):
$ ansible -m raw -a "sudo pkg install -y python27" --user drew --ask-pass rpi3_freebsd
SSH password:
rpi | SUCCESS | rc=0 >>
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
The most recent version of packages are already installed
Sin embargo, cuando intento ejecutar un libro de jugadas, ansible devuelve el siguiente error:
$ ansible-playbook --user drew --ask-pass bootstrap.yml -vvvv
ansible-playbook 2.4.3.0
config file = /Users/drew/SynologyDrive/rpi-scripts/ansible/ansible.cfg
configured module search path = [u'/Users/drew/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/Cellar/ansible/2.4.3.0/libexec/lib/python2.7/site-packages/ansible
executable location = /usr/local/bin/ansible-playbook
python version = 2.7.10 (default, Jul 15 2017, 17:16:57) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)]
Using /Users/drew/SynologyDrive/rpi-scripts/ansible/ansible.cfg as config file
SSH password:
setting up inventory plugins
Parsed /Users/drew/SynologyDrive/rpi-scripts/ansible/hosts inventory source with ini plugin
Loading callback plugin skippy of type stdout, v2.0 from /usr/local/Cellar/ansible/2.4.3.0/libexec/lib/python2.7/site-packages/ansible/plugins/callback/skippy.pyc
PLAYBOOK: bootstrap.yml ******************************************************************************************************************
1 plays in bootstrap.yml
PLAY [raspberrypi_3] *********************************************************************************************************************
TASK [Gathering Facts] *******************************************************************************************************************
Using module file /usr/local/Cellar/ansible/2.4.3.0/libexec/lib/python2.7/site-packages/ansible/modules/system/setup.py
<172.16.42.6> ESTABLISH CONNECTION FOR USER: drew on PORT 22 TO 172.16.42.6
<172.16.42.6> EXEC /bin/sh -c 'echo ~ && sleep 0'
<172.16.42.6> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/drew/.ansible/tmp/ansible-tmp-1522353818.07-1230475463058 `" && echo ansible-tmp-1522353818.07-1230475463058="` echo /home/drew/.ansible/tmp/ansible-tmp-1522353818.07-1230475463058 `" ) && sleep 0'
<172.16.42.6> PUT /var/folders/2c/m_z3y5gs3fz1m2b2lwzk7yl80000gn/T/tmpgWCvx_ TO /home/drew/.ansible/tmp/ansible-tmp-1522353818.07-1230475463058/setup.py
<172.16.42.6> EXEC /bin/sh -c 'chmod u+x /home/drew/.ansible/tmp/ansible-tmp-1522353818.07-1230475463058/ /home/drew/.ansible/tmp/ansible-tmp-1522353818.07-1230475463058/setup.py && sleep 0'
<172.16.42.6> EXEC /bin/sh -c '/usr/local/bin/python /home/drew/.ansible/tmp/ansible-tmp-1522353818.07-1230475463058/setup.py; rm -rf "/home/drew/.ansible/tmp/ansible-tmp-1522353818.07-1230475463058/" > /dev/null 2>&1 && sleep 0'
fatal: [rpi]: FAILED! => {
"changed": false,
"module_stderr": "",
"module_stdout": "Shared object \"libdl.so.1\" not found, required by \"python\"\r\n",
"msg": "MODULE FAILURE",
"rc": 0
}
to retry, use: --limit @/Users/drew/SynologyDrive/rpi-scripts/ansible/bootstrap.retry
PLAY RECAP *******************************************************************************************************************************
rpi : ok=0 changed=0 unreachable=0 failed=1
La única dependencia de ansible es Python, que se satisface.
¿Qué está mal y cómo puedo solucionarlo?
Gracias.
Respuesta1
Un problema similar con la dependencia faltante en bash y wget se solucionó creando un enlace
ln -sf /lib/libc.so.7 /usr/lib/libdl.so.1
Respuesta2
Tuve un problema similar al hacer la transición de FreeBSD 11.1 a 11.2, pero fue gnutls
el que informó el problema de que faltaban archivos libdl.so.1
.
Mi solución surgió de un consejo que encontré en:
Primero haga una copia de seguridad de /etc/pkg/FreeBSD.conf
:
# cp -vp /etc/pkg/FreeBSD.conf /etc/pkg/FreeBSD.conf.safety
Luego edite /etc/pkg/FreeBSD.conf
y cambie la url:
línea para que sea:
url: "pkg+http://pkg.FreeBSD.org/${ABI}/release_2",
Guarde el archivo y salga de vi.
# pkg update
# pkg install -f python27
Ahora prueba tu libro de jugadas ansible nuevamente.
Si eso funciona para usted y si ha actualizado otros puertos recientemente, es posible que desee invocarlos brevemente para asegurarse de que no tengan problemas similares.
No soy un experto, pero espero que este problema desaparezca una vez que actualice su sistema operativo a una versión más reciente. En mi caso, creo que el problema surgió porque el repositorio pkg proporcionaba paquetes vinculados para 11.2, que tiene libdl.so.1, y los estaba instalando en una cárcel que todavía estaba en la versión 11.1, que no la tiene.
Una vez que haya actualizado a una versión actualizada, debe volver /etc/pkg/FreeBSD.conf
a la copia de seguridad que realizó y reanudar el seguimiento del último repositorio de paquetes.