apt-get autoremove хочет удалить 1000+ пакетов и все такое

apt-get autoremove хочет удалить 1000+ пакетов и все такое

В нем перечислено 1546 пакетов для удаления. Включая xorg, xserverи другие основные пакеты. Я ввел "да" в прошлом, и, как и ожидалось, это привело к поломке ОС, мне пришлось переустанавливать ее с нуля. На этот раз я ответил "нет" и попробовал:

sudo apt-get -y update --fix-missing

но он все равно хочет удалить все. Как мне это исправить, пожалуйста!

решение1

Чаще всего это происходит, когда люди прикручивают Desktop к Minimal установке. Но это может произойти, когда вы прикручиваете ЛЮБОЙ основной стек к системе Ubuntu.

В примере с рабочим столом это означает, что весь стек рабочего стола висит на одном метапакете (например, пакете ubuntu-desktop). Когда вы удаляете какой-либо элемент или приложение рабочего стола --что удаляет метапакет рабочего стола -- это действие делает весь стек рабочего стола пригодным для автоматического удаления.

Профилактика

  • При использовании настоящего установщика рабочего стола есть дополнительный уровень защиты от маркировки apt, который не позволяет пользователям автоматически удалить весь свой рабочий стол.

  • Вы также можете явно установить (или пометить apt-mark) используемые вами приложения. Таким образом, большинство зависимостей вашего рабочего стола не будут автоматически удалены.

    sudo apt install shotwell         # Example of explicitly installing
    sudo apt-mark manual shotwell     # Example of apt-marking
    
  • установка с использованием пакетов задач, например, Ubuntu MATE можно установить с помощью

    sudo apt-get install ubuntu-mate-desktop^
    

    Обратите внимание^, это означает задачу; установка таким способом предотвратит разрушение системы, если кто-то захочет выполнить потенциально опасные команды, такие как sudo apt autopurge ubuntu-mate-desktopmeta-package.

Восстановление

  • Вы можете просто переустановить пакет задач рабочего стола.

    sudo apt install --reinstall ubuntu-desktop^ # Example of re-installing a Ubuntu desktop task
    
  • Вы также можете скопировать длинный список удалений и вставить этот список в команду установки. Обратите внимание, чтоименованиепакет делает его неподходящим для будущих автоудалений, но вас беспокоит слишком много автоудалений, а не слишком мало. Если вам нужно восстановить этот список, он в вашем /var/log/apt/history.logфайле.

решение2

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

  • используйте dpkg -l | grep $shortpackagenameдля проверки, установлена ​​ли более новая версия, в этом случае можно удалить старую версию
  • используйте apt rdepends $packagename, чтобы увидеть, есть ли родительский пакет, который вам также нужен. Если есть, установите этот родительский пакет или обратную зависимость этого родительского пакета
  • Если нет (очевидного) родительского зависимого пакета, который вы хотите сохранить, но вы все равно хотите его сохранить, apt install $packagenameчтобы он не был удален функцией autoremove.

Хороший пример вышесказанного (как упоминалось в комментариях): если autoremove хочет удалить, xorgто установите его ubuntu-desktop, и вы, вероятно, обнаружите, что у многих autoremove теперь будет установлена ​​родительская зависимость, и список станет короче.

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

Такая ситуация не является нормальной и не возникает автоматически. Она вызвана тем, что в какой-то момент из системы удаляется что-то критическое, что приводит к удалению важного родительского пакета (например, ubuntu-desktop).

Связанный контент