У меня есть программа с пакетом debian в моем личном репозитории, который зависит от python-cherrypy3. Однако версия 3.5.0 python-cherrypy3, поставляемая с Ubuntu 16.04, содержит серьезную нефиксированную ошибку, которая не позволяет моей программе создать веб-сервер HTTPS. Я поместил версию 3.2.2 python-cherrypy3
в свой личный репозиторий. Затем поместите файл
Depends: python-cherrypy3 (<< 3.2.5)
в debian/control
моего пакета. Ошибка начинается с версии 3.2.5 cherrypy, поэтому любая версия ниже этой версии является приемлемой. Но Ubuntu 16.04 apt-get
не может разрешить зависимость и все же предпочитает более новую версию 3.5.
The following packages have unmet dependencies:
my-package : Depends: python-cherrypy3 (< 3.2.5)
E: Unable to correct problems, you have held broken packages.
Если я сделаю apt-get install python-cherrypy3=3.2.2
и установлю более старую версию cherrypy из своего репозитория, то установка моего пакета работает нормально. Могу ли я как-то сделать это автоматически, поэтому, когда кто-то выпускает apt-get install my-package
apt, автоматически устанавливает версию 3.2.2 из моего репозитория?
Это не может быть, покончили просто зависимости от Вашего пакета. Без специальной конфигурации, apt-get
всегда предпочитает доступную последнюю версию, таким образом, даже если Ваш пакет зависит от python-cherrypy3 (<< 3.2.5)
, он выберет последнюю версию python-cherrypy3
доступный. И с тех пор Ubuntu 15.10 и выше имеет только 3.5.0 + , это - то, что Вы получите.
то, Что можно сделать, обеспечивают 3.2.5 версии, упакованные python-cherrypy3
в персональном репозитории, который использует эпоха номер , так, чтобы он был предпочтен по более новому пакету. Затем зависьте от этого.