Как узнать, какие пакеты в бэкпорте доступны, и избежать потери пакетов при обновлении вручную?

Я был удивлен, увидев, что начиная с 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?

5
задан 21 August 2013 в 22:02

1 ответ

как узнать, какие у нас есть варианты для обновлений через бэкпорт?

Запустите 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.

0
ответ дан 21 August 2013 в 22:02

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

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