У меня есть скрипт, который обновляет систему:
sudo apt update && sudo apt upgrade && sudo apt autoremove
Иногда выдает ошибку, сообщающую, что обновление заблокировано, поэтому он не может обновить обновляемые пакеты. Когда я снова запускаю сценарий, в это время apt update
ничего не показывает для обновления, а когда пришло время запустить apt upgrade
, нет обновления, потому что «нет ничего» для обновления. Как я могу обновить пакеты, которые были перечислены в первом apt update
?
Реальный случай: теперь у меня есть Firefox 67.0.3 (доступна версия 67.0.4), первый apt update
показал, что было обновление для It. Не удалось обновить, и теперь, когда я снова запускаю apt update
, обновление для Firefox не отображается, и apt upgrade
ничего не обновляло.
Я ищу эту проблему в Google, но у меня ничего не получилось. Буду признателен за любую помощь.
Спасибо заранее и извините за мой английский
Наиболее вероятная причина заключается в том, что вы время от времени запускаете свой сценарий в то же время, что и автоматические обновления.
Это легко проверить, посмотрев журнал необслуживаемых обновлений.
Вот пример моего журнала необслуживаемых обновлений за предыдущий сегодня:
$ grep 2019-06-21 /var/log/unattended-upgrades/unattended-upgrades.log
2019-06-21 06:35:25,971 INFO Initial blacklist :
2019-06-21 06:35:25,986 INFO Initial whitelist:
2019-06-21 06:35:25,986 INFO Starting unattended upgrades script
2019-06-21 06:35:25,986 INFO Allowed origins are: o=Ubuntu,a=disco, o=Ubuntu,a=disco-security, o=UbuntuESM,a=disco,
2019-06-21 06:36:00,248 INFO Packages that will be upgraded: bind9-host intel-microcode libbind9-161 libdns-export1104 libdns1104 libirs161 libisc-export1100 libisc1100 libisccc161 libisccfg163 liblwres161 libpq5
2019-06-21 06:36:00,248 INFO Writing dpkg log to /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
2019-06-21 06:37:18,374 INFO All upgrades installed
Посмотрите на строку 5 журнала (Packages that will be upgraded:...
): Этот список взят непосредственно из apt. Это почти тот же список, который вы получаете из sudo apt update
. Настройка по умолчанию для автоматических обновлений - использовать только карман -security. Не-обновления, не -бэкпорты, не PPA, не сторонние репозитории. Поэтому некоторые пакеты, не относящиеся к безопасности, могут быть не установлены. Вы можете изменить эту настройку.
Теперь взгляните на строку 7 журнала (All upgrades installed
): это ваше положительное подтверждение того, что все пакеты, перечисленные в строке 5, были успешно обновлены, а автоматические обновления сняли блокировку apt и прекратили работу на день. , Если возникла проблема или произошел сбой, или U-U все еще работает, вы не увидите эту строку.
Вы можете видеть, что если бы я запустил руководство sudo apt update
в 06:35, было бы много пакетов для обновления. Но если бы я запустил sudo apt upgrade
в 06:38, ни один пакет не был бы обновлен ... потому что автоматические обновления уже сделали это.
Бьюсь об заклад, это обновление ПО Ubuntu мешает всякий раз, когда заканчивается обновление sudo apt. Вам следует открыть настройки обновления программного обеспечения и убедиться, что в нем установлены все параметры «Никогда». Я не верю, что это подавляет всплывающее окно, но оно не должно допускать попыток автоматического обновления и блокировки файлов.
Для исправления Firefox я бы запустил sudo apt install --reinstall firefox
и посмотрел, исправит ли это проблему. Если он жалуется на блокировку, вы можете удалить его с помощью sudo rm /var/lib/dpkg/lock
.
Кстати, для вашего скрипта вы можете ускорить его, используя sudo -- sh -c 'apt update; apt upgrade --autoremove -y'