代码之家  ›  专栏  ›  技术社区  ›  Dhruv Pandey

詹金斯Xvfb libcrypto问题

  •  1
  • Dhruv Pandey  · 技术社区  · 6 年前

    我有一份詹金斯的工作(硒无头测试)。我已经在Jenkins安装了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在路径变量中也可用。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Michael Powers    6 年前

    您收到的错误消息表明 Xvfb 找不到libcrypto的共享对象。当动态链接器找不到可执行文件的依赖项时,就会发生这种情况。通常,您可以通过使用 ldd 命令,例如:

    $ 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
    

    PATH 变量来确定从何处加载库。它通常看起来像是 LD_LIBRARY_PATH 环境变量 /etc/ld.so.conf ,那么 /lib ,和 /usr/lib . 更多信息 in this Unix Stack Exchange answer 或者 man page for ld.so .

    它的确切位置取决于您使用的发行版以及如何配置它。你有几个选择可以帮助詹金斯找到你的图书馆:

    • 为添加路径 libcrypto.so.10 到环境变量
    • 为添加路径 到文件中的路径列表 /等等/ld.so.conf (或在某些发行版上放入自己的文件中) /etc/ld.so.conf.d/ . 这样做应该不会产生令人讨厌的副作用 LD\库\路径
    • 复制(或符号链接) libcrypto.so文件.10 /usr/库 . 这是一个蛮力战术,可能是一个坏主意,因为它可能会弄乱你的发行版的包装系统,但它应该工作,如果没有其他的。