Сбой управления хостом FreeBSD с помощью Ansible: общий объект \ "libdl.so.1 \" не найден, требуется для \ "python \" \ r \ n

2504
Drew

Управление FreeBSD на Raspberry pi 3 (FreeBSD-aarch64-12.0-GENERIC-320146M из проекта RaspBSD - http://www.raspbsd.org/ ) завершается неудачно.

Управляющим хостом является MacOS 10.13.2.

Python успешно установлен на управляемом хосте ( 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 

Однако, когда я пытаюсь запустить playbook, ansible возвращает следующую ошибку:

$ 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 

Единственная зависимость для ansible - это python, который удовлетворен.

Что не так и как я могу это исправить?

Спасибо.

1
Работает ли просто `python`? arrowd 6 лет назад 0
@arrowd, gotcha ... возвращает это: `Общий объект" libdl.so.1 "не найден, требуется" python "` Drew 6 лет назад 1
Ну, твой питон как-то сломан. Попробуйте переустановить через порты или пакеты. arrowd 6 лет назад 0
Я новичок во FreeBSD. Я установил его с помощью `sudo pkg install python`. Там не было никаких ошибок. Как бы вы предложили переустановить его? Drew 6 лет назад 1

2 ответа на вопрос

2
Mr.Gosh

Аналогичная проблема с отсутствующей зависимостью в bash и wget была исправлена ​​путем создания ссылки

ln -sf /lib/libc.so.7 /usr/lib/libdl.so.1 
0
Jim L.

У меня была похожая проблема, возникающая при переходе с FreeBSD 11.1 на 11.2, но именно она gnutlsсообщила о проблеме с отсутствием libdl.so.1.

Мое решение возникло из подсказки, которую я нашел по адресу:

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

Сначала сделайте резервную копию /etc/pkg/FreeBSD.conf:

# cp -vp /etc/pkg/FreeBSD.conf /etc/pkg/FreeBSD.conf.safety 

Затем отредактируйте /etc/pkg/FreeBSD.confи измените url:строку на:

url: "pkg+http://pkg.FreeBSD.org/$/release_2", 

Сохраните файл и выйдите из vi.

# pkg update # pkg install -f python27 

Теперь попробуйте еще раз свою игровую книгу.

Если это работает для вас, и если вы недавно обновили другие порты, вы можете кратко вызвать их, чтобы убедиться, что у них нет подобных проблем.

Я не эксперт, но я ожидаю, что эта проблема исчезнет, ​​как только вы установите свою ОС до более новой версии. В моем случае, я считаю, что проблема возникла из-за того, что репозиторий pkg поставлял пакеты, связанные с 11.2, в которых есть libdl.so.1, и я устанавливал их в тюрьму, которая все еще была в версии 11.1, которой нет.

После обновления до последней версии вам следует вернуть созданную вами /etc/pkg/FreeBSD.confрезервную копию и возобновить отслеживание последнего репозитория pkg.