Error while loading shared libraries: /usr/local/lib64/libssl.so.1.1

后端 未结 8 1955
無奈伤痛
無奈伤痛 2021-01-05 00:34

I’m trying to compile openssl-1.1.0e on Centos 7 (7.3.1611) but after i successfully compiled everything without any warning, i get an error when i’m trying any openssl comm

相关标签:
8条回答
  • 2021-01-05 00:57

    In this case, you should configure OpenSSL with:

    ./Configure linux-x86_64 enable-ec_nistp_64_gcc_128 -Wl,-rpath=/usr/local/lib64 \ --prefix=/usr/local --openssldir=/usr/local OpenSSL does not add RPATHs by default (except on some of the BSDs). You need to manually specify it in your configure command. Once you manually specify it, things will "just work" for you without the need for LD_LIBRARY_PATH tricks.

    i have followed your advice but still same error if i don't specify LD_LIBRARY_PATH it doesn't work anyway...

    [mdm@dev openssl-1.1.0e]$ export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64
    
    [mdm@dev openssl-1.1.0e]$ ldd /usr/local/bin/openssl 
        linux-vdso.so.1 =>  (0x00007ffc87aef000)
        /lib/$LIB/liblsp.so => /lib/lib64/liblsp.so (0x00007f57511fa000)
        libssl.so.1.1 => /usr/local/lib/libssl.so.1.1 (0x00007f5750f8c000)
        libcrypto.so.1.1 => /usr/local/lib/libcrypto.so.1.1 (0x00007f5750ae8000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f57508cb000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f57506ae000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f57502ed000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f5751401000)
    [mdm@dev openssl-1.1.0e]$ openssl version
    OpenSSL 1.1.0e  16 Feb 2017
    

    It looks like i have to use LD_LIBRARY_PATH anyway I wonder if that is normal or is just misbehavior in my machine for some reasons that my knowledge can't figure it out...

    0 讨论(0)
  • 2021-01-05 00:57

    For CentOS 7+, Add the following to /etc/environment:

    LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64
    
    0 讨论(0)
  • 2021-01-05 01:03

    Try this:

    ldd libssl.so   ->  libcrypto.so.1.1 => not found
    sudo ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
    libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f17d46c7000)
    
    0 讨论(0)
  • 2021-01-05 01:08

    thanks to levitte, RenatoXSR

    for OpenSSL 1.1.0g, CentOS 7.2.1511, you can try this

    sudo bash -c "echo '/usr/local/lib64' >> /etc/ld.so.conf"
    sudo ldconfig
    

    this link explains the cause of problem

    The use of RPATH is inconsistent. On some systems, ld.so considers RPATH before even looking at LD_LIBRARY_PATH, which makes it hard to override, for example when testing a new OpenSSL build (!). We did so in pre-1.1.0 versions by hacking LD_PRELOAD, but there are some sanitizers that do not agree with that, which makes life hard as well, for example when testing a new OpenSSL build (!)

    this link gave an solution example

    0 讨论(0)
  • 2021-01-05 01:10

    jk2K solved my issue

    For OpenSSL 1.1.0g, CentOS 7.2.1511, you can try this:

    sudo bash -c "echo '/usr/local/lib64' >> /etc/ld.so.conf"
    sudo ldconfig
    
    0 讨论(0)
  • 2021-01-05 01:13

    Sometime when you want climb the mountain you looking just the top without checking if something can help you on the base...

    In my case I solved just exporting LD_LIBRARY_PATH before compile it again.

    export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64
    

    and after

    sudo ldconfig
    

    that should keep saved the path also after rebooting machine (and also for next times)

    0 讨论(0)
提交回复
热议问题