Я только что добавил PPA-репозиторий для версии GIMP для разработчиков, но получаю эту ошибку:
$ apt-get update && apt-get upgrade
...
The following packages have been kept back:
gimp gimp-data libgegl-0.0-0 libgimp2.0
Почему и как я могу решить эту проблему, чтобы я мог использовать последнюю версию вместо той, что у меня сейчас?
Согласно статье на сайте debian-administration.org,
Если зависимости изменились для одного из установленных вами пакетов так, что для выполнения обновления необходимо установить новый пакет, то он будет указан как "kept-back".
Осторожное решение 1:.
Согласно ответу Pablo's, вы можете запустить sudo apt-get --with-new-pkgs upgrade
, и он установит сохраненные пакеты.
Преимущество этого способа в том, что сохраненные пакеты не будут помечены как "установленные вручную", что может потребовать вмешательства пользователя в дальнейшем (см. комментарии).
Если решение Пабло работает для вас, пожалуйста, поддержите его. Если нет, пожалуйста, прокомментируйте, что пошло не так.
Осторожное решение 2:.
Осторожным решением является выполнение команды sudo apt-get install <list of packages kept back>
. В большинстве случаев это даст сохраненным пакетам все необходимое для успешного обновления.
Агрессивное решение:
Более агрессивным решением является запуск sudo apt-get dist-upgrade
, что приведет к принудительной установке новых зависимостей.
Но dist-upgrade
может быть довольно опасным. В отличие от обновления оно может удалять пакеты для решения сложных ситуаций с зависимостями. В отличие от вас, APT не всегда достаточно умна, чтобы понять, могут ли эти добавления и удаления посеять хаос.
Поэтому, если вы оказались в ситуации, когда "осторожное решение" не работает, dist-upgrade
может сработать... но вам, вероятно, лучше узнать немного больше об APT и решать проблемы зависимостей "вручную", устанавливая и удаляя пакеты в каждом конкретном случае.
Подумайте об этом как о ремонте автомобиля... если у вас есть время и вы умеете обращаться с гаечным ключом, вы получите некоторое душевное спокойствие, прочитав информацию и выполнив ремонт самостоятельно. Если вам повезет, вы можете отдать машину своей двоюродной сестре для "дист-апгрейда" и надеяться, что она знает свое дело.
Всякий раз, когда вы получаете от команды apt-получить обновление
сообщение
The following packages have been kept back:
затем для обновления одного или всех держат-пакета, без обновления дистрибутива (это что дист-апгрейд делает, если я правильно помню) выдать команду:
apt-get install <list of packages kept back>
это будет решать сохранил-обратно вопросов и попросит установить дополнительные пакеты и т. д. как объяснили другие ответы.
`apt-получить расстояние-обновления опасна для стабильной обстановки,
Пример: обновление ядра недоговаривал, вы просто хотите, чтобы обновить ядро, не хотите обновлять весь дистрибутив.
Лучший способ справиться с недоговаривал пакет:
sudo aptitude
Если у вас есть недоговаривал пакет, который вы должны увидеть пакеты, которые можно обновить на верхней части списка.
Ваш удержанная установленного пакета.
Почему вы не попробуйте этот ответ в Unix ЮВ:
sudo apt-get --with-new-pkgs upgrade
это позволяет установить новые пакеты. Это позволит вам знать, какие пакеты будут установлены и предложит вам перед тем, как установить.
АПТ
команда (Альтернатива в apt-получить
) поделиться этой опцией.
Используя `АПТ установить <ПКГ> вместо этого будем отмечать пакет как "установлен вручную на"!! Снова пометить его как "автоматически установлена на" использование АПТ-марки авто <ПКГ>
(см. Также подпрограмма showmanual
). Подробнее этот ответ.
Обычно есть две причины, по которым вы можете увидеть это сообщение.
Если обновление программы (через sudo apt-get upgrade
) приведет к добавлению или удалению пакетов, то программа будет задержана. В этом случае вы можете использовать sudo apt-get dist-upgrade
, которая предложит добавить или удалить дополнительные программы.
Это довольно распространенное явление и обычно не вызывает проблем. Иногда (особенно во время альфа-версии Ubuntu) dist-upgrade
предложит удалить множество других программ, и в этом случае вы, вероятно, захотите отменить его.
Если программа зависит от пакетов или версий, которые недоступны, то программа будет задержана. В этом случае вы действительно не можете ничего сделать, кроме как ждать, поскольку пакет в принципе не подлежит удалению. Это может произойти, когда пакеты добавляются в репозиторий не по порядку, когда пакет переименовывается или когда пакет перестает предоставлять виртуальный пакет.
Вы также можете попробовать:
sudo aptitude safe-upgrade
Это'ы безопаснее, чем полного обновления` (первоначально названный дист-апгрейд) потому что "в пакеты не будут удалены, если они не используются и".
безопасный-обновления
установленные обновления пакетов в своих последних версиях. Установлен пакеты не будут удалены, если они не используются /.../ пакеты которые в настоящее время не установлен, может быть установлен, чтобы разрешить В зависимости если-нет-новый-устанавливает параметр командной строки В комплект поставки.
Скорее всего, эти пакеты задерживаются, потому что их установка создаст несоответствия зависимостей. Это может произойти либо потому, что вы используете архивы, находящиеся в стадии активной разработки, ppas, либо потому, что используемое вами зеркало не полностью обновлено.
В последнем случае просто подождите, когда зависимости будут устранены, они будут установлены в следующий раз.
Редактирование:
Есть и другая возможность, пакеты могут быть задержаны, если на них наложен запрет, или если они прикреплены.
Обычно это потому, что пакет добавил зависимость, и обновление не'т хотите, чтобы добавить его для вас без разрешения.
Если вы работаете:
sudo apt-get install gimp gimp-data libgegl-0.0-0 libgimp2.0
Затем новые версии должен быть установлен вместе со своей новой зависимости.
Я обнаружил, что способность делает лучшую работу при обновлении пакетов, Если версии немного отличаются. У меня была такая ситуация:
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-получить сдерживают обновление, но способности обновили его просто отлично. Я'м не знаете, какой алгоритм используется, чтобы определить, если пакет должен быть обновлен или нет. Я предполагаю, что эти двое были той же версии, только другой 'классификатор'. Но в любом случае, apt-получить не'обновление T, но способности были.
В моем случае пакеты сдерживали эти ОС Linux-заголовков и ядра. Я пришел к этому, пытаясь решить проблему с красным восклицательным знаком в области уведомлений и не имея возможности обновить пакеты.
Чтобы решить его, мне не пришлось использовать ни дист-апгрейд ни руководство apt-получить установку ХХХ.
То, что я сделал и помог уже простой и чистый:
sudo apt-get update
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get upgrade
Мне пришлось вручную подтвердить обновление GRUB и его конфигурации.
Тогда я просто работал с компьютером, а потом стандартный диалог обновления снова появился, наконец, включая "База Убунту и" раздел с ядром и обзоры. Обновление было выполнено без каких-либо проблем и я не вижу ни сдерживал пакетов больше.
Также, очень важно иметь в виду, что эти *бунту обновления, в том числе обновления ядра чувствительны к гибернации - я'ве получил эту проблему несколько раз, и я всегда получить его решена путем перезагрузки машины и выполнив действия, указанные выше.
Так что, возможно, этого будет достаточно?!
(описаны здесь ситуация связана с моей Xubuntu в 15.10 в конце декабря 2015 года)
Я столкнулся с этой проблемой, когда было выпущено новое ядро. (Возможно, потому, что у меня нестабильные обновления.) Я нашел самый простой способ сделать установку через Убунту'графический установщик с (обновление-менеджер
).
В Ubuntu 18.04 предоставляет новые, упрощенные синтаксис через АПТ
, который может быть использован вместо apt-получить
.
судо АПТ полного обновления
судо АПТ обновления
используется, чтобы установить доступные обновления всех пакетов, установленных в системе из источников, настроенных по источникам.список(5). Новые пакеты будут установлены, если требуются для удовлетворения зависимостей, но пакеты existing никогда не будут удалены. Если обновление для пакета требует удаления установленного пакета обновления для этого пакета, это'т, выполненных.
судо АПТ полного обновления
выполняет функцию обновления, но будет удалить установленные пакеты, если это необходимо для обновления системы в целом.
См.: АПТ
страницы
Я столкнулся с этой проблемой, используя Synaptic, потому что он появился, чтобы повесить, и чтобы попытаться исправить это, я перезарядил и снова попробовал.
Потом я обнаружил информационное сообщение-в рамках пакета после установки инструкции для меня.
Я должен был хит "деталито", а потом 'м' Для бросить после прочтения сообщения, а потом все протекало нормально.
Это выглядит как правильный способ переустановить недоговаривал пакет:
apt-get install --reinstall libjpeg-progs
По крайней мере это работало для меня, когда libjpeg-прогрессистов
застрял после обновления с Ubuntu 14.04 по 16.04. Я'м уверена, что вы можете сделать то же самое с любой другой утаил приложение, например, gimp
.
Я прочитал все посты и обнаружил, что есть много интересных объяснений. Я пробовал все из них, но не полностью никаких результатов. У меня проблема с MySQL сервер-коммунальных услуг что я не мог'модернизация Т. Обновление было предложено системой. Итак, я хочу показать некоторые шаги, чтобы сделать это. Конечно, я повторюсь в некоторых моментах все вышеупомянутые посты. Тут моя ошибка, да я нашел его уже существовали посты, но что делать дальше?
Следующий шаг:
sudo apt-get --purge remove mysql-utilities
Результаты мы можем видеть на изображении ниже. Я удалить пакет и проверить это с помощью команды:
sudo apt-get -f install
Результаты - Отлично! Позже я установил эту новую версию пакета правильно.
Я думаю, это может помочь для более новых людей, потому что других пакетов мы можем сделать те же шаги.
Однажды, я извиняюсь, когда я повторил в некоторых местах другие посты.