Как правильно обновлять систему через терминал в 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 (на дистрибутиве с долгосрочной версией поддержки).

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

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

Вот и всё.

Поделиться:

Если у Вас возникли вопросы.

Приглашаю задавать их на сервисе вопросов и ответов: Ask LinuxRussia.com.
Там Ваши вопросы не потеряются и Вы быстрее получите ответ, в отличие от комментариев.

6 коммент. :

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

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

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

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

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

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

      Удалить