
Я являюсь автором некоторого программного обеспечения, которое зависит от 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