Я борюсь с проблемой пути в Fedora 26. Я создаю обновленные программы и библиотеки и помещаю их в / usr / local
. Программы из / usr / local / bin
используют библиотеки из / usr / local / lib
. По неизвестной на данный момент причине, Fedora 26 gawk
, которая находится в / usr / bin / gawk
, использует библиотеку в / usr / local / lib.
.
Библиотека в / usr / local / lib
несовместима с той, которую ожидает gawk
, поэтому мои скрипты нарушаются. Или, точнее, мой скрипт вызывает Autotools, а затем Autotools ломается, даже если пути не испорчены. Дополнительная информация о фоновой проблеме доступна на libreadline.so.7: неопределенный символ: UP в Stack Overflow.
Я хотел бы применить политику, которая гласит, что любая программа в / usr / bin
должна связываться с библиотеками в / usr / lib
. Меня не волнует кулинария или взаимопозиционирование. Если мне нужно это сделать, я соберу пакет из исходников и установлю его в / usr / local
.
Другие операционные системы давно решили эту проблему с помощью таких вещей, как install_names
в OS X и манифесты в Windows.Linux просто допускает возникновение тех же проблем (я думаю - enable-new-dtags
- это последний помощник, который не решает проблему).
Как заставить программы в / usr / bin
связываться с библиотеками в / usr / lib
?