& ldquo; Следующие пакеты были сохранены: & rdquo; Почему и как мне это решить?

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

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

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

1188
задан 3 March 2017 в 07:16

21 ответ

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

Если зависимости изменились на одном из установленных вами пакетов и для выполнения обновления необходимо установить новый пакет, то он будет перечислен как "keep-back".

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

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

Преимущество заключается в том, что пакеты keep-back не будут помечены как "установленные вручную", что может привести к большему вмешательству со стороны пользователя (см. комментарии).

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

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

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

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

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

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

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

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

1204
ответ дан 3 March 2017 в 07:16

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

РЕШЕНИЕ: Затем я обнаружил информативный сообщение как часть пакета с некоторыми инструкциями для меня после установки.

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

3
ответ дан 3 March 2017 в 07:16

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

2
ответ дан 3 March 2017 в 07:16

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

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

sudo apt-get --purge remove mysql-utilities

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

sudo apt-get -f install

Результаты - Отлично! Позже я правильно установил эту новую версию пакета. enter image description here

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

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

2
ответ дан 3 March 2017 в 07:16

Похоже, это правильный способ переустановки сохраненного пакета:

apt-get install --reinstall libjpeg-progs

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

Источник

3
ответ дан 3 March 2017 в 07:16

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

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

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

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

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

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

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

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

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

5
ответ дан 3 March 2017 в 07:16

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

4
ответ дан 3 March 2017 в 07:16

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

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

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

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

12
ответ дан 3 March 2017 в 07:16

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

me@compy:/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 не будет его обновлять, а aptitude обновит.

7
ответ дан 3 March 2017 в 07:16

У меня это сработало

sudo aptitude full-upgrade
13
ответ дан 3 March 2017 в 07:16

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

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

Правка:

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

22
ответ дан 3 March 2017 в 07:16

Вы можете также попробуйте:

sudo aptitude safe-upgrade

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

От man aptitude :

safe-upgrade

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

30
ответ дан 3 March 2017 в 07:16

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

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

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

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

38
ответ дан 3 March 2017 в 07:16

Энэ Unix SE хариултыг туршиж үзээрэй :

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

Энэ нь шинэ багцууд байх боломжийг олгоно. суулгасан. Энэ нь ямар багцуудыг суулгахыг танд мэдэгдэж, суулгалтыг бодитоор хийхээсээ өмнө танд өгөх болно.

apt command ( friendly altern to apt-get ) энэ сонголтыг хуваалцах.

Үүний оронд apt install -ийг ашигласнаар pkg-ийг "гараар суулгасан" гэж тэмдэглэх болно !! Үүнийг дахин "автоматаар суулгасан" гэж тэмдэглэхийн тулд apt-mark auto-г ашиглана уу. (дэд команд showmanual -г үзнэ үү). Энэ хариултын талаар нэмэлт мэдээлэл .

241
ответ дан 3 March 2017 в 07:16

Есть ли прозрачный прокси между вами и архивом Ubuntu? Похоже, что некоторые из файлов пакетов извлекаются некорректно (что приводит к сбоям GPG). Попробуйте это из командной строки:

curl -I http://extras.ubuntu.com/ubuntu/dists/maverick/Release

Показывает ли это что-то подобное? (Первая строка, показывающая "200 OK", ожидалась бы, если бы все не было полностью сломано.)

HTTP/1.1 200 OK
Date: Thu, 23 Dec 2010 21:08:06 GMT
Server: Apache/2.2.8 (Ubuntu)
Last-Modified: Sun, 10 Oct 2010 23:00:00 GMT
ETag: "f72018-dfca-4924b34083c00"
Accept-Ranges: bytes
Content-Length: 57290
Content-Type: text/plain

Если все выглядит чисто, попробуйте еще раз:

sudo apt-get clean
sudo apt-get update
-.121---906923-

apt-get dist-upgrade опасен для стабильного окружения,

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

Use case: kernel upgrade kept back, you just want to upgrade the kernel, dont want to upgrade whole distribution.

Better way to handle kept back package:

sudo aptitude

If you have kept back package you should see Upgradeable Packages on the top of the list.

  • Нажмите + в этом списке
  • Нажмите g дважды
  • Ответьте debconf, если вас спросят
  • Нажмите return для продолжения
  • Нажмите Q
  • Нажмите yes

Ваш пакет keep back установлен.

181
ответ дан 3 March 2017 в 07:16

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

The following packages have been kept back:

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

apt-get install <list of packages kept back>

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

549
ответ дан 3 March 2017 в 07:16

Ubuntu 18.04 (и новее) предоставляет упрощенный синтаксис через apt full-upgrade , который функционирует как sudo apt-get --with-new-pkgs upgrade .

sudo apt full-upgrade

sudo apt upgrade используется для установки доступных обновлений всех пакетов, установленных в настоящее время в системе, из источников, настроенных с помощью sources.list (5). Новые пакеты будут установлены, если это необходимо для удовлетворения зависимостей, но существующие пакеты никогда не будут удалены. Если для обновления пакета требуется удаление установленного пакета, обновление для этого пакета не выполняется.

sudo apt full-upgrade выполняет функцию обновления, но удаляет установленные в данный момент пакеты, если это необходимо для обновить систему в целом.

См .: apt страница руководства: 18.04 , 20.04

9
ответ дан 10 September 2019 в 17:42

На меня и нескольких комментаторов ответа Пабло

sudo apt-get --with-new-pkgs upgrade  # No effect

не повлиял. Я не хочу, чтобы мой пакет был помечен как установленный вручную, поэтому я сделал следующее, используя в качестве примера сохраненный пакет docker-ce :

sudo apt install docker-ce  # Answer no, do not install

Отмените установку, ответив n . Обратите внимание на новые пакеты, которые должны были быть установлены, и установите их:

sudo apt install docker-ce-rootless-extras

Теперь apt upgrade обновит ранее сохраненный пакет:

sudo apt upgrade  # Upgrades docker-ce
0
ответ дан 5 January 2021 в 23:59
The following packages have been kept back:
  clang-9 cpp g++ gcc gcc-10-base kali-linux-default lib32gcc-s1 lib32stdc++6 libatomic1 libcc1-0
  libclang-common-9-dev libclang-cpp9 libgcc-s1 libgfortran5 libgomp1 libitm1 libllvm9 liblsan0 libobjc4
  libpython2-stdlib libquadmath0 libstdc++6 libtsan0 libubsan1 linux-headers-amd64 llvm-9 llvm-9-dev llvm-9-runtime
  llvm-9-tools python2 python2-minimal python3-chardet python3-pandas python3-pandas-lib

удачное обновление;apt update просто возвращался к этому и ничего не устанавливал. Также был огромный блок материала, который нужно было автоматически удалить, и все прошло нормально, но все равно не удалось установить сохраненные пакеты. Я попробовал простые варианты 1 и 2 в начале этого потока, и они не сработали.

Так что я просто сделал apt install / весь список сохраненных пакетов /, и все пошло.

] Я никогда раньше не сталкивался с этой проблемой. Я просто подумал, что это удачное обновление было странным; apt upgrade не сработал, но apt install с последующим копированием всего списка прошел без сбоев, и теперь он работает нормально.

И я собираюсь извиниться. Я не использовал дистрибутив ubuntu (я только что понял это). Я действительно обновлял установку Kali, когда все это произошло. Я никогда не видел ничего подобного в Ubuntu.

Сообщите мне, следует ли мне удалить этот пост (все еще новый).

Рон

0
ответ дан 5 January 2021 в 23:59

Для очень специфического аспекта этой проблемы, когда проприетарные драйверы nvidia наполовину обновлены до новой версии, я переустановил их с помощью диспетчера драйверов. Чтобы дать некоторый контекст: я застрял на полпути между версиями драйвера 440 и 450, и весь пакет пакетов libnvidia 440 был оставлен. Это привело к тому, что мой кубунту застрял на экране всплеска после grub. Чтобы войти в систему, мне пришлось добавить «nomodeset» к команде grub, как описано здесь .

В этом конкретном случае

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

не возымел действия. Однако мне удалось переустановить драйверы с помощью дополнительного управления драйверами. В моем случае, в Kubuntu я запустил

sudo kubuntu-driver-manager

В Ubuntu вы можете получить то же самое через Системные настройки> Система> Программное обеспечение и обновления> Дополнительные драйверы

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

0
ответ дан 5 January 2021 в 23:59

После do-release-upgrade ваш сторонние или частные репозитории (например, PPA) могут быть отключены. Это может остановить обновление пакета, потому что он больше не может находить нужные ему зависимости и / или старые пакеты конфликтуют с более новыми пакетами.

Просмотрите свои файлы .list , обычно в /etc/apt/sources.list.d , чтобы узнать, что нужно повторно включить.

Затем запустите apt update и повторите попытку.

Это случилось со мной после do-release-upgrade на виртуальной машине Google.

0
ответ дан 27 April 2021 в 02:16

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

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