@Riki-tiki-tavi

Как версионируются пакеты в linux?

Насколько я знаю можно ставить несколько версий одного deb пакета, но тогда появляется вопрос:
Есть библиотека версии 1.0.0 в которой файл header.h устанавливается в папку /opt/mylib/include/
Как поставить следующую версию библиотеки 1.0.1, ведь новый файл затрет старый?

Или все-таки нельзя ставить два пакета разных версий?
  • Вопрос задан
  • 428 просмотров
Решения вопроса 2
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Или все-таки нельзя ставить два пакета разных версий?

Нельзя установить одновременно несколько версий одного и того же пакета.
Если требуется иметь одновременно несколько версий программы/библиотеки, их оформляют как разные пакеты. Версия программы/библиотеки при этом часто используется как часть имени пакета.
Например, у меня установлены одновременно gcc-4.8 и gcc-4.9:
$ dpkg -l 'gcc-4.[89]' | sort
+++-==============-============-============-=================================
Desired=Unknown/Install/Remove/Purge/Hold
ii  gcc-4.8        4.8.4-1      amd64        GNU C compiler
ii  gcc-4.9        4.9.2-10     amd64        GNU C compiler
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description

Имена пакетов здесь: gcc-4.8 и gcc-4.9. По файлам они нигде не пересекаются.
Ответ написан
Комментировать
@pfg21
ex-турист
установить пакет в другую директорию можно.
у dpkg есть специальные опци --root и --instdir позволяющие разворачивать пакет относительно произвольной директории, а не корня.
но придется в используемой проге поменять пути к нужным файлам.

вариант2: работать с отличающимися библиотеками в chroot окружении или в виртуальной среде или контейнере. они для ентого и сделаны.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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