Что делает "sudo apt-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). Пакеты, установленные в настоящее время с доступными новыми версиями, извлекаются и обновляются; ни при каких обстоятельствах установленные в настоящее время пакеты не удаляются, а пакеты, которые еще не установлены, не извлекаются и не устанавливаются. Новые версии установленных в настоящее время пакетов, которые нельзя обновить без изменения состояния установки другого пакета, останутся в их текущей версии. [Выделение мое] Сначала необходимо выполнить обновление, чтобы apt-get знал, что доступны новые версии пакетов.apt-get dist-upgrade
будет делать ту же работу, которая выполняетсяapt-get upgrade
Кроме того, он также будет разумно обрабатывать зависимости, поэтому он может удалять устаревшие пакеты или добавлять новые. Смотрите здесь: Что такое "dist-upgrade" и почему он обновляется больше, чем "upgrade"?С 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
по сути состоит из трех частей:
sudo
выполняет следующую команду с правами суперпользователя (root). Многие действия, требующие изменения системных файлов или установки приложений, требуют дополнительных разрешений.
apt-get
это инструмент командной строки, который Ubuntu использует для установки, удаления и управления пакетами программного обеспечения
update
это опция для программы 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 или репозитория.
В двух словах: настоятельно рекомендуется запустить sudo apt-get update
перед установкой, но он может быть пропущен, если вам действительно не хватает времени, если вы не меняли репозитории или PPA с момента последней apt-get update
,
Он обновляет список доступного программного обеспечения на вашем компьютере.
На вашем компьютере есть список (например, каталог), который содержит все доступное программное обеспечение, доступное на серверах Ubuntu. Но доступное программное обеспечение и версии могут измениться, поэтому "обновление" попадет на сервер и увидит, какое программное обеспечение доступно для обновления его локальных списков (или каталогов).
Обратите внимание, что update
отличается от upgrade
, Обновление, как упоминалось выше, будет загружать доступное программное обеспечение и обновлять списки, пока upgrade
установит новые версии программного обеспечения, установленного на вашем компьютере (актуальные обновления программного обеспечения).
Чтобы фактически обновить ваше программное обеспечение (не "обновлять" списки), вы выполняете команду
sudo apt-get upgrade
который обычно выполняется после "обновления".
Вам нужно бежать apt-get update
один раз перед установкой новых пакетов, так как это обновляет информацию о локальном хранилище. Если вы собираетесь установить несколько пакетов вскоре после этого, вам не нужно запускать apt-get update
, Кроме того, вы можете установить несколько пакетов одновременно, если вы наберетеsudo apt-get install package1 package2...
При установке пакетов из командной строки с 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
/ apt-get upgrade
, но я только что обнаружил интересную ошибку 404 на относительно новой машине ВМ с защитой, которая поставила меня в тупик на минуту.
Из командной строки я побежал apt-get update
и затем снова попытался выполнить команду "Системные инструменты / Обновление программного обеспечения", и на этот раз она была выполнена без ошибок 404.
Итак, я думаю, вы не всегда можете предположить, что apt-get update
запускается из приложений с графическим интерфейсом...
Как говорили многие люди до меня, это обновляет ваш локальный репозиторий (список пакетов).
Вы можете столкнуться с проблемами, если попытаетесь установить
apt-get install foobar
и у foobar или зависимости нет их последней версии в репозитории. Это может быть особенно проблематично, если вы устанавливаете файл.deb вручную или ppa от третьего лица.
В основном это гарантирует, что ваш список соответствует основному списку.
Давайте рассмотрим пример установки VLC media player на Ubuntu:
sudo apt-get update
Он проверит репозитории на наличие доступных обновлений.
В то время как
sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc
установит VLC media player из репозиториев, которые мы искали.
Если вы вошли в систему как пользователь root (администратор), вам не нужно использовать sudo
потому что у вас уже есть привилегии суперпользователя.