Die Verwaltung des FreeBSD-Hosts mit Ansible schlägt fehl: Das gemeinsam genutzte Objekt \ "libdl.so.1 \" wurde nicht gefunden. Erforderlich für \ "Python \" \ r \ n

2337
Drew

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.

1
Funktioniert das Laufen nur "Python"? arrowd vor 6 Jahren 0
@arrowd, gotcha ... gibt folgendes zurück: `Shared Object" libdl.so.1 "nicht gefunden, für" Python "` erforderlich Drew vor 6 Jahren 1
Nun, dein Python ist irgendwie kaputt. Versuchen Sie eine Neuinstallation über Ports oder Pakete. arrowd vor 6 Jahren 0
Ich bin neu bei FreeBSD. Ich habe es mit `sudo pkg install python` installiert. Es sind keine Fehler aufgetreten. Wie würden Sie eine Neuinstallation vorschlagen? Drew vor 6 Jahren 1

2 Antworten auf die Frage

1
Mr.Gosh

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 
0
Jim L.

Beim Übergang von FreeBSD 11.1 auf 11.2 ist ein ähnliches Problem aufgetreten, aber es wurde gnutlsberichtet, dass das Problem vermisst wurde libdl.so.1.

Meine Lösung ergab sich aus einem Tipp, den ich gefunden habe:

https://forums.freenas.org/index.php?threads/openvpn-fails-in-jail-with-libdl-so-1-not-found-error.70391/#post-486449

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.confdie 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.confdie Sicherungskopie wiederherstellen, die Sie erstellt haben, und das Tracking des neuesten Paket-Repos fortsetzen.