Как сделать так, чтобы пакеты распространялись на разные версии Ubuntu?

Как сделать так, чтобы пакеты распространялись на разные версии Ubuntu?

Я являюсь автором некоторого программного обеспечения, которое зависит от libxx6 (в Ubuntu 11.10), но в 12.04 пакет стал libxx7 (7 — это не номер версии Ubuntu), поэтому зависимость стала проблемой.

Как мне это решить? Я управляю PPA и хочу исправить это до релиза Ubuntu 12.04.

Спасибо !

решение1

Если есть универсальный пакет без версии, на который вы можете положиться (например, в случае Java: java-runtimeпротив eg java6-runtime), полагайтесь на него. Если нет, вам придется сделать специализированные пакеты для разных версий Ubuntu. Посмотрите на файл пакета, от которого вы зависите, controlи посмотрите, есть ли Providesчто-то более общее, на что вы можете положиться.

решение2

Предполагая, что ваш пакет будет компилироваться с обоими libxx6и libxx7, просто us libxx-devв Build-Dependsполе вашего debian/controlфайла. Затем в Dependsполе us ${shlibs:Depends}. Это будет автоматически заменено версией общей библиотеки, с которой был собран ваш пакет.

Более подробную информацию об общих библиотеках можно найти вГлава 8 Руководства по политике Debian.

решение3

Если один и тот же источник будет собираться на всех релизах, то это очень просто. Вы собираете (загружаете) его отдельно для каждого релиза Ubuntu. Вам придется использовать немного разные номера версий, я предлагаю добавить~releasename1

Связанный контент