Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Методика перехода на новую версию библиотеки


Автор: Zerstroer 13.8.2013, 09:53
Здравствуйте.
Возникла совершенно дурацкая ситуация. 
Писал программу-демон под linux. Использовалась она на серверах с установленным Debian 6 Squeeze. Разработку вел под той же версией Debian. В проекте использовалась библиотека boost версии 1.42.
Вышел новый Debian 7 Wheezy. На новые сервера на которых должна работать моя программа стали ставить его. Проект перенес на Debian 7 Wheezy, в проект подключил библиотеку из текущей stable ветки - boost 1.48. В итоге - программа работает на новых серверах и ругается на устаревшую версию библиотеки boost на серверах старых (нужно регулярно выпускать обновления и ставить на старые сервера с Debian 6).

Хотелось бы услышать полезный совет, относительно того, как правильно организовать совместимость версий библиотек в моей ситуации.

Добавлю, что по используемому функционалу boost - я не использую никаких новшеств boost 1.48. 

Пока на ум приходит только разворачивание виртуальной машины с oldstable Debian и компиляция программы под разными версиями Debian. Есть ли вариант проще/изящнее?

Автор: xvr 13.8.2013, 11:52
Если в имени boost библиотеки присутствует номер версии, то поставьте либо 1.42 на Debian 7 либо 1.48 на Debian 6, а при сборке вашей программы укажите конкретную версию библиотеки boost.

Автор: Zerstroer 13.8.2013, 12:05
Версия 1.48 на Debian 6 не установилась - потянула слишком много зависимостей.
На новые сервера c Debian 7 устанавливают только пакеты из stable ветки. Сервера работают в сети изолированной от интернета.

Автор: xvr 13.8.2013, 23:14
Цитата(Zerstroer @  13.8.2013,  12:05 Найти цитируемый пост)
На новые сервера c Debian 7 устанавливают только пакеты из stable ветки.

Включите библиотеку версии 1.42 в состав своего пакета (положите рядом с исполняемым файлом и настройте пути к нему через LD_LIBRARY_PATH или через ключ -R в процессе линковки)

Автор: bsa 14.8.2013, 12:48
Я решил эту проблему административно. ВСЕ СЕРВЕРА РАБОТАЮТ ПОД SQUEEZE. Если хостер не дает возможность использовать этот дистрибутив, то он идет к лешему, благо выбор большой.

Автор: tzirechnoy 21.8.2013, 12:21
В debian для этого есть pbuilder.
Он создаёт не виртуалку, а chroot соответствующего дистрибутива. (pbuilder -- distribution sid --create )

Впрочем, под виртаулки тожэ что-то есть, на базе pbuilder (qemu-чтототамbuilder)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)