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

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

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

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

29 ответов

Решение

Согласно http://www.debian-administration.org/articles/69,

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

Осторожное решение 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 и надеюсь, что она знает свои вещи.

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

The following packages have been kept back:

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

apt-get install <list of packages kept back>

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

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

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

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

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

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

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

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

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

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

sudo aptitude

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

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

Ваш сохраненный пакет установлен.

Я добавляю этот ответ, потому что меня не устраивает то, как другие ответы обрабатывают часть вопроса « почему », чтобы понять, что происходит, и выбрать соответствующий курс действий.

Надеюсь, это поможет кому-то избежать слепого бега apt dist-upgradeв отчаянии!

Почему пакет спрятан?

Насколько мне известно, есть 2 категории причин, по которым пакеты не возвращаются во время apt upgrade.

Он помечен как сдерживаемый

apt-markможет сделать это :

      sudo apt-mark hold <package>

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

Чтобы просмотреть список всех пакетов, помеченных на удержании, или узнать, находится ли пакет на удержании, используйте:

      apt-mark showhold
apt-mark showhold <package>

Чтобы снять блокировку с пакета и разрешить его обновление:

      sudo apt-mark unhold <package>

aptобнаруживает изменение зависимости

Лучший авторитетный источник информации , который я смог найти по этому поводу, помечен как устаревший, но в нем говорится:

[Удержано] означает, что есть новые версии этих пакетов, которые по какой-то причине не будут установлены. Возможные причины: неработающие зависимости (у пакета, от которого он зависит, нет доступной для скачивания версии) или новые зависимости (со времени последней версии пакет стал зависеть от новых пакетов).

Это сообщит вам текущую и потенциальную версии обновления пакета:

      $ apt list <package>

# example output:
vim/bionic-updates,bionic-security 2:8.0.1453-1ubuntu1.4 amd64 [upgradable from: 2:8.0.1453-1ubuntu1.3]
N: There are 2 additional versions. Please use the '-a' switch to see them.

В текущей версии (например, 2:8.0.1453-1ubuntu1.3) и новая версия (например, 2:8.0.1453-1ubuntu1.4), мы можем выяснить измененные зависимости с помощьюapt show:

      apt show <package>=<old version> <package>=<new version>

# example:
apt show vim=2:8.0.1453-1ubuntu1.3 vim=2:8.0.1453-1ubuntu1.4

