apt-get install не указывает на один и тот же путь в Ubuntu или Debian

apt-get install не указывает на один и тот же путь в Ubuntu или Debian

Я озадачен, почему apt-get install ведет себя по-разному в зависимости от того, вызывается ли он из Ubuntu (16.04) или из Debian (образ docker stretch-slim).

В основном я выполняю:

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

То же самое из контейнера:

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

Я думал, что пакет сам решает, куда его установить (согласно [этому посту][1]), и похоже, что apt-install добавляет "x86_64-linux-gnu" в Debian

Это довольно раздражает, так как мне приходится выполнять огромную сборку на Debian, где все пути к библиотекам жестко прописаны без"/x86_64-linux-gnu"часть

Есть ли у кого-нибудь совет, как обойти эту проблему и выполнить сборку без жесткой привязки всех x86_64-linux-gnu/* к /usr/lib или переписывания make-файлов?

решение1

Это не aptизменение путей. Пакет Ubuntu 16.04 был собран с использованием «старых» путей, пакет Debian 9 был собран с использованием путей для нескольких архитектур (см.журнал изменений для версии 8.4 пакета).

Вам вообще не нужно жестко кодировать пути, компилятор знает, где найти эти библиотеки.

Связанный контент