
Ich bin verwirrt, warum sich apt-get install nicht gleich verhält, je nachdem, ob es von Ubuntu (16.04) oder Debian (Stretch-Slim-Docker-Image) aufgerufen wird.
Grundsätzlich führe ich Folgendes durch:
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
Dasselbe aus dem 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
Ich dachte, das Paket würde entscheiden, wo es installiert wird (laut [diesem Beitrag][1]), und es sieht so aus, als ob apt-install "x86_64-linux-gnu" unter Debian hinzufügt.
Es ist ziemlich ärgerlich, da ich einen großen Build auf Debian durchführen muss, bei dem alle Bibliothekspfade fest codiert sind, ohne die„/x86_64-linux-gnu“Teil
Hat jemand einen Tipp, wie ich dieses Problem umgehen und den Build durchführen kann, ohne alle x86_64-linux-gnu/* fest mit /usr/lib zu verknüpfen oder die Make-Dateien neu zu schreiben?
Antwort1
Dies ändert die Pfade nicht apt
. Das Ubuntu 16.04-Paket wurde mit „alten“ Pfaden erstellt, das Debian 9-Paket mit Multi-Arch-Pfaden (siehedas Changelog zur Version 8.4 der Verpackung).
Sie müssen die Pfade überhaupt nicht fest codieren, der Compiler weiß, wo diese Bibliotheken zu finden sind.