(или просто используйте apt show -aдля просмотра всех версий напрямую, но, на мой взгляд, это усложняет сравнение версий)

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

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

  1. Чтобы обновить пакет и установить любые новые «Рекомендуемые» пакеты (т. е. как если бы они были установлены заново с apt install <package>, использовать:

            sudo apt install --only-upgrade <package>
    

    (Совет: добавьте, чтобы увидеть, что произойдет, прежде чем делать это)

  2. Чтобы обновить пакет без установки новых добавленных «рекомендуемых» пакетов , используйте--only-upgrade--with-new-pkgs.

            sudo apt upgrade --with-new-pkgs <package>
    

Практический пример: обновление пакета

Обновление пакета в Ubuntu 18.04 — это то, что привело меня сюда в первую очередь, поэтому я подумал, что было бы интересно получить полный конкретный пример.

      $ sudo apt upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  docker-ce
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

$ apt list docker-ce
Listing... Done
docker-ce/bionic 5:20.10.3~3-0~ubuntu-bionic amd64 [upgradable from: 5:19.03.12~3-0~ubuntu-bionic]
N: There are 34 additional versions. Please use the '-a' switch to see them.

Хорошо, посмотрим, что сдерживает docker-ce:

      $ apt show docker-ce=5:19.03.12~3-0~ubuntu-bionic docker-ce=5:20.10.3~3-0~ubuntu-bionic
Package: docker-ce
Version: 5:19.03.12~3-0~ubuntu-bionic
Priority: optional
Section: admin
Maintainer: Docker <support@docker.com>
Installed-Size: 107 MB
Depends: docker-ce-cli, containerd.io (>= 1.2.2-3), iptables, libseccomp2 (>= 2.3.0), libc6 (>= 2.8), libdevmapper1.02.1 (>= 2:1.02.97), libsystemd0
Recommends: aufs-tools, ca-certificates, cgroupfs-mount | cgroup-lite, git, pigz, xz-utils, libltdl7, apparmor
Conflicts: docker (<< 1.5~), docker-engine, docker-engine-cs, docker.io, lxc-docker, lxc-docker-virtual-package
Replaces: docker-engine
Homepage: https://www.docker.com
Download-Size: 22.5 MB
APT-Manual-Installed: yes
APT-Sources: https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
Description: Docker: the open-source application container engine
 Docker is a product for you to build, ship and run any application as a
 lightweight container
 .
 Docker containers are both hardware-agnostic and platform-agnostic. This means
 they can run anywhere, from your laptop to the largest cloud compute instance and
 everything in between - and they don't require you to use a particular
 language, framework or packaging system. That makes them great building blocks
 for deploying and scaling web apps, databases, and backend services without
 depending on a particular stack or provider.

Package: docker-ce
Version: 5:20.10.3~3-0~ubuntu-bionic
Priority: optional
Section: admin
Maintainer: Docker <support@docker.com>
Installed-Size: 121 MB
Depends: containerd.io (>= 1.4.1), docker-ce-cli, iptables, libseccomp2 (>= 2.3.0), libc6 (>= 2.8), libdevmapper1.02.1 (>= 2:1.02.97), libsystemd0
Recommends: apparmor, ca-certificates, docker-ce-rootless-extras, git, libltdl7, pigz, xz-utils
Suggests: aufs-tools, cgroupfs-mount | cgroup-lite
Conflicts: docker (<< 1.5~), docker-engine, docker-engine-cs, docker.io, lxc-docker, lxc-docker-virtual-package
Replaces: docker-engine
Homepage: https://www.docker.com
Download-Size: 24.8 MB
APT-Sources: https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
Description: Docker: the open-source application container engine
 Docker is a product for you to build, ship and run any application as a
 lightweight container
 .
 Docker containers are both hardware-agnostic and platform-agnostic. This means
 they can run anywhere, from your laptop to the largest cloud compute instance and
 everything in between - and they don't require you to use a particular
 language, framework or packaging system. That makes them great building blocks
 for deploying and scaling web apps, databases, and backend services without
 depending on a particular stack or provider.

Версия 5:20.10.3~3-0~ubuntu-bionicдобавил docker-ce-rootless-extrasв качестве новой рекомендуемой зависимости. Я бы хотел, чтобы apt был более полезным и просто предложил установить его или что-то в этом роде, а не оставлять мне старую версию... Во всяком случае, вот 2 возможных исправления (с --dry-runдля наглядности):

      $ sudo apt upgrade --with-new-pkgs --dry-run docker-ce
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  docker-ce
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Inst docker-ce [5:19.03.12~3-0~ubuntu-bionic] (5:20.10.3~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Conf docker-ce (5:20.10.3~3-0~ubuntu-bionic Docker CE:bionic [amd64])

$ sudo apt install --only-upgrade --dry-run docker-ce
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  docker-ce-rootless-extras
Recommended packages:
  slirp4netns
The following NEW packages will be installed:
  docker-ce-rootless-extras
The following packages will be upgraded:
  docker-ce
1 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Inst docker-ce [5:19.03.12~3-0~ubuntu-bionic] (5:20.10.3~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Inst docker-ce-rootless-extras (5:20.10.3~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Conf docker-ce (5:20.10.3~3-0~ubuntu-bionic Docker CE:bionic [amd64])
Conf docker-ce-rootless-extras (5:20.10.3~3-0~ubuntu-bionic Docker CE:bionic [amd64])

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

sudo aptitude safe-upgrade,

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

От man aptitude:

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

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

Это происходит больше с тех пор, как я обновился до 22.04.

Причина обычно в поэтапных обновлениях . (Спасибо @louis-waweru за ссылку.)

  1. Решение состоит в том, чтобы игнорировать эти сообщения «были скрыты». Когда сопровождающие репозитория сочтут эти пакеты достаточно безопасными для установки, вы их получите.

  2. Если вам абсолютно необходимо получить эти обновления, вы можете создать файл /etc/apt/apt.conf.d/99-Phased-Updatesс содержимым:

      Update-Manager::Always-Include-Phased-Updates "1";
APT::Get::Always-Include-Phased-Updates "1";

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

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

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

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

Unbuntu 18.04 предоставляет новый, оптимизированный синтаксис через apt который можно использовать вместо apt-get,

sudo apt full-upgrade

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

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

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

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

Редактировать:

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

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

sudo aptitude full-upgrade

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

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

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

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

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

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.

Обновление/обновление не работает [последний ответ]

Удерживаемые пакеты (...) в настоящее время находятся в стадии поэтапного обновления.

      Phased Updates is one precaution to prevent everybody from receiving a buggy package via upgrade: Some people get the upgraded a few days earlier, others a few days later. This provides an opportunity to pause distribution if early folks report problems.

Нет ничего плохого. Ваша система НЕ сломана.

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

apt-get install --reinstall libjpeg-progs

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

Источник: https://ubuntuforums.org/showthread.php?t=2321702&p=13476183#post13476183

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

В то время как другие ответы предупреждали, что apt dist-upgradeможет удалить программы, обратите внимание, что вы можете просто запустить команду, а затем ответить «нет» на вопрос «Хотите продолжить?» вопрос, чтобы выяснить, что будет делать apt .


После обновления Raspberry Pi с Buster на Bullseye я получил точный отчет

      The following packages have been kept back:
  sshfs

Итак, я начал искать сообщение об ошибке, попал на эту страницу, прочитал несколько ответов, а затем побежал

      $ apt-get dist-upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be REMOVED:
  fuse
The following NEW packages will be installed:
  fuse3 libfuse3-3
The following packages will be upgraded:
  sshfs
1 upgraded, 2 newly installed, 1 to remove and 0 not upgraded.
Need to get 147 kB of archives.
After this operation, 196 kB of additional disk space will be used.
Do you want to continue? [Y/n] 

В этот момент ясно, что fuseбыл заменен на fuse3и я рад позволить apt удалить его.


Ваша ситуация может быть другой, но выполнение (потенциального) пробного прогона даст вам более подробную информацию и, вполне возможно, ответит на вопрос «почему».

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

Чтобы решить эту проблему, мне не пришлось использовать ни dist-upgrade, ни ручную установку apt-get 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 г.)

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

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

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

sudo apt-get --purge remove mysql-utilities

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

sudo apt-get -f install

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

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

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

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

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

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

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

      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

Вот скрипт, который автоматически решает проблему для меня:

      sudo apt-get install --only-upgrade `sudo apt-get upgrade | awk 'BEGIN{flag=0} /The following packages have been kept back:/ { flag=1} /^ /{if (flag) print}'`

Как: строка выше ищет сообщение «Следующие пакеты были сохранены» вapt updateи если найдено, он передает списокapt-get install --only-upgrade

Примечание : будьте очень осторожны с любыми изменениями в вашей системе. Работа с apt может привести к поломке вашей системы!

Также обратите внимание, что может потребоваться запуститьapt update a&& apt upgradeи указанную выше команду несколько раз, пока обновление не станет стабильным.

Я всегда запускаю dist-upgrade на своем ноутбуке разработчика, потому что мне нравятся самые последние и лучшие версии, а не do-release-upgrade, который на самом деле обновляет до более новой версии,

В Ubuntu 22.04 у меня была эта проблема с обоими:

      ubuntu@ubuntu-inspiron-5482:~$ sudo apt dist-upgrade 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  python3-distupgrade ubuntu-release-upgrader-core ubuntu-release-upgrader-gtk
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

а также

      ubuntu@ubuntu-inspiron-5482:~$ sudo apt-get --with-new-pkgs upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  python3-distupgrade ubuntu-release-upgrader-core ubuntu-release-upgrader-gtk
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

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

      sudo apt install ubuntu-release-upgrader-core 

После этого 3 пакета установлены и все обновлено. Интересно, почему они были сохранены, я не заметил разницы в своей системе, но, возможно, есть проблема с новым выпуском, в котором работают инструменты.

Во всяком случае, это единственный вариант, который работает для меня.

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.

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

Рон

Некоторые недавно установленные пакеты могут потребовать перезагрузки перед установкой новых (последние задерживаются), например:

      $ sudo apt list --upgradable
Listing... Done
distro-info-data/jammy-updates,jammy-updates 0.52ubuntu0.2 all [upgradable from: 0.52ubuntu0.1]
gnome-shell-common/jammy-updates,jammy-updates 42.5-0ubuntu1 all [upgradable from: 42.4-0ubuntu0.22.04.1]
gnome-shell/jammy-updates 42.5-0ubuntu1 amd64 [upgradable from: 42.4-0ubuntu0.22.04.1]
grub-efi-amd64-bin/jammy-updates 2.06-2ubuntu10 amd64 [upgradable from: 2.06-2ubuntu7]
grub-efi-amd64-signed/jammy-updates 1.182~22.04.1+2.06-2ubuntu10 amd64 [upgradable from: 1.180+2.06-2ubuntu7]

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

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

Затем запустите apt updateи попробуй еще раз.

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

С Webmin вы можете:

Обновления пакетов

Затем нажмите рядом с этим.

Это приведет вас к:

Обновления пакетов программного обеспечения

Затем просто введите имя пакета:

Найдите подходящие пакеты

Тогда можно установить.

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

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

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

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

sudo kubuntu-driver-manager

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

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

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