Почему в пакет / usr / lib / x86_64-linux-gnu установлены пакеты boost pack?

Вот быстрый однострочный набор для получения списка пакетов, которые поддерживаются для МЕНЬШЕ, чем полный период LTS в течение 5 лет, используя grep-dctrl (1):

sudo apt-get install dctrl-tools
dpkg -l | grep '^ii' |  awk ' {print $2}' | xargs apt-cache show | grep-dctrl -v -FSupported --exact-match -nsPackage 5y | sort | uniq

Вы можете легко изменить его для поиска различных периодов поддержки.

1
задан 14 January 2015 в 05:05

1 ответ

Это по спецификации. Заголовки по-прежнему остаются нерешенными в спецификации. и рассмотренный вне области действия, как указано в источнике под заголовком «Неразрешенные проблемы»

«Дизайн

Макет файловой системы

Чтобы легко разместить более одного элемента ELF ABI в системе, библиотека для каждой пары (soname, ABI) должна иметь уникальный путь в файловой системе. FHS пытается решить эту проблему для случая amd64, потребовав зарезервировать / usr / lib для 32-битных библиотек, с 64-битные библиотеки, расположенные в каталоге / usr / lib64.Этот проект имеет ряд недостатков:

Это не совместимо с первыми с любыми будущими изменениями ABI, что потребует дальнейшей проектной работы и дальнейшей модификации пакетов до обрабатывать добавление новых путей. (Действительно, это уже вызывает озабоченность в архитектуре MIPS, которая использует три различных ABI, которые используются параллельно).

Архитектура amd64 должна быть специально обложена в библиотечной упаковке, как единственная архитектура, которая использует / usr / lib64 вместо / usr / lib. (Два ранее существующих 64-битных порта Linux, Alpha и IA-64, также нас ed / usr / lib для их 64-разрядных библиотек.) Это лишняя сложность.

В нем не рассматриваются случаи использования эмуляции, такие как qemu, которые могут интегрироваться гораздо лучше и эффективнее с системой, если пакеты для арки qemu были совместимы.

Нынешняя конструкция, используемая Debian и Ubuntu, также выходит из строя в ключевой точке, где нет расположения FHS:

Путь для библиотек x86 и x86-64 варьируется в зависимости от того, изначально 32-разрядный или 64-разрядный, поэтому перевод путей во время установки недостаточен для общего случая, потому что некоторым библиотекам необходимо внедрять пути плагинов в самих двоичных файлах.

Multiarch стремится решить все эти проблемы за счет одноразового перехода путем переноса библиотек в подкаталоги, которые включают триплет архитектуры в качестве части пути:

/ lib / i386-linux-gnu / lib / x86_64-linux-gnu / usr / lib / i386-linux-gnu / usr / lib / x86_64-linux-gnu "

source [!d1 ]

2
ответ дан 24 May 2018 в 09:20

Другие вопросы по тегам:

Похожие вопросы: