«Следующие пакеты были сохранены:« Почему и как я могу это решить?

Я просто добавил репозиторий PPA для версии для разработки GIMP, но я получаю эту ошибку:

$ apt-get update && apt-get upgrade
...
The following packages have been kept back:
  gimp gimp-data libgegl-0.0-0 libgimp2.0

Почему и как я могу его решить, чтобы использовать последнюю версию вместо той, что у меня есть?

695 голосов | спросил jfoucher 1 AM00000010000002231 2010, 01:59:22

16 ответов


676

Согласно статье на debian-administration.org ,

  

Если зависимости были изменены на одном из пакетов, которые вы установили, чтобы новый пакет был установлен для выполнения обновления, тогда он будет указан как «сохраненный».

Осторожное решение 1:

Осторожное решение состоит в том, чтобы запустить sudo apt-get install <list of packages kept back>. В большинстве случаев это даст обновленным пакетам то, что им необходимо для успешного обновления.

Осторожное решение 2:

В ответ ответ Pablo вы можете запустить sudo apt-get --with-new-pkgs upgrade, и он установит сохраненные пакеты.

Это позволяет не помечать пакеты с сохраненными образами как «вручную установленные», что может привести к увеличению вмешательства пользователя в линию (см. комментарии).

Если решение Pablo работает для вас, пожалуйста, поддержите его. Если нет, прокомментируйте, что пошло не так.

Агрессивное решение:

Более агрессивным решением является запуск sudo apt-get dist-upgrade, что приведет к установке этих новых зависимостей.

Но dist-upgrade может быть довольно опасным . В отличие от обновления он может удалите пакеты для решения сложных ситуаций зависимости. В отличие от вас, APT не всегда достаточно умен, чтобы знать, могут ли эти дополнения и абзацы нанести ущерб.

Итак, если вы окажетесь в месте, где «осторожное решение» не работает, dist-upgrade может работать ... но вы, вероятно, лучше выучить немного больше о APT и разрешать проблемы зависимости «вручную», устанавливая и удаляя пакеты в каждом конкретном случае.

Подумайте об этом, как о том, как закрепить автомобиль ... если у вас есть время и вам удобно пользоваться гаечным ключом, вы получите спокойствие, прочитав и сделав ремонт самостоятельно. Если вам повезет, вы можете отказаться от своего автомобиля с кузином dist-upgrade и надеяться, что она знает ее вещи.

ответил mac9416 1 AM00000020000000431 2010, 02:15:04
464

Всякий раз, когда вы получаете от команды apt-get upgrade сообщение

The following packages have been kept back:

затем обновить один или все поддерживаемые пакеты без обновления дистрибутива (это то, что делает dist-upgrade, если я правильно помню), должен выдать команду:

apt-get install <list of packages kept back>

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

ответил user88285 8 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 08 Sep 2012 13:14:42 +0400 2012, 13:14:42
169

apt-get dist-upgrade опасен для стабильной среды,

  1. Неправильная настройка source.list, и в итоге у вас сломанный ubuntu.
  2. вы можете обновить все приложение до версии, которую вы не хотите.

Случай использования: обновление ядра сохраняется, вы просто хотите обновить ядро, не хотите обновлять весь дистрибутив.

Лучший способ обработки сохраненного пакета:

sudo aptitude

Если вы сохранили пакет, вы должны увидеть Upgradable Packages поверх списка.

  • Хит + в этом списке
  • Нажмите g дважды
  • Отвечайте на debconf, если задано
  • Нажмите «Назад», чтобы продолжить.
  • Нажмите Q
  • Нажмите «Да»

Установленный вами поддерживаемый пакет.

ответил 24 FriEurope/Moscow2010-12-24T03:43:16+03:00Europe/Moscow12bEurope/MoscowFri, 24 Dec 2010 03:43:16 +0300 2010, 03:43:16
47

Почему вы не попробуете этот ответ Unix SE :

sudo apt-get --with-new-pkgs upgrade
  

Это позволяет устанавливать новые пакеты. Это позволит вам узнать, какие пакеты будут установлены и спросить вас, прежде чем выполнять установку.

