LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   HTTPD won't start with latest sasl (https://www.linuxquestions.org/questions/slackware-14/httpd-wont-start-with-latest-sasl-4175572459/)

cmyster 02-17-2016 03:36 AM

HTTPD won't start with latest sasl
 
Unless I did something wrong, but with latest sasl version I see this:

# ls -l /usr/lib64/libsasl2.so*
... /usr/lib64/libsasl2.so -> libsasl2.so.3.0.0*
... /usr/lib64/libsasl2.so.3 -> libsasl2.so.3.0.0*

But HTTPD is still looking for /usr/lib64/libsasl2.so.2 which I created by linking it to libsasl2.so.3.0.0 (dirty like surrounder said).

# slackpkg search sasl

Looking for sasl in package list. Please wait... DONE

The list below shows all packages with name matching "sasl".

[ installed ] - qca-cyrus-sasl-2.0.0_beta3-x86_64-2
[ installed ] - cyrus-sasl-2.1.26-x86_64-1

ponce 02-17-2016 03:50 AM

you probably have to update your httpd too: here
Code:

# objdump -x /usr/sbin/httpd | grep NEEDED | grep sasl
  NEEDED              libsasl2.so.3
# ls -la /usr/sbin/httpd
-rwxr-xr-x 1 root root 622424 Nov 18 03:21 /usr/sbin/httpd


cmyster 02-17-2016 04:30 AM

And yet...

installed version is httpd-2.4.17-x86_64-2

$ objdump -x /usr/sbin/httpd | grep NEEDED | grep sasl
NEEDED libsasl2.so.3

and

# ldd /usr/sbin/httpd
linux-vdso.so.1 (0x00007ffe4bdb8000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f34a30b8000)
libaprutil-1.so.0 => /usr/lib64/libaprutil-1.so.0 (0x00007f34a2e8e000)
libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007f34a2c64000)
libsqlite3.so.0 => /usr/lib64/libsqlite3.so.0 (0x00007f34a2996000)
libicui18n.so.56 => /usr/lib64/libicui18n.so.56 (0x00007f34a2509000)
libicuuc.so.56 => /usr/lib64/libicuuc.so.56 (0x00007f34a2171000)
libicudata.so.56 => /usr/lib64/libicudata.so.56 (0x00007f34a078e000)
libdb-4.4.so => /lib64/libdb-4.4.so (0x00007f34a047f000)
libldap-2.4.so.2 => /usr/lib64/libldap-2.4.so.2 (0x00007f34a0236000)
libsasl2.so.3 => /usr/lib64/libsasl2.so.3 (0x00007f34a001a000)
libssl.so.1 => /lib64/libssl.so.1 (0x00007f349fda1000)
libcrypto.so.1 => /lib64/libcrypto.so.1 (0x00007f349f952000)
liblber-2.4.so.2 => /usr/lib64/liblber-2.4.so.2 (0x00007f349f744000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f349f529000)
libapr-1.so.0 => /usr/lib64/libapr-1.so.0 (0x00007f349f2f5000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f349f0f1000)
librt.so.1 => /lib64/librt.so.1 (0x00007f349eee9000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f349ecb0000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f349ea92000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f349e88e000)
libc.so.6 => /lib64/libc.so.6 (0x00007f349e4c1000)
libm.so.6 => /lib64/libm.so.6 (0x00007f349e1c0000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f349de45000)
libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007f349dc2f000)
/lib64/ld-linux-x86-64.so.2 (0x0000555b2685a000)

but
# /etc/rc.d/rc.httpd start
/usr/sbin/httpd: error while loading shared libraries: libsasl2.so.2: cannot open shared object file: No such file or directory

ponce 02-17-2016 04:38 AM

you probably have other stuff in your system still linking to the old libsasl2.
if you want to find what is you can check it using objdump: run it like this
Code:

# objdump -x /usr/sbin/httpd | grep NEEDED
  NEEDED              libpcre.so.1
  NEEDED              libaprutil-1.so.0
  NEEDED              libexpat.so.1
  NEEDED              libsqlite3.so.0
  NEEDED              libicui18n.so.56
  NEEDED              libicuuc.so.56
  NEEDED              libicudata.so.56
  NEEDED              libdb-4.4.so
  NEEDED              libldap-2.4.so.2
  NEEDED              libsasl2.so.3
  NEEDED              libssl.so.1
  NEEDED              libcrypto.so.1
  NEEDED              liblber-2.4.so.2
  NEEDED              libresolv.so.2
  NEEDED              libapr-1.so.0
  NEEDED              libuuid.so.1
  NEEDED              librt.so.1
  NEEDED              libcrypt.so.1
  NEEDED              libpthread.so.0
  NEEDED              libdl.so.2
  NEEDED              libc.so.6

then repeat this with every library you got in output from the first step and so on until you get what links to the old version of libsasl2.

cmyster 02-17-2016 05:23 AM

Thanks for the tip:
for lib in $(objdump -x /usr/sbin/httpd | grep NEEDED | awk '{print $NF}'); do echo "Now checking $lib:"; objdump -x $(locate $lib); done > file
and indeed looking into file I see that libldap-2.4.so.2 is looking for the problematic file, which is a part of aaa_elflibs or
openldap-client which is not installed on my machine. Installing the later fixed this issue, thanks a lot.


All times are GMT -5. The time now is 11:26 PM.