7

I am on Void Linux.

I installed libressl through the Void package manager. It put libssl.so.48.0.1 in /usr/lib. with this setup I was getting errors and https would not work properly in my apps.

So i compiled openssl-1.1 from source and copied libssl.so.1.1 in /usr/local/lib and then ldconfig.

Then my apps started working normally.

why was libssl.so.48.0.1 that came with libressl not working ? isn't its version higher than the one we compiled ?

Also, Why does libssl.so.1.1 in /usr/local/lib override libssl.so.48.0.1 in /usr/lib ? since they are both present ?

l3gi0n
  • 107

1 Answers1

10
  • For the question in the topic: /usr/local/lib is meant for libs that you installed (compiled) yourself. /usr/lib is for libraries your distribution provides. You might want to read about the Filesystem Hierarchy Standard (FHS) for more info.
  • For the 1st question in the body: To know why exactly it didn't work, more info is needed. You can already keep in mind that newer versions of software/libs are not always better. They might break compatibility, introduce bugs because of new features, ...
  • For the 2nd question:
    • The reason is that the system follows the order the dirs are mentioned in $LD_LIBRARY_PATH until it finds a lib it can use. If the var isn't present it will use the contents of /etc/ld.so.conf for this.
    • The idea behind it is that the sysadmin should be in control of the system, not the developers of the distribution. If you want to use your own version (so the one in /usr/local/lib) then the system should allow you to do it.
hakre
  • 431
Garo
  • 2,059
  • 11
  • 16