Я понимаю, что в apt команда update обновляет список доступных пакетов, но не обновляет программное обеспечение, которое уже было установлено из этих пакетов.
Я также понимаю, что upgrade обновляет любое программное обеспечение, которое я уже установил из пакета, который я обновил с помощью update, как описано выше.
В чем причина того, что разработчики Ubuntu / Debian сделали это расщепление update и upgrade вместо этого работают с одной командой для выполнения обеих задач?
Это больше вопрос об архитектурной философии разработчиков Ubuntu.
В отсутствии дистрибутива есть одна команда обновления обновления, если она есть, это не что иное, как предопределенные псевдонимы, насколько я предполагаю. Эти псевдонимы можно легко установить на Ubuntu, отредактировав ~ / .bashrc.
Обновление используется для ресинхронизации хранилищ и устранения любых проблем. Затем, когда вы обновляете, вы фактически угадываете свои установленные пакеты. Но когда вы Dist-Upgrade, вы полностью обновляетесь. В Arch linux они подчеркивают полное обновление с помощью Syu. Вы можете сделать то же самое в Ubuntu. При полном обновлении вы фактически решаете любую систему проблем с зависимостями, которая может возникнуть при частичном обновлении.
Надеюсь, что это поможет. Извините, что текст был напечатан на телефоне.
Всякий раз, когда вы меняете источники программного обеспечения, вы должны запустить команду 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 предоставят ключи для диагностики и решения проблемы.
Обновление не является единственным моментом, когда вам может понадобиться 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 будет делать.
История разницы между update и upgrade на самом деле довольно крутая.
Давно, давно - примерно 2000 или около того, за несколько лет до того, как существовал Ubuntu - полоса пропускания и диск пространство было гораздо более ограниченным ... хотя и обширным по сравнению с серединой 1990-х годов. Широкополосная связь только начинала, и dialup все еще был жизненно важным способом онлайн. Большим дискам все еще было всего несколько сотен МБ. Апт был блестящим и новым, радикальным и революционным, построенным на основе dpkg.
Пригодная база данных, когда вы думаете об этом, - это чудо: это точная в настоящее время база данных всего программного обеспечения из всех известных репозиториев. Он достаточно подробен для apt для расчета зависимостей и определения доступных обновлений, но достаточно мал для передачи по модемам удаленного доступа времени и для хранения на небольших дисках времени. Обновление вашей базы данных по телефону может занять несколько минут после хорошего соединения. Хотя это долгое время, поиск обновлений пакетов вручную (до apt) может потреблять часы.
В то время дистрибутивы были построены по-разному - нет непрерывной интеграции, без тестирования дыма (ну, не очень много тестирования вообще !), строить фермы только начали. Модификации должны были быть возвращены чаще, чем сейчас. Многие пользователи выбрали все обновления определенных пакетов по различным причинам или для выбора только определенных обновлений сегодня (для проверки вручную) и других обновлений завтра.
В течение последующих 15 или - В течение многих лет инструменты не сильно изменились, поэтому у нас все еще есть отдельные действия update и upgrade. [D4] все эволюционировали по мере того, как надежность дистрибутива улучшилась, и большая часть управления источником / обновлением / обновлением, которая использовалась вручную, была медленно скрыта за слоями автоматизации (software-updater, unattended-upgrades).
Модернизация программных пакетов - одна из причин, по которой недавно появились Snaps и AppImage и Flatpack, но это следующая глава.
Можно спросить, зачем загружать программу из официального репозитория Ubuntu с помощью apt, затем установить его? Какая разница, если вы сначала загрузите его, а затем установите, а не загружаете и устанавливаете в одной операции?
Ну, после прочтения комментариев и размышлений об этом я понимаю, что это связано с философией Unix , модульная философия, в которой в основном говорится: «Каждая программа делает одну вещь»: сначала загрузите, затем установите --- каждое действие со своей выделенной программой.
Один из примеров - это вопрос, который я опубликовал и ответил сам: как можно удалить PPA с помощью GUI ?. На этом экране мы хотим удалить PPA, не обновляя программное обеспечение:
Как можно удалить PPA с помощью GUI?
После удаления PPA программное обеспечение GUI автоматически работает sudo apt update. Если вы должны удалить PPA из командной строки, вам нужно запустить sudo apt update удалить PPA , удалив PPA из списка источников.
Еще один пример: вам нужно запустить sudo apt update из командной строки для обновления источников. Затем вы можете узнать, что можно обновить без фактической модернизации:
$ apt list --upgradable
Listing... Done
conky-std/xenial 1.10.1-3 amd64 [upgradable from: 1.9.0-4]
google-chrome-stable/stable 65.0.3325.181-1 amd64 [upgradable from: 63.0.3239.132-1]
libxnvctrl0/xenial 390.48-0ubuntu0~gpu16.04.1 amd64 [upgradable from: 387.22-0ubuntu0~gpu16.04.1]
nvidia-settings/xenial 390.48-0ubuntu0~gpu16.04.1 amd64 [upgradable from: 387.22-0ubuntu0~gpu16.04.1]
peek/xenial 1.3.1-0~ppa23~ubuntu16.04.1 amd64 [upgradable from: 1.2.1-0~ppa20~ubuntu16.04.1]
Глядя на вывод, вы можете решить, что данный пакет «закреплен» или «сдержан», а не обновлен в следующий раз, sudo apt upgrade ". Если бы было одно« обновление / обновление », вы потеряли бы эти возможности.
В отсутствии дистрибутива есть одна команда обновления обновления, если она есть, это не что иное, как предопределенные псевдонимы, насколько я предполагаю. Эти псевдонимы можно легко установить на Ubuntu, отредактировав ~ / .bashrc.
Обновление используется для ресинхронизации хранилищ и устранения любых проблем. Затем, когда вы обновляете, вы фактически угадываете свои установленные пакеты. Но когда вы Dist-Upgrade, вы полностью обновляетесь. В Arch linux они подчеркивают полное обновление с помощью Syu. Вы можете сделать то же самое в Ubuntu. При полном обновлении вы фактически решаете любую систему проблем с зависимостями, которая может возникнуть при частичном обновлении.
Надеюсь, что это поможет. Извините, что текст был напечатан на телефоне.
Всякий раз, когда вы меняете источники программного обеспечения, вы должны запустить команду 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 предоставят ключи для диагностики и решения проблемы.
Обновление не является единственным моментом, когда вам может понадобиться 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 будет делать.
История разницы между update и upgrade на самом деле довольно крутая.
Давно, давно - примерно 2000 или около того, за несколько лет до существования Ubuntu - полоса пропускания и диск пространство было гораздо более ограниченным ... хотя и обширным по сравнению с серединой 1990-х годов. Широкополосная связь только начинала, и dialup все еще был жизненно важным способом онлайн. Большим дискам все еще было всего несколько сотен МБ. Апт был блестящим и новым, радикальным и революционным, построенным на основе dpkg.
Пригодная база данных, когда вы думаете об этом, - это чудо: это точная в настоящее время база данных всего программного обеспечения из всех известных репозиториев. Он достаточно подробен для apt для расчета зависимостей и определения доступных обновлений, но достаточно мал для передачи по модемам удаленного доступа времени и для хранения на небольших дисках времени. Обновление вашей базы данных по телефону может занять несколько минут после хорошего соединения. Хотя это долгое время, поиск обновлений пакетов вручную (до apt) может потреблять часы.
В то время дистрибутивы были построены по-разному - нет непрерывной интеграции, без тестирования дыма (ну, не очень много тестирования вообще !), строить фермы только начали. Модификации должны были быть возвращены чаще, чем сейчас. Многие пользователи выбрали все обновления определенных пакетов по различным причинам или для выбора только определенных обновлений сегодня (для проверки вручную) и других обновлений завтра.
В течение последующих 15 или - В течение многих лет инструменты не сильно изменились, поэтому у нас все еще есть отдельные действия update и upgrade. [D4] все эволюционировали по мере того, как надежность дистрибутива улучшилась, и большая часть управления источником / обновлением / обновлением, которая использовалась вручную, была медленно скрыта за слоями автоматизации (software-updater, unattended-upgrades).
Модернизация программных пакетов - одна из причин, по которой недавно появились Snaps и AppImage и Flatpack, но это следующая глава.
Можно спросить, зачем загружать программу из официального репозитория Ubuntu с помощью apt, затем установить его? Какая разница, если вы сначала загрузите его, а затем установите, а не загружаете и устанавливаете в одной операции?
Ну, после прочтения комментариев и размышлений об этом я понимаю, что это связано с философией Unix , модульная философия, в которой в основном говорится: «Каждая программа делает одну вещь»: сначала загрузите, затем установите --- каждое действие со своей выделенной программой.
Один из примеров - это вопрос, который я опубликовал и ответил сам: как можно удалить PPA с помощью GUI ?. На этом экране мы хотим удалить PPA, не обновляя программное обеспечение:
Как можно удалить PPA с помощью GUI?
После удаления PPA программное обеспечение GUI автоматически работает sudo apt update. Если вы должны удалить PPA из командной строки, вам нужно запустить sudo apt update удалить PPA , удалив PPA из списка источников.
Еще один пример: вам нужно запустить sudo apt update из командной строки для обновления источников. Затем вы можете узнать, что можно обновить без фактической модернизации:
$ apt list --upgradable
Listing... Done
conky-std/xenial 1.10.1-3 amd64 [upgradable from: 1.9.0-4]
google-chrome-stable/stable 65.0.3325.181-1 amd64 [upgradable from: 63.0.3239.132-1]
libxnvctrl0/xenial 390.48-0ubuntu0~gpu16.04.1 amd64 [upgradable from: 387.22-0ubuntu0~gpu16.04.1]
nvidia-settings/xenial 390.48-0ubuntu0~gpu16.04.1 amd64 [upgradable from: 387.22-0ubuntu0~gpu16.04.1]
peek/xenial 1.3.1-0~ppa23~ubuntu16.04.1 amd64 [upgradable from: 1.2.1-0~ppa20~ubuntu16.04.1]
Глядя на вывод, вы можете решить, что данный пакет «закреплен» или «сдержан», а не обновлен в следующий раз, sudo apt upgrade ". Если бы было одно« обновление / обновление », вы потеряли бы эти возможности.