Почему APT хочет обновить мой пакет?

Мне нужен nginx, скомпилированный со специальным флагом, таким образом, я захватил источник от nginx стабильного PPA (склонный - получают источник), изменил debian/rules, создал его и упаковал его с debuild/dpkg-buildpackage и установил необходимый .debs - пока неплохо.

Только теперь APT хочет переключить мой локальный пакет с тем из репозитория. Это - немного приведения в замешательство, так как оба пакета имеют ту же самую версию:

$ dpkg -l nginx-full
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                    Version                                 Description
+++-=======================================-=======================================-==============================================================================================
ii  nginx-full                              1.2.1-0ubuntu0ppa1~precise              nginx web/proxy server (standard version)

и

$ sudo apt-get upgrade -s
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  nginx-full
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Inst nginx-full [1.2.1-0ubuntu0ppa1~precise] (1.2.1-0ubuntu0ppa1~precise Stable:12.04/precise [amd64])
Conf nginx-full (1.2.1-0ubuntu0ppa1~precise Stable:12.04/precise [amd64])

Почему точно это происходит, и каков лучший способ остановить его? Идеально, APT должен предложить обновлять мой пакет только со строго более новой версией, которая была бы сигналом для меня для восстановления моей исправленной версии с новейшим источником.

Я столкнулся с этим отчетом об ошибках, который выглядит довольно релевантным, но так как он не содержал удовлетворительного обходного решения, я оставляю вопрос открытым.

4
задан 17 June 2012 в 21:52

1 ответ

Вы управляете тем, что обновляется, с помощью чего, используя номер версии, который устанавливается из верхней строки в debian / changelog в пакете с исходным кодом, когда пакет встроен в deb. Если вы хотите версию, отличную от той, что есть в PPA, вам нужно установить свой собственный номер версии больше, чем в PPA.

В качестве предостережения обратите внимание, что 1.2.3-1ppa1 ~ 2 на меньше , чем 1.2.3-1ppa1, поэтому apt-get upgrade обновится до 1.2.3-1ppa1. (В "~" есть магия, она меньше , чем что-либо, включая конец номера версии. Я вижу, что у вас и PPA есть этот символ в номере версии вашего пакета.

0
ответ дан 17 June 2012 в 21:52

Другие вопросы по тегам:

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