apticron E: Packages were downgraded and -y was used without --allow-downgrades

archive view archive save

debian-logo_1, jpg apticron прекратил присылать список обновлений, вместо которых присылает сообщение E: Packages were downgraded and -y was used without --allow-downgrades.

Симптоматика проблемы

Регулярные письма от apticron без списка обновлений загадочного содержания:

From: root@example.com (Cron Daemon)
To: root@example.com
Subject: Cron <root@example> if test -x /usr/sbin/apticron; then /usr/sbin/apticron --cron; else true; fi
Date: Tue, 23 Mar 2021 00:51:13 +0200
 
E: Packages were downgraded and -y was used without --allow-downgrades.

Что в переводе на человеческий означает:

Пакеты были переведены на более раннюю версию, и -y использовался без --allow-downgrades.

Какие "Пакеты были переведены на более раннюю версию"? Кем "-y использовался" и для чего? Почему "без --allow-downgrades"?

Ответы далее...

Причинно-следственная связь

Сообщение "E: Packages were downgraded and -y was used without --allow-downgrades." присылаемое apticron является результатом симуляции apt-get dist-upgrade выполняемой скриптом /usr/sbin/apticron

$ less /usr/sbin/apticron
...
# get the list of packages which are pending an upgrade
PKGNAMES=`/usr/bin/apt-get -q -y --ignore-hold --allow-change-held-packages --allow-unauthenticated -s dist-upgrade | \
 /bin/grep ^Inst | /usr/bin/cut -d\ -f2 | /usr/bin/sort`

Видим, что apticron выполняет "apt-get -q -y ... -s dist-upgrade" без "--allow-downgrades".

$ man apt-get
...
-q, --quiet
 Quiet; produces output suitable for logging, omitting progress
 indicators. More qs will produce more quiet up to a maximum of 2.
 You can also use -q=# to set the quiet level, overriding the
 configuration file. Note that quiet level 2 implies -y; you should
 never use -qq without a no-action modifier such as -d, --print-uris
 or -s as APT may decide to do something you did not expect.
 Configuration Item: quiet.
 
-s, --simulate, --just-print, --dry-run, --recon, --no-act
 No action; perform a simulation of events that would occur based on
 the current system state but do not actually change the system.
 Locking will be disabled (Debug::NoLocking) so the system state
 could change while apt-get is running. Simulations can also be
 executed by non-root users which might not have read access to all
 apt configuration distorting the simulation. A notice expressing
 this warning is also shown by default for non-root users
 (APT::Get::Show-User-Simulation-Note). Configuration Item:
 APT::Get::Simulate.
 
-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 an unauthenticated
 package or removing an essential package occurs then apt-get will
 abort. Configuration Item: APT::Get::Assume-Yes.
...
--allow-downgrades
 This is a dangerous option that will cause apt to continue without
 prompting if it is doing downgrades. It should not be used except
 in very special situations. Using it can potentially destroy your
 system! Configuration Item: APT::Get::allow-downgrades. Introduced
 in APT 1.1.
  • -q - сделать всё по-тихому (по примеру Верховной Зрады принявшей ночью закон о продаже земли)
  • -s - нихера не делать, а только имитировать бурную деятельность (как 30-ть лет в низалежнай)
  • -y - соглашаться на всё (принимать любые условия МВФ, гнобить население тарифами, закрывать и продавать предприятия)
  • --allow-downgrades - разрешить вернуть всё взад

В данном случае apticron не использовал опцию "--разрешить-вернуть-всё-взад" потому, как она "вери дэнжерос"!

Дополнительную справку по пакету и его конфигурации можно найти по адресам:

$ man apticron
 
$ sudo vi /etc/apticron/apticron.conf
 
$ less /etc/apticron/README
Any settings in a named 'apticron.conf' file in this directory will override
the default apticron options. You may want to copy the original
'/usr/lib/apticron/apticron.conf' in here and use it as a base.
 
*Do not* edit the original /usr/lib/apticron/apticron.conf, or you will lose
your local settings during the next apticron upgrade.

Решение

Для решения проблемы нужно отрыть консоль и вручную выполнить:

Только после полного отключения блокировщика скриптов и рекламы на этом месте появится полезная подсказка/ссылка/код/пример конфигурации/etc!

Ситуация лишний раз подтверждает правильность исключительно ручного обновления системы вместо автоматического "apt-get dist-upgrade -q -y --allow-downgrades".

При ручном обновлении за всем не уследишь, нет-нет да и слетит какой-то важный пакет при выполнении apt-get autoremove, но при этом есть возможность контролировать процесс автоудаления и составить список для повторной установки нужных пакетов вручную.

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


Об авторе
Иван Шаман
Меня нет ни в Инстаграмме ни в Фейсбуке, я просто хожу по улицам и рассказываю первым встречным: сколько зарабатываю; с кем дружу; где живу и чем дышу. У меня даже появилось несколько подписчиков: ПСИХоЛОХ и участковый полицай!
Ещё статьи автора

Нет комментариев

Вы можете стать первым, кто добавит комментарий к этой записи.

Добавить комментарий

АХТУНГ! Все комменты гостей модерасятся модерастом.
  1. Мессаги исключительно рекламного содержания, либо содержащие только одни оценочные суждения типа "круто" ("отлично", "спасибо", "автор дебил" и т.п.) не публикуются;
  2. Злостным спамерам, пранкерам и прочей сетевой нечисти рекомендуем напрасно не тратить своего времени и удовлетворять свои больные фантазии на специализированных Интернет ресурсах!;
  3. Разумная обоснованная критика, замечания, дополнения приветствуются. Поля помеченные символом * обязательны к заполнению.


Защитный код
Обновить

Комментарии в блоге
Новое на форуме