Ответы:
В двух словах, на 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
операции, вам будет предложено ввести пароль только один раз (или не запрашивать вообще).
apt-get update
, что интернет все еще примитивен.
Поиск 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&&sudo apt-get install foo bar baz
&&
означает, что вторая команда будет выполняться только в случае успеха первой. Если вас не волнует успех первой команды, используйте ;
вместо этого.
Запуск sudo apt-get update
просто гарантирует, что ваш список пакетов из всех репозиториев и PPA обновлен. Если вы не выполните эту команду, вы можете получить более старые версии различных устанавливаемых вами пакетов или, что еще хуже, проблемы с зависимостями. Если вы только что добавили PPA и не обновили его, ничто из PPA не будет работать вообще, поскольку у вас нет списка пакетов из этого PPA или репозитория.
В двух словах: настоятельно рекомендуется запускать sudo apt-get update
перед установкой, но он может быть пропущен, если вы действительно испытываете нехватку времени, если вы не меняли репозитории или PPA с момента последней apt-get update
.
Он обновляет список доступного программного обеспечения на вашем компьютере.
На вашем компьютере есть список (например, каталог), который содержит все доступное программное обеспечение, доступное на серверах Ubuntu. Но доступное программное обеспечение и версии могут измениться, поэтому «обновление» попадет на сервер и увидит, какое программное обеспечение доступно для обновления его локальных списков (или каталогов).
Обратите внимание, что update
отличается от upgrade
. Обновление, как упомянуто выше, будет загружать доступное программное обеспечение и обновлять списки, а upgrade
также устанавливать новые версии программного обеспечения, установленного на вашем компьютере (фактические обновления программного обеспечения).
Чтобы фактически обновить ваше программное обеспечение (не «обновлять» списки), вы выполняете команду
sudo apt-get upgrade
который обычно выполняется после «обновления».
sudo apt-get install
тогда? Установка конкретных пакетов вместо общего обновления?
Вам нужно запустить 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
перед каждым. Только если информация некоторое время не обновлялась, вы должны обязательно ее запустить.
Как упомянул Элиа Каган выше, можно ожидать, что приложение с графическим интерфейсом будет запускаться apt-get update
до apt-get install
/ apt-get upgrade
, но я только что обнаружил интересную ошибку 404 на относительно новой машине с наступательной безопасностью, которая поставила меня в тупик на минуту.
Из командной строки я запустил apt-get update
и снова попробовал команду «Системные инструменты / Обновление программного обеспечения», и на этот раз она работала без ошибок 404.
Итак, я думаю, вы не всегда можете предположить, что apt-get update
он запускается из приложений с графическим интерфейсом ...
apt-get
чем автоматическая проверка, выполняемая при запуске Software Updater / Update Manager? Вы используете HTTP прокси? И можете ли вы сделать это снова или это случилось один раз? Если это единичная аномалия, мне интересно, может быть, проблема связана с временной неправильной настройкой сервера. Какое зеркало вы используете? С большей информацией, возможно, я мог бы улучшить свой ответ. (Кстати, это предназначено как отдельный ответ, или это должно быть преобразовано в комментарий?)
Как говорили многие люди до меня, это обновляет ваш локальный репозиторий (список пакетов).
Вы можете столкнуться с проблемами, если попытаетесь установить
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
, поскольку у вас уже есть привилегии суперпользователя.
sudo apt-get update
команду всякий раз, когда мы устанавливаем пакеты? В чем недостаток, если мы этого не сделаем?