команда apt ( дружественная альтернатива для apt-get) share этот параметр apt-get .

Используя apt install <pkg> вместо этого будет отмечать pkg как «установленный вручную» !! Чтобы пометить его снова как «автоматически установленный», используйте apt-mark auto <pkg> ( см. также подкоманду showmanual). Подробнее на этот ответ .

ответил Pablo Bianchi 20 TueEurope/Moscow2016-12-20T23:16:32+03:00Europe/Moscow12bEurope/MoscowTue, 20 Dec 2016 23:16:32 +0300 2016, 23:16:32
30

Обычно есть две причины, по которым вы можете увидеть это сообщение.

Если обновление программы (через sudo apt-get upgrade) приведет к добавлению или удалению пакетов, программа будет сдерживаться. В этом случае вы можете использовать sudo apt-get dist-upgrade, который затем предложит добавить или удалить дополнительные программы.

Это довольно часто, и обычно это не проблема. Иногда (особенно во время альфа Ubuntu) dist-upgrade предложит удалить много других программ, и в этом случае вы, вероятно, захотите его отменить.

Если программа зависит от пакетов или версий, которые недоступны, программа будет сдерживаться. Вы действительно ничего не можете сделать, кроме как ждать в этом случае, поскольку пакет в основном не установлен. Это может произойти, когда пакеты будут добавлены в репозиторий из строя, когда пакет будет переименован или когда пакет перестанет предоставлять виртуальный пакет.

ответил jbowtie 1 AM00000020000004831 2010, 02:16:48
18

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

В последнем случае просто подождите, когда зависимости будут решены, он будет установлен в следующий раз.

Edit:

Есть еще одна возможность: пакеты могут быть сдержаны, если их удержать, или если они закреплены.

ответил txwikinger 1 AM00000020000000331 2010, 02:17:03
16

Вы также можете попробовать:

sudo aptitude safe-upgrade.

Это безопаснее, чем full-upgrade (изначально названный dist-upgrade), потому что «пакеты не будут удалены, если они не используются».

Из man aptitude:

  

безопасные обновления

     

Обновляет установленные пакеты до их последней версии. Установлен   пакеты не будут удалены, если они не используются /.../Пакеты   которые в настоящее время не установлены, могут быть установлены для разрешения   если параметр -no-new-installs командной строки   в комплект поставки.

ответил Afilu 12 PM000000120000002231 2014, 12:02:22
9

Обычно это связано с тем, что пакет добавил зависимость, и обновление не хочет добавлять его для вас без разрешения.

Если вы запустите:

sudo apt-get install gimp gimp-data libgegl-0.0-0 libgimp2.0

Затем новые версии должны быть установлены вместе с их новой зависимостью.

ответил John Lawrence Aspden 27 ThuEurope/Moscow2012-12-27T23:20:17+04:00Europe/Moscow12bEurope/MoscowThu, 27 Dec 2012 23:20:17 +0400 2012, 23:20:17
7

Я обнаружил, что aptitude лучше справляется с обновлением пакетов, если версии отличаются незначительно. У меня была такая ситуация:

[email protected]:/etc/apt$ apt-cache policy gzip
gzip:
  Installed: 1.3.5-15
  Candidate: 1.3.5-15+etch1
  Version table:
     1.3.5-15+etch1 0
        500 http://archive.debian.org etch/main Packages
 *** 1.3.5-15 0
        100 /var/lib/dpkg/status

Это сделало apt-get сдерживает обновление, но aptitude обновила его просто отлично. Я не уверен, какой алгоритм используется для определения необходимости обновления пакета или нет. Я предполагаю, что у этих двух была такая же версия, только у другого «определителя». Но в любом случае apt-get не обновил бы его, но способность была бы.

ответил Alexander Torstling 3 Mayam12 2012, 00:48:23
7

Это сработало для меня

sudo aptitude full-upgrade
ответил Singh 22 MarpmFri, 22 Mar 2013 15:40:43 +04002013-03-22T15:40:43+04:0003 2013, 15:40:43
3

