Обязательно ли sudo apt-get update перед каждой установкой пакета?


21

Я знаю, какова цель команды update, и мне было просто интересно, должен ли я использовать ее перед любой установкой пакета, которую я выполняю. Что делать, если я не обновлялся слишком долго и устанавливал некоторые критические пакеты? Кроме того, есть ли случай, когда нет необходимости делать это?

Ответы:


20

Ваша копия Ubuntu имеет личную копию списка пакетов, которые есть в репозиториях Ubuntu. При установке пакета apt-getчитает список и определяет URL-адрес загружаемого пакета (который обычно содержит информацию о версии пакета).

apt-get updateобновляет списки пакетов. Если вы не сделаете это перед установкой, вы apt-getможете жаловаться, что он не может найти пакет в репозитории, потому что он вычислил URL-адрес на основе старой версии списка (в котором была указана более старая версия пакета).

Конечно, apt-get updateэто необходимо после того, как вы изменили репозитории, потому что система должна загрузить список новых репозиториев.

Это важно перед обновлением установленных пакетов, потому что система не может знать, есть ли в репозитории новая версия пакета, если у него нет последней копии списка пакетов.

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

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


«Списки пакетов обновлены (что происходит через достаточно короткий промежуток времени после последнего обновления apt-get» - как мало времени? Как часто меняются списки пакетов? Что может изменить списки пакетов?
joshreesjones

@ mathguy54 ответ обновлен. На практике я запускаю apt-get update всякий раз, когда я получаю 404 ошибки («файл не найден») при загрузке пакетов.
ignis

«У Ubuntu есть личная копия списка пакетов, которые есть в репозиториях Ubuntu» - где этот список? Я хотел бы прочитать это. Спасибо за отличную информацию.
joshreesjones

@ mathguy54 Вы можете прочитать файлы, оканчивающиеся на *_Packagesниже, /var/lib/apt/lists/с помощью текстового редактора, однако обычно с помощью инструментов управления пакетами выполняется более сложный поиск, напримерapt-cache show/policy/etc.
ignis

3

Вам не Absolutly нужно использовать команду обновления перед установкой пакета, но если вы этого не сделаете вы , возможно , в конечном итоге модернизировать пакет только после того, как вы установили его.

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


3

Если вы только что добавили программный репозиторий (PPA или Debian), вам нужно будет запустить apt-get updateопрос опроса и, по существу, добавить любые пакеты в нем в список доступного программного обеспечения APT. В противном случае APT не распознает имя пакета, который вы указали установить.

При установке нового программного обеспечения через командную строку рекомендуется обновить информацию о хранилище, чтобы не устанавливать программное обеспечение только для того, чтобы обнаружить, что оно устарело. Это относится и к обновлению программного обеспечения.

Если вы используете графический метод установки или обновления программного обеспечения, например, Ubuntu Software Center или Update Manager, соответственно, эти клиенты будут автоматически проверять наличие самых последних версий пакетов.

При этом если вы устанавливаете пакет программного обеспечения и запускаете обновление всего за несколько минут или даже несколько часов до того, скорее всего, вы получите последнюю версию. Однако, если вы устанавливаете тип программного обеспечения, которое часто обновляется (например, альфа / бета или новейшее программное обеспечение), вам нужно будет запустить обновление, прежде чем получать что-либо из репозитория этого программного обеспечения.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.