Что делает «sudo apt-get update»?

416

Мне интересно, что делает sudo apt-get update ?

Что он обновляет?

    
задан Elysium 27.11.2012 в 01:07
источник

9 ответов

447

В двух словах apt-get update фактически не устанавливает новые версии программного обеспечения. Вместо этого он обновляет списки пакетов для обновлений пакетов, нуждающихся в обновлении, а также новые пакеты, которые только что пришли в хранилища.

  • apt-get update загружает списки пакетов из репозиториев и «обновляет» их, чтобы получить информацию о новейших версиях пакетов и их зависимостях. Он будет делать это для всех репозиториев и PPA. Из Ссылка :

      

    Используется для повторной синхронизации файлов индекса пакетов из их источников. Индексы доступных пакетов выбираются из местоположения (ов), указанного в /etc/apt/sources.list (5). Обновление должно всегда выполняться перед обновлением или dist-upgrade.

  • apt-get upgrade будет получать новые версии пакетов, существующих на машине, если APT знает об этих новых версиях с помощью apt-get update .

    От Ссылка :

      

    Используется для установки новейших версий всех пакетов, установленных в настоящее время в системе, из источников, перечисленных в /etc/apt/sources.list (5). Пакеты, установленные в настоящее время с новыми версиями, извлекаются и обновляются; ни при каких обстоятельствах в настоящее время не установлены удаленные пакеты, а также пакеты, которые еще не установлены, извлечены и установлены. Новые версии установленных пакетов, которые не могут быть обновлены без изменения статуса установки другого пакета, будут оставлены в их текущей версии. [Emphasis mine] Сначала необходимо выполнить обновление, чтобы apt-get знал, что доступны новые версии пакетов.

  • apt-get dist-upgrade выполнит ту же работу, что и apt-get upgrade , а также будет разумно обрабатывать зависимости, поэтому она может удалить устаревшие пакеты или добавить новые. См. Здесь: Что такое «dist- обновление "и почему он обновляется больше, чем" обновление "?

    От Ссылка :

      

    В дополнение к выполнению функции обновления, этот параметр также разумно обрабатывает изменения зависимостей с новыми версиями пакетов; 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 , вам будет предложено ввести пароль только один раз (или вообще нет) ).     

ответ дан hexafraction 27.11.2012 в 01:17
источник
42

Поиск в 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 в качестве одного из результатов.     

ответ дан Alex 27.11.2012 в 01:16
источник
17

Запуск sudo apt-get update просто гарантирует, что ваш список пакетов из всех репозиториев и PPA обновлен. Если вы не запустите эту команду, вы можете получать более старые версии различных пакетов, которые вы устанавливаете, или, что еще хуже, проблемы с зависимостями. Если вы только что добавили PPA и не обновились, ничто из PPA не будет работать вообще, поскольку у вас нет списка пакетов из этого PPA или репозитория.

Вкратце: high рекомендуется запускать sudo apt-get update перед установкой, но он может быть пропущен, если вы действительно нажали на время , если вы не изменили хранилища или PPA с момента последнего apt-get update .

    
ответ дан hexafraction 06.06.2012 в 01:21
источник
12

Вам нужно запустить apt-get update один раз перед установкой новых пакетов, поскольку это обновляет информацию локального репозитория. Если вы собираетесь установить несколько пакетов сразу после друг друга, вам не нужно запускать apt-get update . Кроме того, вы можете установить сразу несколько пакетов, если вы введете % Co_de%     

ответ дан Jason Petrilla 06.06.2012 в 01:23
источник
10

Он обновляет список доступных программ на вашем компьютере.

На вашем компьютере есть список (например, каталог), содержащий все доступное программное обеспечение, доступное серверам Ubuntu. Но доступное программное обеспечение и версии могут измениться, поэтому «обновление» попадет на сервер и узнает, какое программное обеспечение доступно для обновления локальных списков (или каталогов).

Обратите внимание, что update отличается от upgrade . Обновление, как упоминалось выше, позволит получить доступное программное обеспечение и обновить списки, в то время как upgrade установит новые версии программного обеспечения, установленные на вашем компьютере (фактические обновления программного обеспечения).

Чтобы на самом деле обновить программное обеспечение (а не «обновить» списки), вы выполняете команду

sudo apt-get upgrade

, который обычно выполняется после «обновления».

    
ответ дан Sam 27.11.2012 в 01:21
источник
4

Когда вы устанавливаете пакеты из командной строки с sudo apt-get install ... (или sudo aptitude install ... ) или когда вы обновляете их из командной строки ( upgrade или dist-upgrade вместо install ), следующая информация получен из конфигурации вашей локальной системы и not из Интернета:

  1. какие пакеты доступны

  2. какие версии их доступны

  3. , где доступные пакеты должны быть получены из

Запуск sudo apt-get update (или sudo aptitude update ) обновляет это в вашей локальной системе. Это шаг, который фактически извлекает информацию о том, какие пакеты могут быть установлены, , включая обновления обновлений пакетов, установленных в настоящее время , из интернет-источников.

При установке пакетов с интерфейсом графического интерфейса (диспетчер обновлений, Центр программного обеспечения или диспетчер пакетов Synaptic) работа sudo apt-get update выполняется автоматически. Когда вы устанавливаете пакеты из командной строки, это не так, и вы всегда должны делать это самостоятельно , если вы не сделали это совсем недавно .

Поскольку информация о доступных версиях пакетов доступна, запустив sudo apt-get update (или sudo aptitude update ), рекомендуется запустить это перед установкой любого пакета и выполнить его для установки последних обновлений, < em> даже если вы не добавили или не удалили какие-либо источники ПО (например, PPA) .

Обратите внимание, что если вы собираетесь выполнять несколько операций управления пакетами в одно и то же время, вам не нужно запускать sudo apt-get update перед каждым. Только если информация не была обновлена ​​какое-то время, вы должны убедиться, что ее запустили.

    
ответ дан Eliah Kagan 06.06.2012 в 01:59
источник
4

Как упоминалось выше Элиа Каган, вы бы ожидали , что приложение GUI будет запускать apt-get update до apt-get install / apt-get upgrade , но я только что обнаружил интересную ошибку 404 на относительно новом машина с наступательной безопасностью, которая заставила меня замолчать минуту.

Из командной строки я запустил apt-get update , а затем снова попробовал команду System Tools / Software-Update, и на этот раз он выполнялся без ошибок 404.

Итак, я думаю, вы не всегда можете предположить, что apt-get update запускается из приложений GUI ...

    
ответ дан mikepratt 02.04.2015 в 04:58
источник
2

Как говорит множество людей, передо мной это обновляет ваш локальный репозиторий (список пакетов).

У вас могут возникнуть проблемы, если вы попытаетесь установить

apt-get install foobar

и foobar или зависимость не имеют своей последней версии в репозитории. Это может быть особенно проблематично при установке файла .deb вручную или ppa от стороннего участника.

В основном это гарантирует, что ваш список соответствует списку master .

    
ответ дан Nate Iverson 06.06.2012 в 01:38
источник
2

Давайте рассмотрим пример установки медиаплеер VLC на Ubuntu:

sudo apt-get update

Он проверит репозитории доступных обновлений.

В то время как

sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc

установит медиаплеер VLC из репозиториев, которые мы искали.

Если вы вошли в систему как пользователь root (администратор), вам не нужно использовать sudo , потому что у вас уже есть привилегии суперпользователя.

    
ответ дан Praveen Vinny 27.11.2012 в 08:24
источник

Ознакомьтесь с другими вопросами по меткам