Ein ähnliches Problem mit fehlender Abhängigkeit in bash und wget wurde durch das Erstellen eines Links behoben
ln -sf /lib/libc.so.7 /usr/lib/libdl.so.1
Die Verwaltung von FreeBSD auf Raspberry Pi 3 (FreeBSD-aarch64-12.0-GENERIC-320146M aus dem RaspBSD-Projekt - http://www.raspbsd.org/ ) schlägt fehl.
Steuerhost ist MacOS 10.13.2.
Python wurde erfolgreich auf dem verwalteten Host installiert ( 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
Wenn ich versuche, ein Playbook auszuführen, gibt ansible den folgenden Fehler zurück:
$ 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
Die einzige Abhängigkeit für Ansible ist der Python, der zufrieden ist.
Was ist falsch und wie kann ich es beheben?
Vielen Dank.
Ein ähnliches Problem mit fehlender Abhängigkeit in bash und wget wurde durch das Erstellen eines Links behoben
ln -sf /lib/libc.so.7 /usr/lib/libdl.so.1
Beim Übergang von FreeBSD 11.1 auf 11.2 ist ein ähnliches Problem aufgetreten, aber es wurde gnutls
berichtet, dass das Problem vermisst wurde libdl.so.1
.
Meine Lösung ergab sich aus einem Tipp, den ich gefunden habe:
Machen Sie zuerst ein Backup von /etc/pkg/FreeBSD.conf
:
# cp -vp /etc/pkg/FreeBSD.conf /etc/pkg/FreeBSD.conf.safety
Bearbeiten Sie dann /etc/pkg/FreeBSD.conf
die url:
Zeile und ändern Sie sie wie folgt:
url: "pkg+http://pkg.FreeBSD.org/$/release_2",
Speichern Sie die Datei und beenden Sie vi.
# pkg update # pkg install -f python27
Versuchen Sie es erneut mit Ihrem Spielbuch.
Wenn dies für Sie funktioniert und Sie kürzlich andere Ports aktualisiert haben, sollten Sie ihnen einen flüchtigen Aufruf geben, um sicherzustellen, dass sie keine ähnlichen Probleme haben.
Ich bin kein Experte, aber ich würde erwarten, dass dieses Problem verschwinden wird, sobald Sie Ihr Betriebssystem auf eine neuere Version bringen. In meinem Fall glaube ich, dass das Problem entstanden ist, weil das Paket pkg Pakete für 11.2, die eine libdl.so.1 haben, bereitstellt, und ich sie in ein Gefängnis installierte, das sich noch auf Version 11.1 befand, was nicht der Fall ist.
Nachdem Sie ein Upgrade auf eine aktuelle Version durchgeführt haben, sollten Sie /etc/pkg/FreeBSD.conf
die Sicherungskopie wiederherstellen, die Sie erstellt haben, und das Tracking des neuesten Paket-Repos fortsetzen.