Я понимаю apt
, что команда update
обновляет список доступных пакетов, но не обновляет программное обеспечение, которое уже было установлено из этих пакетов.
Я также понимаю, что upgrade
обновляет любое программное обеспечение, которое я уже установил, из пакета, который я обновил, update
как описано выше.
По какой причине разработчики Ubuntu / Debian делали это разделение update
и upgrade
вместо этого работали с одной командой для выполнения обеих задач?
Это больше вопрос архитектурной философии разработчиков Ubuntu.
alias
все равно. Способ Unix - это одна команда, которая в любом случае выполняет только одну задачу, поэтому разделение лучше подходит для способа Unix, если «теологические / философские» аргументы тоже вам подходят.apt dist-upgrade
и нажму «n» для отмены, то передумаю, я сохраню пропускную способность, потому что она не будет «обновляться» для повторного выполнения моейapt dist-upgrade
команды ... Даже если «dist-upgrade» выполнило обновление автоматически существуют причины для «обновления», которые не включают «установку», «обновление» или «dist-upgrade», поэтому команда «обновления» все равно будет существовать ..apt update
должно запускаться автоматически при необходимости.Ответы:
Обновление - не единственный раз, когда вам может понадобиться
apt-get update
, и я не хочу обновляться каждый раз, когда просто хочу обновить списки пакетов.apt-get upgrade
Работает хорошо , может зависеть отapt-get update
того бежать , не так давно, но это справедливоapt-get remove
иapt-get install
как хорошо! Должны ли все это подразумеватьapt-get update
? Конечно, нет! В качестве простого вопроса эффективности использования ресурсов и проектной чистоты, если операция является общей для множества других операций, она должна быть учтена.И наоборот, учитывая это
apt-get remove
иapt-get install
может также зависеть отapt-get update
того, был ли он недавно запущен для успешного завершения, имеет ли это смыслapt-get upgrade
для каждого прогонаapt-get update
? Нет, опять же, поскольку то, что я намерен сделать, вполне может противоречить тому, что яapt-get upgrade
буду делать.источник
Всякий раз, когда вы меняете источники программного обеспечения, вы должны выполнить команду
sudo apt update
, чтобы обновить список доступного программного обеспечения. Затем вы можете искать доступные пакеты в новом программном источнике, который вы только что добавили, и / или установить их.Эта команда
sudo apt upgrade
является терминальным эквивалентом обновления списка установленных пакетов с помощью приложения Software Updater. Это отличается от обычного рабочего процесса добавления нового источника программного обеспечения, обновления списка доступного программного обеспечения для включения пакетов из нового источника программного обеспечения и установки новых пакетов из нового источника программного обеспечения, который вы только что добавили, так что это более удобно и менее запутывают этоsudo apt update
иsudo apt upgrade
являются отдельными командами.Это также менее запутанно, чтобы отделиться
sudo apt update
иsudo apt upgrade
потому, что приsudo apt update
успешной работе вы подтвердили, что у вас есть подключение к Интернету. Если приsudo apt upgrade
последующем запуске возникает проблема, скорее всего, проблема связана с управлением пакетами, а не с подключением к Интернету, и результатыsudo apt upgrade
предоставят подсказки для диагностики и решения проблемы.источник
История разницы между
update
иupgrade
на самом деле довольно крутая.Давным-давно - скажем, около 2000 или около того, за годы до появления Ubuntu - пропускная способность и дисковое пространство были гораздо более ограниченными ... хотя и обширными по сравнению с серединой 1990-х годов. Широкополосная связь только начиналась, и коммутируемый доступ все еще был жизненно важным способом выхода в Интернет. Большие диски были всего лишь несколько сотен МБ. Апт был блестящим и новым, радикальным и революционным, построенным поверх dpkg.
Если подумать, база данных apt - это чудо: это точная база данных всего программного обеспечения из всех известных репозиториев. Он достаточно подробен, чтобы рассчитывать зависимости и определять доступные обновления, но достаточно мал, чтобы передавать по модемам модемного времени и хранить на небольших дисках времени. Обновление базы данных по телефону может занять несколько минут через хорошее соединение. Хотя это уже давно, поиск обновлений пакетов вручную (до apt) может занять несколько часов .
В то время дистрибутивы создавались по-разному - без непрерывной интеграции, без тестирования дыма (ну, совсем не много!), Сборочные фермы только начинали. Обновления приходилось отменять чаще, чем сейчас. Многие пользователи решили не обновлять определенные пакеты по разным причинам или выбирать только определенные обновления сегодня (для тестирования вручную), а другие обновления - завтра.
За последующие 15-или-около-лет, инструменты не изменились, поэтому мы до сих пор отдельные
update
иupgrade
действия. Рабочий процесс пользователя превратилась в дистрибутиве надежность улучшилась, и большая часть исходного / обновления / управления обновления , которые раньше руководство было медленно скрывается за слоями автоматизации (software-updater
,unattended-upgrades
).Модернизация инструментов программного пакета - одна из причин, по которой недавно появились Snaps, AppImage и Flatpack, но это следующая глава.
источник
Они делают разные вещи по многим причинам.
Одним из примеров является вопрос, который я разместил и ответил на него сам: как можно удалить PPA с помощью графического интерфейса? , На этом экране мы хотим удалить PPA, а не обновлять программное обеспечение:
После удаления PPA автоматически запускается программное обеспечение с графическим интерфейсом
sudo apt update
. Если вам нужно было удалить PPA из командной строки, вам нужно запуститьsudo apt update
после удаления PPA из списка источников.Без отдельной
apt update
функции невозможно удалить PPA !.Другой пример - вам нужно запустить
sudo apt update
из командной строки, чтобы обновить источники. Затем вы можете узнать, что можно обновить без фактического обновления:Глядя на вывод, вы можете решить, что данный пакет будет «закреплен» или «задержан» и не обновлен при следующем запуске «sudo apt upgrade». Если бы был один процесс «обновление / обновление», вы бы потеряли эту способность. ,
Без отдельной
apt update
вы не можете увидеть, что будет обновлено!источник
yum
иdnf
автоматически запускать эквивалент обновления при выполнении соответствующих операций. Например, эквивалентapt list --upgradable
isyum check-update
, который обновляет список пакетов, если он не был обновлен недавно. Это, безусловно, возможно для работы, как это видно из других менеджеров пакетов.sudo apt update
после удаления хранилища.yum
/dnf
снова, операция обновления выполняется автоматически, поэтому отключенный источник автоматически удаляется из следующей операции. Опять же, то, что вполне возможно.yum
иdnf
не установлены. Установка одного из них для заменыapt update
увеличит нагрузку на систему и время обучения.Можно спросить, зачем скачивать программу из официального репозитория Ubuntu, а
apt
затем устанавливать ее? Какая разница, если сначала загрузить, а затем установить, а не загружать и устанавливать за одну операцию?Хорошо прочитав комментарии и подумав об этом, я понимаю, что это связано с философией Unix , модульной философией, которая в основном гласит: «Каждая программа делает одно»: сначала загрузите, а затем установите - каждое действие со своей отдельной программой ,
источник
Ни в одном дистрибутиве не существует одной команды update-upgrade, если она есть, то это всего лишь предопределенные псевдонимы, как я полагаю. Эти псевдонимы также можно легко установить в Ubuntu, отредактировав ~ / .bashrc.
Обновление используется для повторной синхронизации репозиториев и устранения там любых проблем. Затем при обновлении вы фактически обновляете установленные пакеты. Но когда вы Dist-Upgrade, вы обновляетесь полностью. В Arch Linux они делают упор на полное обновление с помощью Syu. Вы можете сделать то же самое в Ubuntu. При полном обновлении вы фактически решаете любые проблемы с зависимостями, которые могут возникнуть при частичном обновлении.
Надеюсь, это поможет. Прошу прощения за необработанный текст, написанный на телефоне.
источник
yum
иdnf
автоматически делает эквивалент дляupdate
большинства операций, если кэшированные данные достаточно стары. См., Например, обсуждение по изменению этого поведения в dnf: lwn.net/Articles/750334