Продолжаем разбираться с консольными командами. На очереди команды для обновления дистрибутивов на базе Debian/Ubuntu. В чём разница между apt update и apt upgrade?
В чём разница между командами apt update и apt upgrade?
Для обновления систем на базе Debian и Ubuntu используют комбинацию команд sudo apt update и sudo apt upgrade. Вроде бы похожие команды с, казалось бы, совсем незначительными отличиями. В русском языке разница между апдейтом и апгрейдом и вовсе почти неуловима.
Отличия apt update и apt upgrade
Итак, вы перешли на Linux и начали учить полезные команды. Опыт подсказывает, что команда apt update должна обновлять систему, но на деле всё немного иначе: команда apt update обновляет информацию об актуальных версиях доступных пакетов, а не сами пакеты. А вот команда apt upgrade в свою очередь обновляет именно пакеты.
Пока непонятно? Тогда вам стоит поподробнее узнать о системе управления пакетами в Linux.
Когда вы проверяете обновления, система сверяется со списком доступных в репозитории пакетов, но это лишь метаданные: версии, информация о зависимостях и т. д. Если вы редко обновляете этот список доступных пакетов, система не будет знать о том, что некоторые её компоненты можно обновить. И команда apt update (и похожая на неё apt-get update) отвечают как раз за обновление списков доступных пакетов.
После проверки сведений об актуальных версиях пакетов система сверит их с уже установленными, а уже потом предложит установить найденные обновления. Для этого и нужна команда apt upgrade.
То есть сперва вы вводите команду apt update, чтобы обновить список доступного ПО, а затем команду apt upgrade, чтобы установить найденные обновления. После этого вам покажут список пакетов, которые будут обновлены и предложат нажать клавишу Y, чтобы установить обновления (или клавишу N, чтобы отменить обновление).
Другими словами:
- apt update обновляет список доступных пакетов
- apt upgrade обновляет уже установленные пакеты
Поскольку обновление – сложный процесс, для выполнения обеих команд вам понадобятся права root, а следовательно перед самой командой нужно добавить sudo.
Ну а теперь, когда вы хотя бы немного разобрались в отличиях apt update и apt upgade, поговорим об отличиях apt и apt-get.
Что лучше: apt или apt-get?
Для управления пакетами в системах на базе Debian и Ubuntu используется пакетный менеджер APT (не путайте с командой apt). Существует несколько команд для взаимодействия с пакетным менеджером: apt-get, apt, dpkg, aptitude и т. д. И команда apt-get долгое время была самой популярной из всех, но затем ей на смену пришла более простая команда apt.
Если хотите поглубже разобраться в теме, вам сюда. Мы же сосредоточимся на отличиях, связанных с обновлениями.
apt update или apt-get update?
Обе команды выполняют одну и ту же задачу: обновляют сведения о доступных пакетах, чтобы система знала, какие из них можно обновить. И чисто технически никакой разницы между ними нет. Тем не менее, есть штуки, с которыми команда apt update справляется куда лучше, чем apt-get update (например, сообщает точное количество пакетов, которые можно будет обновить).
Hit:15 https://ppa.launchpadcontent.net/slimbook/slimbook/ubuntu jammy InRelease
Fetched 213 kB in 4s (55.8 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
6 packages can be upgraded. Run 'apt list --upgradable' to see them.
А вот команда apt-get update даже о том, что в системе вообще есть пакеты, которые нуждаются в обновлении, не сообщит.
abhishek@itsfoss:~$ apt list --upgradable
Listing... Done
fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1]
gnome-control-center-data/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1]
gnome-control-center-faces/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1]
gnome-control-center/jammy-updates 1:41.7-0ubuntu0.22.04.4 amd64 [upgradable from: 1:41.7-0ubuntu0.22.04.1]
libpam-fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1]
vivaldi-stable/stable 5.4.2753.40-1 amd64 [upgradable from: 5.4.2753.37-1]
apt upgrade или apt-get upgrade?
Обе команды отвечают за установку актуальных версий вашего ПО, но работают они слегка по-разному. И основное их отличие заключается в том, что командой apt upgrade можно обновить ядро Linux, а командой apt-get upgrade нельзя. Если хотите обновить ядро с помощью команды apt-get, придётся использовать команду apt-get dist-upgrade.
Дело в том, что обновление ядра на деле представляет собой установку нового пакета, а команда apt-get upgrade новые пакеты устанавливать не может, она может лишь обновлять уже установленные.
А ещё при выполнении команды apt-get upgrade не появляется индикатор в нижней части терминала.
Подытожим?
Слова «апдейт» и «апгрейд» похожи. И то, и другое означают обновление, и многие пользователи поначалу путают с виду похожие команды. Лично мне кажется, что было бы логично, если бы обе команды объединили в одну. Никто ведь не станет использовать их по отдельности: сперва вы обновляете список доступного ПО, а затем обновляете сами пакеты. Зачем нам сразу две команды, которые мы всё равно будем запускать только вместе?
Надеюсь, стало хотя бы немного проще, но если остались какие-то вопросы, дайте знать. В комментариях наверняка найдутся знатоки, которые смогут вам помочь.
Абхишек Пракаш,
It’s FOSS
11 января 2023