Я был удивлен, увидев, что начиная с Natty 11.04, даже когда у нас было включено хранилище обратных портов, обновленные пакеты не устанавливаются автоматически из этого хранилища. Мы должны установить отдельные обновления вручную, например, через
apt-get install ipython/precise-backports
, как объяснено в UbuntuBackports - Документация сообщества Ubuntu . Я думаю, я просто не получил записку ....
Первый вопрос: как нам узнать, какие у нас есть варианты для апгрейдов через бэкпорт? Я удивлен, что даже если я спрашиваю о статусе, например через
wajig status ipython
он не говорит мне, что доступна новая версия. Мне нужен список всех обновлений для пакетов, которые я уже установил.
Далее, как мне избежать потери существующих пакетов только из-за того, что я обновляюсь через бэкпорт? Приведенная выше установка ipython сообщает мне:
The following packages will be REMOVED:
ipython-notebook ipython-qtconsole
Как я могу сказать, что мне нужен последний бэкпортированный ipython, а также любые другие пакеты, для которых доступны обновления, зависящие от него, без необходимости вручную их вычислять также устанавливать их?
Я знаю, что могу изменить закрепление так, чтобы я получил все обновления , но я не решаюсь идти против общего совета. Но если пользователь запрашивает обновление одного пакета, не будет ли естественным обновить все зависимости, как вы получаете от ppa?
как узнать, какие у нас есть варианты для обновлений через бэкпорт?
Запустите apt-get с переключателем --default-release
или -t
:
sudo apt-get -t precise-backports upgrade
То же, что и apt-get install ipython/precise-backports
, только то, что вам не нужно вставлять деталь precise-backports
.
Я удивлен, что даже если я спрашиваю о статусе, например, через
wajig status ipython
он не говорит мне, что доступна новая версия.
Для этого я использую apt-cache policy
:
apt-cache policy iceweasel
iceweasel:
Installed: 25.0~a2+20130816004007-1~bpo70+1
Candidate: 25.0~a2+20130816004007-1~bpo70+1
Package pin: 25.0~a2+20130816004007-1~bpo70+1
Version table:
*** 25.0~a2+20130816004007-1~bpo70+1 1990
1990 http://mozilla.debian.net/ wheezy-backports/iceweasel-aurora i386 Packages
100 /var/lib/dpkg/status
23.0-2 1990
-1 http://ftp.us.debian.org/debian/ experimental/main i386 Packages
17.0.8esr-2 1990
990 http://ftp.utexas.edu/debian/ testing/main i386 Packages
-1 http://ftp.de.debian.org/debian/ sid/main i386 Packages
Далее, как мне избежать потери существующих пакетов только из-за обновления через бэкпорт?
Если пакеты, которые вы хотите обновить, выходят из прежних зависимостей, вам следует решить, следует ли обновлять или оставить все как есть. Или вы просто ломаете вещи и ломаете установку, все зависит от вас.
Как я могу сказать, что мне нужен последний бэкпортированный ipython, а также любые другие пакеты, для которых доступны обновления, которые зависят от него, без необходимости вручную их вычислять и устанавливать?
То же, что и выше.
Но если пользователь запрашивает обновление одного пакета, не будет ли естественным обновить все зависимости, как вы получили бы от ppa?
Если есть Нет обновлений кандидатов, нет. Это часто случается в распространяемых выпусках релизов, некоторые пакеты зависят от других, которые пока недоступны в репозиториях, поэтому apt решает не обновляться, поскольку нарушает зависимости.
Для случая ipython
, который вы упоминаете в комментариях:
После страницы зависимостей пакетов ipython-notebook=0.13.2-1~ubuntu12.04.1
зависит от ipython=0.13.2-1~ubuntu12.04.1
, но если вы попытаетесь обновить ipython
] apt примет ваши действия как приоритетные и выполнит их любой ценой. Поскольку вы только говорите apt установить ipython
из бэкпортов, он понимает:
Выполните только это условие любой ценой
Итак, единственный способ сделать это - удалить / понизить любой пакет, который нарушает его зависимости из-за этой операции (ipython-notebook
) и установить ipython
из бэкпортов. Правильный способ сделать это:
sudo apt-get -t precise-backports install ipython-notebook ipython
или
sudo apt-get -t precise-backports upgrade
Первый из них скажет apt-get установить ipython-notebook
и ipython
из бэкпортов, второй сообщит apt обновить любой установленный пакет с обновлениями в репозитории precise-backports
.