Несколько версий glib

У меня есть старая версия glib, с которой компилируются и используются все приложения. Мне нужно установить новое приложение, для компиляции и запуска которого требуется более новая версия glib. Я установил новую версию glib в отдельную папку (не удаляя старую версию) и могу скомпилировать новое приложение (используяpkg-config). Сценарий компиляции использует флаг компоновщика, например-lglib-2.0для связи с библиотекой.

Однако я не уверен, как лучше всего объединить две библиотеки вместе, чтобы их могли использовать приложения, которым они нужны. Установка указания местоположения новой библиотеки приводит к поломке старых приложений.

я мог бы установитьLD_LIBRARY_PATHкаждый раз, когда новое приложение запускается, чтобы указать на новый путь к glib (черезshсценарий, например), но мне интересно, есть ли лучший способ.

1 ответ

Попробуйте изменить сценарий компиляции, чтобы указать-rpath=с каталогом, содержащим старые библиотеки. Путь будет встроен в фактически скомпилированные двоичные файлы.

(Возможно даже, что rpath содержит определенные расширения, такие как\$ORIGIN/../libесли вы хотите, чтобы оно было относительно местоположения двоичного файла.)

Однако на практике оболочка сценария оболочки, которая устанавливает LD_LIBRARY_PATH, действительно является обычным явлением для двоично распространяемого программного обеспечения (того типа, который обычно находится в /opt).

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