Выпуск Jenkins Xvfb libcrypto - PullRequest
       21

Выпуск Jenkins Xvfb libcrypto

0 голосов
/ 17 сентября 2018

У меня есть работа Дженкинса (для тестирования без селена).Я установил плагин Xvfb в Дженкинс.Но когда я запускаю задание, выдается следующая ошибка

/var/jenkins_home/Xvfb: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory

Не уверен, хотя libcrypto.so.10 также доступен в переменной PATH.

1 Ответ

0 голосов
/ 18 сентября 2018

Полученное сообщение об ошибке указывает на то, что Xvfb не может найти общий объект для libcrypto. Это происходит, когда динамический компоновщик не может найти зависимость исполняемого файла. Как правило, вы можете определить, какие библиотеки невозможно найти, используя команду ldd в качестве пользователя Jenkins, например:

$ ldd /usr/bin/Xvfb
linux-vdso.so.1 (0x00007ffdc6def000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f6bcb054000)
libcrypto.so.10 => not found

Динамический компоновщик в Linux обычно не использует переменную PATH, чтобы определить, откуда загружать библиотеки. Обычно он выглядит следующим образом: переменная окружения LD_LIBRARY_PATH, содержимое /etc/ld.so.conf, затем /lib и /usr/lib. Подробнее в этом ответе Unix Stack Exchange или справочной странице для ld.so .

Где именно это выглядит, зависит от используемого вами дистрибутива и от того, как вы его настроили. У вас есть несколько способов помочь Дженкинсу найти вашу библиотеку:

  • Добавьте путь для libcrypto.so.10 к переменной среды. LD_LIBRARY_PATH - Это должно работать, но в зависимости от того, что вы создаете, это может испортить другие вещи. Некоторые (в основном C / C ++) сценарии сборки требуют, чтобы это было сброшено. Это имеет то преимущество, что влияет только на пользователя Jenkins и не требует установки дополнительных привилегий.
  • Добавьте путь для libcrypto.so.10 в список путей в файле /etc/ld.so.conf (или в некоторых дистрибутивах в свой собственный файл в /etc/ld.so.conf.d/. Это должно работать без неприятных побочных эффектов LD_LIBRARY_PATH, но требует привилегии root и повлияет на любого пользователя на компьютере.
  • Копировать (или символическую ссылку) libcrypto.so.10 в /usr/lib. Это тактика перебора и, вероятно, плохая идея, поскольку она может испортить систему упаковки вашего дистрибутива, но она должна работать, если больше ничего не работает.
...