Я только что добавил PPA-репозиторий для версии разработки GIMP, но я получаю эту ошибку:
$ apt-get update && apt-get upgrade
...
The following packages have been kept back:
gimp gimp-data libgegl-0.0-0 libgimp2.0
Почему и как я могу решить эту проблему, чтобы я мог использовать последнюю версию вместо той, которая у меня есть сейчас?
apt
package-management
jfoucher
источник
источник
Ответы:
Согласно статье на debian-administration.org ,
Осторожное решение 1:
Согласно ответу Пабло , вы можете запустить
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 и решить проблемы с зависимостями «вручную», установив и удалив пакеты на индивидуальной основе.Подумайте об этом, как починить машину ... если у вас есть время и вам пригодится гаечный ключ, вы немного успокоитесь, прочитав и выполнив ремонт самостоятельно. Если вам повезет, вы можете отвезти свою машину к двоюродной сестре
dist-upgrade
и надеяться, что она знает свои вещи.источник
dist-upgrade
в стабильной системе, как указывалось во многих других ответах ниже. Лично я думаю, что есть более простой / безопасный ответ, который нужно продвигать: apt-get install <список pkgs>sudo apt-get dist-upgrade
также можно удалить пакеты. Следовательно, лучше всегда проверять список изменений, которые будут внесены, прежде чем соглашаться с ними, при запускеsudo apt-get dist-upgrade
.apt-get upgrade
можно удалить пакеты? Это всегда будет происходить, если в противном случае возникнет конфликт версий. Подумайте оllvm3.6
противllvm3.6v5
(с "v5" означает, что он был скомпилированgcc 5
). Эти два не могут сосуществовать , только один из них может быть сохранен в системе. Так что yesdist-upgrade
может также удалить некоторые пакеты, но не толькоdist-upgrade
это будет сделано; при определенных обстоятельствахupgrade
, также.Всякий раз, когда вы получаете от команды
apt-get upgrade
сообщениезатем обновить один или все скрытые пакеты без обновления дистрибутива (вот что
dist-upgrade
делает, если я правильно помню) , выполнив команду:это решит скрытые проблемы и попросит установить дополнительные пакеты и т. д., как было объяснено другими ответами.
источник
apt-get upgrade <list of packages>
, если я повторяюapt-get upgrade
, он перечислит рассматриваемые пакеты как ненужные и которые я могу использоватьapt autoremove
для их удаления, что я делаю, и затем один последний,apt-get upgrade
и они больше не перечислены как сдержался ... Очень странно. есть идеи?apt-get install
Также удаляет ли пакеты пакеты, когда это необходимо для разрешения проблемных зависимостей, или вам нужно будет выполнить отдельнуюapt-get remove
команду для выполнения этой части процесса обновления?apt autoremove
затем удаляет эти неиспользуемые зависимости.sudo apt-get --with-new-pkgs upgrade
что неapt-get dist-upgrade
опасен для стабильной окружающей среды,Вариант использования: обновление ядра отложено, вы просто хотите обновить ядро, не хотите обновлять весь дистрибутив.
Лучший способ обработать сохраненную упаковку:
Если вы сохранили обратно пакет, вы должны увидеть Обновляемые пакеты вверху списка.
Ваш сохраненный пакет установлен.
источник
apt-get dist-upgrade
опасно только если у вас плохие репозитории в/etc/apt/sources.list*
. Хорошо знать, чтоdist-upgrade
обновляются все пакеты, но с репозиториями по умолчанию это должно быть хорошо. Не использоватьdist-upgrade
может быть опасно, так как вы можете пропустить обновления безопасности.apt-get dist-upgrade
Можно удалять и добавлять пакеты, но это не очень опасно. Любая команда установки пакета может привести к серьезному повреждению, если у вас есть проблемы в вашемsources.list
файле ! Обычнаяapt-get upgrade
команда установит любой пакет из любого программного источника, который включен;dist-upgrade
не уникален в этом смысле. Кроме того, использованиеaptitude
для выполнения какой-либо операции вообще, по крайней мере на amd64, намного более опасно, чем запускapt-get dist-upgrade
, в выпуске, где ошибка 831768 не исправлена.sudo aptitude safe-upgrade
Почему бы вам не попробовать этот Unix SE ответ :
apt
Команда ( дружественная альтернатива дляapt-get
) разделяет эту опцию.Использование
apt install <pkg>
вместо этого пометит pkg как «установленный вручную» !! Чтобы снова пометить его как «автоматически установленный»apt-mark auto <pkg>
(см. Также подкомандуshowmanual
). Подробнее об этом ответе .источник
apt-mark auto <pkg>
необходимо только пометить пакет как автоматически устанавливаемый ( здесь страница руководства ).sudo apt-get --with-new-pkgs upgrade
все еще показывает пакеты как "хранящиеся обратно". Нет сообщения об ошибке.Обычно есть две причины, по которым вы можете увидеть это сообщение.
Если обновление программы (через
sudo apt-get upgrade
) приведет к добавлению или удалению пакетов, программа будет отложена. Вы можете использоватьsudo apt-get dist-upgrade
в этом случае, который затем предложит добавить или удалить дополнительные программы.Это довольно часто и обычно не проблема. Иногда (особенно во время альфа-
dist-upgrade
версии Ubuntu) a предлагает удалить множество других программ, и в этом случае вы, вероятно, захотите отменить ее.Если программа зависит от пакетов или версий, которые недоступны, программа будет отложена. Вы действительно ничего не можете сделать, кроме как ждать в таких обстоятельствах, поскольку пакет в основном не удаляется. Это может произойти, когда пакеты добавляются в хранилище не по порядку, когда пакет переименовывается или когда пакет перестает предоставлять виртуальный пакет.
источник
apt-get dist-upgrade
отказался устанавливать его. Проверка пакета с помощью aptitude показала, что это зависит от пакета, который недоступен. Я думаю, мне придется подождать.Вы также можете попробовать:
sudo aptitude safe-upgrade
,Это безопаснее, чем
full-upgrade
(первоначально называлось dist-upgrade), потому что «пакеты не будут удалены, если они не используются».От
man aptitude
:источник
Скорее всего, эти пакеты задерживаются, потому что их установка создаст несоответствия зависимостей. Это может произойти либо потому, что вы используете архивы в активной разработке, ppas, либо потому, что используемое вами зеркало не полностью обновлено.
В последнем случае просто подождите, когда зависимости будут разрешены, он будет установлен в следующий раз.
Редактировать:
Существует еще одна возможность, пакеты могут быть задержаны, если их задержать или они закреплены.
источник
dist-upgrade
. Если вы все еще хотитеdist-upgrade
, посмотрите на НОВЫЕ пакеты, которые будут установлены, и пакеты, которые нужно удалить, прежде чем идти дальше.apt-get install --reinstall <packages>
.Обычно это связано с тем, что в пакет добавлена зависимость, и обновление не хочет добавлять его без разрешения.
Если вы запускаете:
Затем новые версии должны быть установлены вместе с их новой зависимостью.
источник
Это сработало для меня
источник
aptitude upgrade
работал на меня.Ubuntu 14.04
и у меня нетaptitude
командной строкиapt-get dist-upgrade
дал мне то же сообщение, но это решило это для меня. У меня был пакет, который ломал обновление другого пакета. Мне не нужен тот, который я установил, поэтомуaptitude full-upgrade
дал мне возможность удалить его, чтобы он мог обновить все остальное.Я обнаружил, что aptitude лучше выполняет обновление пакетов, если версии отличаются незначительно. У меня была такая ситуация:
Это заставило apt-get задержать обновление, но aptitude обновил его просто отлично. Я не уверен, какой алгоритм используется, чтобы определить, должен ли пакет обновляться или нет. Полагаю, у этих двоих была одна и та же версия, но разный «классификатор» Но в любом случае, apt-get не обновит его, а aptitude.
источник
В моем случае сдерживались пакеты, связанные с linux-заголовками и ядром. Я пришел к этому, пытаясь решить проблему с красным восклицательным знаком в области уведомлений и невозможностью обновления пакетов.
Чтобы решить эту проблему, мне не пришлось использовать ни dist-upgrade, ни ручную установку apt-get xxx .
То, что я сделал и помогло, было просто и чисто :
Мне пришлось вручную подтвердить обновление Grub и его конфигурацию.
Потом я просто поработал некоторое время с компьютером, а затем снова появилось стандартное диалоговое окно обновления, включающее раздел «Ubuntu base» с ядром и прочим. Обновление было выполнено без каких-либо проблем, и я больше не вижу задержанных пакетов.
Кроме того, очень важно помнить, что эти обновления * buntu, включая обновления ядра, чувствительны к гибернации - я сталкивался с этой проблемой несколько раз и всегда решаю ее, перезагружая машину и выполняя описанные выше действия.
Так что, может быть, этого будет достаточно ?!
(описанная здесь ситуация связана с моим Xubuntu 15.10 в конце декабря 2015 г.)
источник
Я столкнулся с этой проблемой, когда было выпущено новое ядро. (Возможно, потому что у меня включены нестабильные обновления.) Я обнаружил, что самый простой способ выполнить установку - это графический установщик Ubuntu (
update-manager
).источник
Я столкнулся с этой проблемой, используя synaptic, потому что она зависла, и, чтобы попытаться это исправить, я перезагрузился и попытался снова.
Затем я обнаружил информативное сообщение как часть пакета с некоторыми инструкциями после установки для меня.
Мне пришлось нажать « детали », а затем « q » для выхода после прочтения сообщения, и затем все пошло нормально.
источник
Это выглядит как правильный способ переустановить сохраненный обратно пакет:
apt-get install --reinstall libjpeg-progs
По крайней мере, это работало для меня, когда
libjpeg-progs
застрял после обновления с Ubuntu 14.04 до 16.04. Я уверен, что вы можете сделать то же самое с любым другим приложением, напримерgimp
.Источник: https://ubuntuforums.org/showthread.php?t=2321702&p=13476183#post13476183
источник
--reinstall
.На самом деле вам нужен переключатель,
dselect-upgrade
который устанавливает / удаляет зависимости для конкретного набора пакетов.источник
Я прочитал все посты и обнаружил, что есть много интересных объяснений. Я пытался все из них, но не дал никаких результатов полностью. У меня проблема с утилитами mysql, которые я не смог обновить. Обновление было предложено системой. Итак, я хочу показать некоторые шаги, чтобы сделать это. Конечно, я повторю в некоторых моментах все вышеупомянутые посты. Вот моя ошибка, да я нашел ее по уже существующим постам, но что мне делать дальше?
Следующий шаг:
Результаты, которые мы можем видеть на изображении ниже. Я удаляю пакет и проверяю это командой:
Результаты - отлично! Позже я правильно установил эту новую версию пакета.
Таким образом, я думаю, что это может помочь большему количеству новых людей, потому что, имея другие пакеты, мы можем делать те же шаги.
Однажды, извините, когда я повторил в некоторых местах другие посты.
источник
{}
кнопку в редакторе, чтобы правильно отформатировать его.Ubuntu 18.04 предоставляет новый, оптимизированный синтаксис, с помощью
apt
которого можно использовать вместоapt-get
.источник