склонный просит обновлять тот же пакет много раз

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

#!/bin/sh
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DATE=`date +%F_%H:%M`
DOY=`date +%j`
FILENAME=$DATE"_Upgrade_results.log"
FILENAME=${FILENAME// /_}
FILEPATH="/Custom/logs/upgrade/$FILENAME"
apt-key update
apt-get update 
apt-get dist-upgrade -y  >"$FILEPATH"
#Mailing section removed to prevent exposing api keys. (I'm using mailgun)

Иногда я получаю это в своем электронном письме:

Reading package lists...
Building dependency tree...
Reading state information...
The following package was automatically installed and is no longer required:
  python-support
Use 'apt-get autoremove' to remove it.
The following packages will be REMOVED:
  mysql-client-5.5 mysql-server-5.5 mysql-server-core-5.5 The following NEW packages will be installed:
  libseccomp2 mysql-client-5.6 mysql-client-core-5.6 mysql-server-5.6
  mysql-server-core-5.6 python-funcsigs python-pbr The following packages have been kept back:
  rsyslog
The following packages will be upgraded:
  e2fslibs e2fsprogs ifupdown libsystemd0 libudev1 manpages mysql-common
  mysql-server python-mock python-ndg-httpsclient python-requests python-six
  python-urllib3 systemd systemd-sysv udev
16 upgraded, 7 newly installed, 3 to remove and 1 not upgraded.
Need to get 26.9 MB/27.1 MB of archives.
After this operation, 59.2 MB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  e2fslibs e2fsprogs mysql-server mysql-client-core-5.6 mysql-common
  mysql-client-5.6 mysql-server-core-5.6 mysql-server-5.6 libseccomp2
  libsystemd0 libudev1 udev systemd ifupdown systemd-sysv manpages
  python-funcsigs python-ndg-httpsclient python-six python-pbr python-urllib3
  python-requests python-mock

В следующий раз выполнения сценария, вывод является чистым:

Reading package lists...
Building dependency tree...
Reading state information...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Проблема состоит в том, что я получаю эту часть снова и снова и снова в различные дни:

The following packages will be upgraded:
  e2fslibs e2fsprogs ifupdown libsystemd0 libudev1 manpages mysql-common
  mysql-server python-mock python-ndg-httpsclient python-requests python-six
  python-urllib3 systemd systemd-sysv udev
16 upgraded, 7 newly installed, 3 to remove and 1 not upgraded.
Need to get 26.9 MB/27.1 MB of archives.
After this operation, 59.2 MB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  e2fslibs e2fsprogs mysql-server mysql-client-core-5.6 mysql-common
  mysql-client-5.6 mysql-server-core-5.6 mysql-server-5.6 libseccomp2
  libsystemd0 libudev1 udev systemd ifupdown systemd-sysv manpages
  python-funcsigs python-ndg-httpsclient python-six python-pbr python-urllib3
  python-requests python-mock

Похоже, что эти пакеты не стали обновленными, НО когда я работаю apt-get update && apt-get dist-upgrade вручную через консоль, я добираюсь 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. .
Я был бы благодарен, если кто-либо мог бы объяснить, почему это происходит?
P.S.: Мой вопрос отличается от этого

1
задан 5 December 2017 в 00:29

1 ответ

Вы использовали apt-get -y опция там. В apt-get страница руководства, это было записано приблизительно -y опция

-y, --yes, --assume-yes
           Automatic yes to prompts; assume "yes" as answer to all prompts and run non-interactively. If an undesirable situation, such as changing
           a held package, trying to install a unauthenticated package or removing an essential package occurs then apt-get will abort.
           Configuration Item: APT::Get::Assume-Yes.

Из Вашего вывода, ясно, что некоторые пакеты не аутентифицируются и таким образом apt-get прерывание операции. Так как это прерывается, Вы получаете тот же вывод снова и снова.

, Чтобы вынудить apt-get установить неаутентифицируемый пакет тихо, необходимо использовать --allow-unauthenticated опция с существующим -y опция. Из страницы руководства это

--allow-unauthenticated
       Ignore if packages can't be authenticated and don't prompt about it. This can be useful while working with local repositories, but is a
       huge security risk if data authenticity isn't ensured in another way by the user itself. The usage of the Trusted option for
       sources.list(5) entries should usually be preferred over this global override. Configuration Item: APT::Get::AllowUnauthenticated.
1
ответ дан 7 December 2019 в 15:47

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

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