Что делает «apo-get update»?
Мне интересно, что делает sudo apt-get update
?
Что он обновляет?
9 ответов
Вкратце, apt-get update
фактически не устанавливает новые версии программного обеспечения. Вместо этого он обновляет списки пакетов для обновлений пакетов, нуждающихся в обновлении, а также новые пакеты, которые только что пришли в хранилища.
-
apt-get update
загружает списки пакетов из репозиториев и «обновляет» их, чтобы получать информацию о новейших версиях пакетов и их зависимостях. Он будет делать это для всех репозиториев и PPA. Из http://linux.die.net/man/8/apt-get:Используется для повторной синхронизации файлов индекса пакетов из их источников. Индексы доступных пакетов выбираются из местоположений, указанных в
/etc/apt/sources.list
(5). Обновление должно всегда выполняться перед обновлением или dist-upgrade. -
apt-get upgrade
будет извлекать новые версии пакетов, существующих на машине, если APT знает об этих новых версиях с помощьюapt-get update
.Из http://linux.die.net/man/8/apt-get :
Используется для установки новейших версий всех пакетов, установленных в настоящее время в системе, из источников, перечисленных в
/etc/apt/sources.list
(5). Пакеты, установленные в настоящее время с новыми версиями, извлекаются и обновляются; ни при каких обстоятельствах в настоящее время не установлены удаленные пакеты, а также пакеты, которые еще не установлены, извлечены и установлены. Новые версии установленных пакетов, которые не могут быть обновлены без изменения статуса установки другого пакета, будут оставлены в их текущей версии. [Emphasis mine] Сначала необходимо выполнить обновление, чтобы apt-get знал, что доступны новые версии пакетов. -
apt-get dist-upgrade
выполнит то же самое задание, которое выполняется с помощьюapt-get upgrade
, плюс он также будет разумно обрабатывать зависимости, поэтому он может удалить устаревшие пакеты или добавить новые. См. Здесь: Что такое «dist- обновление "и почему он обновляется больше, чем" обновление "?Из http://linux.die.net/man/8/apt-get :
В дополнение к выполнению функции обновления, этот параметр также разумно обрабатывает изменения зависимостей с новыми версиями пакетов; apt-get имеет «умную» систему разрешения конфликтов, и при необходимости будет пытаться обновить наиболее важные пакеты за счет менее важных. Файл
/etc/apt/sources.list
(5) содержит список местоположений из который извлекает нужные файлы пакетов. См. Также apt_preferences (5) для механизма переустановки общих настроек для отдельных пакетов.
Вы можете комбинировать команды с & &
следующим образом:
sudo apt-get update & & & & & sudo apt-get install foo bar baz foo-dev foo-dbg
или для получения новейших версий в соответствии с требованиями к версиям зависимостей:
sudo apt-get update & & & & & sudo apt-get dist-upgrade
Вам нужно sudo
оба раза, но поскольку sudo
по умолчанию не запрашивает вас в течение 5 или около того минут с момента последней операции sudo
, вам будет предложено ввести пароль только один раз (или вообще нет).
Поиск в Google может дать вам определение почти для любой команды терминала, а также --help в терминале. Например,
apt-get --help
sudo apt-get update
состоит из трех частей:
Судо
выполняет следующую команду с возможностями суперпользователя (root). Многие действия, требующие изменения системных файлов или установки приложений, требуют дополнительных разрешений.
APT-получить
- это инструмент командной строки, который Ubuntu использует для установки, удаления и управления пакетами программного обеспечения.
обновление
- это опция для программы apt-get, которая обновляет списки пакетов с сервера в Интернете. Списки пакетов предоставляют утилите apt-get важную информацию о пакетах программного обеспечения, которые вы можете установить с помощью apt-get. apt-get использует эти списки, чтобы определить, какое программное обеспечение необходимо установить, когда предоставляется команда для установки. Например
sudo apt-get install guake
установит терминал Guake, поскольку он в настоящее время указан в локальных списках программного обеспечения моего компьютера. Однако это не может быть подходящей версией, или если программа новая, она может быть недоступна вообще. Таким образом, при установке программного обеспечения с помощью apt-get вы обычно печатаете
sudo apt-get update
sudo apt-get install <package>
убедитесь, что apt-get знает, как установить самую последнюю версию пакета.
Другим полезным источником информации является сайт help.ubuntu.com
. Например, если вы искали этот сайт для apt-get
, вы найдете AptGet /Howto как один из результатов.
Запуск sudo apt-get update
просто гарантирует, что ваш список пакетов из всех хранилищ и PPA обновлен. Если вы не запустите эту команду, вы можете получать более старые версии различных пакетов, которые вы устанавливаете, или, что еще хуже, проблемы с зависимостями. Если вы только что добавили PPA и не обновились, ничто из PPA не будет работать вообще, поскольку у вас нет списка пакетов из этого PPA или репозитория.
В двух словах: high рекомендуется запускать sudo apt-get update
перед установкой, но он может быть пропущен, если вы действительно нажали на время , если вы не изменили репозитории или PPA с момента последнего обновления apt-get
.
Вам нужно запустить apt-get update
один раз перед установкой новых пакетов, поскольку это обновляет информацию локального репозитория. Если вы собираетесь установить несколько пакетов сразу после друг друга, вам не нужно запускать apt-get update
. Кроме того, вы можете установить сразу несколько пакетов, если вы введете
sudo apt-get install package1 package2 ...
Он обновляет список доступных программ на вашем компьютере.
На вашем компьютере есть список (например, каталог), содержащий все доступное программное обеспечение, доступное серверам Ubuntu. Но доступное программное обеспечение и версии могут измениться, поэтому «обновление» попадет на сервер и узнает, какое программное обеспечение доступно для обновления локальных списков (или каталогов).
Обратите внимание, что update
отличается от upgrade
. Обновление, как упоминалось выше, позволит получить доступное программное обеспечение и обновить списки, а upgrade
будет устанавливать новые версии программного обеспечения, установленные на вашем компьютере (фактические обновления программного обеспечения).
Чтобы на самом деле обновить программное обеспечение (а не «обновить» списки), вы выполняете команду
sudo apt-get upgrade
, который обычно выполняется после «обновления».
Когда вы устанавливаете пакеты из командной строки с помощью sudo apt-get install ...
(или sudo aptitude install ...
), или когда вы обновляете их из в командной строке (с upgrade
или dist-upgrade
вместо install
)), следующая информация получена из конфигурации вашей локальной системы и не из Интернета:
-
какие пакеты доступны
-
какие версии их доступны
-
, где доступные пакеты должны быть получены из
Запуск sudo apt-get update
(или sudo aptitude update
) обновляет это в вашей локальной системе. Это шаг, который фактически извлекает информацию о том, какие пакеты могут быть установлены, , включая обновления обновлений пакетов, установленных в настоящее время , из интернет-источников.
Когда вы устанавливаете пакеты с интерфейсом графического интерфейса (диспетчер обновлений, программный центр или диспетчер пакетов Synaptic), работа sudo apt-get update
выполняется автоматически. Когда вы устанавливаете пакеты из командной строки, это не так, и вы всегда должны делать это самостоятельно , если вы не сделали это совсем недавно .
Поскольку информация о доступных версиях пакетов доступна, запустив sudo apt-get update
(или sudo aptitude update
), рекомендуется запустить это раньше установка любого пакета и необходимость его запуска для установки последних обновлений , даже если вы не добавили или не удалили какие-либо источники ПО (например, PPA) .
Обратите внимание, что если вы собираетесь выполнять несколько операций управления пакетами в одно и то же время, вам не нужно запускать sudo apt-get update
перед каждым. Только если информация не была обновлена какое-то время, вы должны убедиться, что ее запустили.
Как упоминалось выше Элиадж Каган, вы бы ожидали , что приложение GUI будет запускать apt-get update
до apt-get install
/< code> apt-get upgrade, но я только что обнаружил интересную ошибку 404 на относительно новой машине VM с атакой, которая заставила меня замолчать минуту.
В командной строке я запустил apt-get update
, а затем снова попробовал команду System Tools /Software-Update, и на этот раз он выполнялся без ошибок 404.
Итак, я думаю, вы не всегда можете предположить, что apt-get update
запускается из приложений GUI ...
Как говорит множество людей, передо мной это обновляет ваш локальный репозиторий (список пакетов).
У вас могут возникнуть проблемы, если вы попытаетесь установить
apt-get install foobar
и foobar или зависимость не имеют своей последней версии в репозитории. Это может быть особенно проблематично при установке файла .deb вручную или ppa от стороннего участника.
В основном это гарантирует, что ваш список соответствует списку master .
Рассмотрим пример установки медиаплеер VLC на Ubuntu:
sudo apt-get update
Он проверит репозитории доступных обновлений.
В то время как
sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc
установит медиаплеер VLC из репозиториев, которые мы искали.
Если вы вошли в систему как пользователь root (администратор), вам не нужно использовать sudo
, потому что у вас уже есть привилегии суперпользователя.