Как правильно обновлять систему через терминал в Ubuntu подобных системах.

Данная статья короткая и в ней расскажу, чем отличается команда apt-get upgrade от apt-get dist-upgrade.

А также расскажу, почему лучше использовать команду apt-get dist-upgrade.

dist-upgrade vs upgrade

Исчерпывающие ответы можно получить из документации Debian:

Также можно обратиться к мануалу в системе (если знаете английский язык):

man apt-get dist-upgrade

Если по-русски, то вот описание команд из мануала:

upgrade
upgrade используется для установки новейших версий всех установленных пакетов системы из источников, указанных в /etc/apt/sources.list. Будут разысканы новейшие версии установленных в настоящий момент пакетов и произведено обновление; ни в коем случае не будет удалено ни одного установленного пакета или установлено нового пакета, не имеющего уже установленной в системе предыдущей версии. Текущие версии установленных в настоящий момент пакетов, если они не могут быть обновлены новыми версиями без изменения статуса других пакетов, будут оставлены в неизменном виде. Для того, чтобы apt-get узнал о существовании доступных новых версиях пакетов, данной команде должна предшествовать команда update.

dist-upgrade
dist-upgrade, в дополнение выполняет функцию upgrade, а также разумно управляет изменением зависимостей с новыми версиями пакетов; apt-get имеет «умную» систему разрешения конфликтов и она будет в случае необходимости пытаться произвести обновление наиболее важных пакетов за счет менее важных. Файл /etc/apt/sources.list содержит список источников для получения пакетов, из которых будут получены файлы пакетов.

Таким образом, когда вы обновляете систему с помощью команды:

sudo apt-get upgrade

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

Команда же:

sudo apt-get dist-upgrade

удалит старые пакеты, разрешит конфликты, доставит необходимые зависимости, доставит новые пакеты, если требуется. Более умный и гибкий инструмент обновления системы.

Именно поэтому, я советую пользоваться dist-upgrade для обновления системы, а про upgrade вообще забыть.

И да команда:

sudo apt-get dist-upgrade

не обновляет версию дистрибутива Ubuntu,
для обновления дистрибутива до следующей версии есть другая отдельная команда:

do-release-upgrade

Перед выполнением которой нужно очень долго подумать, прежде чем применять на LTS версии  Ubuntu (на дистрибутиве с долгосрочной версией поддержки).

Кроме того, стоит упомянуть, что можно заблокировать обновление каких-либо пакетов:

Ни одна из этих двух команд не будет их обновлять после данных манипуляций.

Вот и всё.

  • https://www.blogger.com/profile/01138329259838833556 Сергей Совков

    Попробую спасибо, всегда пользовался sudo apt-get upgrade вариантом =)

  • https://www.blogger.com/profile/10315335844059931614 Александр Чирков

    Спасибо! Познавательно и полезно. Беру к использованию.

  • https://www.blogger.com/profile/12644567413012194455 Sergey Sedov

    Спасибо, узнал для себя что-то новое.

  • https://www.blogger.com/profile/01820092315809479371 Anton Serov

    и upgrade, и dist-upgrade все равно предлагают обновить заблокированный в synaptic пакет

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

      лучше блокировать через
      sudo apt-mark hold package_name
      http://www.linuxrussia.com/2013/10/ubuntu-hold-package.html

    • https://www.blogger.com/profile/01820092315809479371 Anton Serov

      Я уже понял, что блокировать надо стандартным средством — через apt .
      Просто указал на неточность статьи относительно равнозначности 4-х методов бокировки.