Вызов apt-get -y update в сценарии bash: один или несколько раз?

Я пишу скрипт bash для установки нескольких пакетов. Нужно ли мне каждый раз называть apt-get -y update до того, как я назову apt-get install <package_name>? Или это достаточно, чтобы называть apt-get -y update один раз в начале скрипта?

Если его нужно вызвать несколько раз, не могли бы вы объяснить, почему?

1
задан 23 November 2017 в 17:45

3 ответа

Вам нужно вызвать apt-get -y update, если:

Он не вызывается в течение длительного времени (например, в последние 24 часа). Если список репозиториев изменился с момента последнего обновления

Для первого момента: очевидно, что в простом случае достаточно было бы вызвать обновление только один раз в начале. В более сложном сценарии может быть полезно вызвать внутреннюю процедуру обновления перед каждым вызовом apt-get -y install и внутри этой внутренней процедуры, которую вы автоматически определяете, если последнее обновление было запущено давным-давно и должно быть выполнено. См. Как узнать последний раз: «apt-get update» было выполнено?

Для второго пункта: если у вас более сложный сценарий, и ваш скрипт может добавить репозитории между вызовами для установки пакетов, вы может потребоваться проверить последние даты изменения

/etc/apt/sources.list всех файлов в /etc/apt/sources.list.d/

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

4
ответ дан 22 May 2018 в 15:57
  • 1
    Для некоторых процессов установки требуется, чтобы apt-get update вызывался для правильного завершения. Например, последние три шага для установки Phusion Passenger: sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger xenial main > /etc/apt/sources.list.d/passenger.list' sudo apt-get update и, наконец, sudo apt-get install -y nginx-extras passenger. Без apt-get update пакет установлен неправильно. – James Newton 24 November 2017 в 20:40

Вам нужно вызвать apt-get -y update, если:

Он не вызывается в течение длительного времени (например, в последние 24 часа). Если список репозиториев изменился с момента последнего обновления

Для первого момента: очевидно, что в простом случае достаточно было бы вызвать обновление только один раз в начале. В более сложном сценарии может быть полезно вызвать внутреннюю процедуру обновления перед каждым вызовом apt-get -y install и внутри этой внутренней процедуры, которую вы автоматически определяете, если последнее обновление было запущено давным-давно и должно быть выполнено. См. Как узнать последний раз: «apt-get update» было выполнено?

Для второго пункта: если у вас более сложный сценарий, и ваш скрипт может добавить репозитории между вызовами для установки пакетов, вы может потребоваться проверить последние даты изменения

/etc/apt/sources.list всех файлов в /etc/apt/sources.list.d/

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

4
ответ дан 18 July 2018 в 02:45

Вам нужно вызвать apt-get -y update, если:

Он не вызывается в течение длительного времени (например, в последние 24 часа). Если список репозиториев изменился с момента последнего обновления

Для первого момента: очевидно, что в простом случае достаточно было бы вызвать обновление только один раз в начале. В более сложном сценарии может быть полезно вызвать внутреннюю процедуру обновления перед каждым вызовом apt-get -y install и внутри этой внутренней процедуры, которую вы автоматически определяете, если последнее обновление было запущено давным-давно и должно быть выполнено. См. Как узнать последний раз: «apt-get update» было выполнено?

Для второго пункта: если у вас более сложный сценарий, и ваш скрипт может добавить репозитории между вызовами для установки пакетов, вы может потребоваться проверить последние даты изменения

/etc/apt/sources.list всех файлов в /etc/apt/sources.list.d/

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

4
ответ дан 24 July 2018 в 17:38

Другие вопросы по тегам:

Похожие вопросы: