3

I am puzzled about why apt-get install does not behave the same way according whether it is invoked from an Ubuntu (16.04) or from a debian (stretch-slim docker image).

Basically, I perform a :

root@ubuntu $ apt-get install libfcgi-dev 
...
root@ubuntu $ dpkg -L  libfcgi-dev 
/.
/usr
/usr/lib
/usr/lib/libfcgi++.a
/usr/lib/libfcgi.a
/usr/share
/usr/share/doc
/usr/share/doc/libfcgi-dev
/usr/share/doc/libfcgi-dev/copyright
/usr/include
/usr/include/fastcgi.h
/usr/include/fcgi_config.h
/usr/include/fcgios.h
/usr/include/fcgio.h
/usr/include/fcgiapp.h
/usr/include/fcgi_stdio.h
/usr/include/fcgimisc.h
/usr/lib/libfcgi.so
/usr/lib/libfcgi++.so
/usr/share/doc/libfcgi-dev/changelog.Debian.gz

The same from the container :

root@container $ apt-get install libfcgi-dev 
...
root@container $ dpkg -L  libfcgi-dev 
/.
/usr
/usr/include
/usr/include/fastcgi.h
/usr/include/fcgi_config.h
/usr/include/fcgi_stdio.h
/usr/include/fcgiapp.h
/usr/include/fcgimisc.h
/usr/include/fcgio.h
/usr/include/fcgios.h
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libfcgi++.a
/usr/lib/x86_64-linux-gnu/libfcgi.a
/usr/share
/usr/share/doc
/usr/share/doc/libfcgi-dev
/usr/share/doc/libfcgi-dev/changelog.Debian.amd64.gz
/usr/share/doc/libfcgi-dev/changelog.Debian.gz
/usr/share/doc/libfcgi-dev/copyright
/usr/lib/x86_64-linux-gnu/libfcgi++.so
/usr/lib/x86_64-linux-gnu/libfcgi.so

I thought the package was the one deciding where it was going to be installed (according to [this post][1]), and it looks like apt-install does add "x86_64-linux-gnu" under debian

It's quite annoying since I have to perform a huge build on debian where all librairies paths are hardcoded without the "/x86_64-linux-gnu" part

Anyone has a tip on how I can workaround this and perform the build without hardlinking all x86_64-linux-gnu/* to /usr/lib or rewriting the make files ?

7

This isn’t apt changing the paths. The Ubuntu 16.04 package was built using “old” paths, the Debian 9 package was built with multi-arch paths (see the changelog for version 8.4 of the packaging).

You shouldn’t need to hard-code the paths at all, the compiler knows where to find these libraries.

  • OK, I understand, now : thanks for pointing out the change log! Now I understand I will have to update few things anyway! Also, I perfectly agree with your second point (I didn't write the make files) – Marvin Jun 1 '18 at 8:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.