Несколько версий glib
У меня есть старая версия glib, с которой компилируются и используются все приложения. Мне нужно установить новое приложение, для компиляции и запуска которого требуется более новая версия glib. Я установил новую версию glib в отдельную папку (не удаляя старую версию) и могу скомпилировать новое приложение (используяpkg-config
). Сценарий компиляции использует флаг компоновщика, например-lglib-2.0
для связи с библиотекой.
Однако я не уверен, как лучше всего объединить две библиотеки вместе, чтобы их могли использовать приложения, которым они нужны. Установка указания местоположения новой библиотеки приводит к поломке старых приложений.
я мог бы установитьLD_LIBRARY_PATH
каждый раз, когда новое приложение запускается, чтобы указать на новый путь к glib (черезsh
сценарий, например), но мне интересно, есть ли лучший способ.
1 ответ
Попробуйте изменить сценарий компиляции, чтобы указать-rpath=
с каталогом, содержащим старые библиотеки. Путь будет встроен в фактически скомпилированные двоичные файлы.
(Возможно даже, что rpath содержит определенные расширения, такие как\$ORIGIN/../lib
если вы хотите, чтобы оно было относительно местоположения двоичного файла.)
Однако на практике оболочка сценария оболочки, которая устанавливает LD_LIBRARY_PATH, действительно является обычным явлением для двоично распространяемого программного обеспечения (того типа, который обычно находится в /opt).