Я столкнулся с этой проблемой при выпуске нового ядра. (Возможно, потому что у меня есть нестабильные обновления.) Я нашел самый простой способ сделать установку через графический инсталлятор Ubuntu (update-manager).

ответил Kazark 17 42011vEurope/Moscow11bEurope/MoscowThu, 17 Nov 2011 00:07:16 +0400 2011, 00:07:16
3

В моем случае сдерживаемые пакеты были связаны с linux-headers и ядром. Я пришел к этому, пытаясь решить проблему с красным восклицательным знаком в области уведомлений и не имея возможности обновлять пакеты.

Чтобы решить эту проблему, мне не пришлось использовать ни dist-upgrade , ни ручную apt-get install xxx .

То, что я сделал и помогло, было простым и чистым :

sudo apt-get update
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get upgrade

Мне пришлось вручную подтвердить обновление Grub и его конфигурацию.

Затем я просто работал с компьютером некоторое время, а затем снова появился диалоговое окно обновления, в котором, наконец, включалась секция «Ubuntu base» с ядром и связанная с ним. Обновление было выполнено без каких-либо проблем, и я больше не вижу никаких отложенных пакетов.

Кроме того, очень важно помнить, что те * buntu-обновления, в том числе обновления ядра, чувствительны к спячке . У меня эта проблема несколько раз, и я всегда получаю ее, перезапуская и выполните указанные выше шаги.

Так может быть, этого было бы достаточно?!

(описываемая здесь ситуация связана с моим Xubuntu 15.10 в конце декабря 2015 года)

ответил crysman 29 TueEurope/Moscow2015-12-29T17:01:59+03:00Europe/Moscow12bEurope/MoscowTue, 29 Dec 2015 17:01:59 +0300 2015, 17:01:59
2

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

Затем я обнаружил информационное сообщение как часть пакета с некоторыми инструкциями после установки для меня.

Мне пришлось нажать « детали », а затем « q » для выхода после прочтения сообщения, а затем все прошло нормально.

ответил Eliptical view 3 AM00000090000005531 2016, 09:41:55
2

Это выглядит как правильный способ переустановки сохраненного пакета:

apt-get install --reinstall libjpeg-progs

По крайней мере, это сработало для меня, когда libjpeg-progs застрял после обновления с Ubuntu 14.04 до 16.04. Я уверен, что вы можете сделать то же самое с любым другим поддерживаемым приложением, например. gimp.

Источник: https://ubuntuforums.org/showthread.php? т = 2321702 & амп; р = 13476183 # post13476183

ответил Stephan Henningsen 29 AM00000090000000931 2016, 09:58:09
1

На самом деле вам нужен коммутатор dselect-upgrade, который устанавливает /удаляет зависимости для конкретного набора пакетов.

ответил Johnny 29 FebruaryEurope/MoscowbWed, 29 Feb 2012 12:52:39 +0400000000pmWed, 29 Feb 2012 12:52:39 +040012 2012, 12:52:39
0

Я прочитал все сообщения и обнаружил, что есть много интересных объяснений. Я пытался их всех, но не имел никаких результатов полностью. У меня проблема с mysql-utilities , которую я не мог обновить. Обновление было предложено системой.  Итак, я хочу показать некоторые шаги, чтобы сделать это. Конечно, я повторю в некоторые моменты все вышеупомянутые должности. Вот моя ошибка, да, я нашел ее уже существующими сообщениями, но что мне делать дальше? введите описание изображения здесь

Следующий шаг:

sudo apt-get --purge remove mysql-utilities

Результаты, которые мы видим на изображении ниже. Я удаляю пакет и проверяю это по команде:

sudo apt-get -f install

Результаты - отлично! Позже я правильно установил эту новую версию пакета. введите описание изображения здесь

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

Однажды, извините, когда я повторил в некоторых местах другие сообщения.

ответил Vasyl Lyashkevych 26 TueEurope/Moscow2017-12-26T02:59:20+03:00Europe/Moscow12bEurope/MoscowTue, 26 Dec 2017 02:59:20 +0300 2017, 02:59:20

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132