Как собрать и развернуть пакет с разными версиями одной зависимости?

Например, я поддерживаю приложение, которое использует libmemcached. Я могу скомпилировать его, используя libmemcached5 или libmemcached6, а также собрать пакет .deb, указывающий на libmemcached5, libmemcached6 или даже libmemcached5 | libmemcached6 в качестве зависимости, но на самом деле мой двоичный файл компилируется только с одним из них. Как лучше всего решить эту проблему, развернув пакет без обновления / понижения каких-либо зависимостей на стороне пользователя?

5

Решение

Если вы используете репозиторий или если приемлемо несколько скомпилированных версий вашего приложения, то лучше всего скомпилировать ваше приложение дважды, один раз с libmemcached5 и один раз с libmemcached6, и упаковать их отдельно, с разными именами пакетов, и использовать Виртуальный пакет для установки нужного автоматически:

 Package:   myapplication-memchched5
Version:   1.3.17-1
Depends:   libmemcached5
Provides:  myapplication
Conflicts: myapplication
Replaces:  myapplication

а также

 Package:   myapplication-memchched6
Version:   1.3.17-1
Depends:   libmemcached6
Provides:  myapplication
Conflicts: myapplication
Replaces:  myapplication

Сейчас aptitude install myapplication автоматически выберет либо myapplication-memchched5 или же myapplication-memchched6 исходя из того, что еще нужно установить.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]