Запуск apt update более одного раза делает невозможным обновление

У меня есть скрипт, который обновляет систему:

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, но у меня ничего не получилось. Буду признателен за любую помощь.

Спасибо заранее и извините за мой английский

1
задан 20 June 2019 в 23:08

2 ответа

Наиболее вероятная причина заключается в том, что вы время от времени запускаете свой сценарий в то же время, что и автоматические обновления.

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

Вот пример моего журнала необслуживаемых обновлений за предыдущий сегодня:

$ 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, ни один пакет не был бы обновлен ... потому что автоматические обновления уже сделали это.

1
ответ дан 20 June 2019 в 23:08

Бьюсь об заклад, это обновление ПО Ubuntu мешает всякий раз, когда заканчивается обновление sudo apt. Вам следует открыть настройки обновления программного обеспечения и убедиться, что в нем установлены все параметры «Никогда». Я не верю, что это подавляет всплывающее окно, но оно не должно допускать попыток автоматического обновления и блокировки файлов.

Для исправления Firefox я бы запустил sudo apt install --reinstall firefox и посмотрел, исправит ли это проблему. Если он жалуется на блокировку, вы можете удалить его с помощью sudo rm /var/lib/dpkg/lock.

Кстати, для вашего скрипта вы можете ускорить его, используя sudo -- sh -c 'apt update; apt upgrade --autoremove -y'

0
ответ дан 20 June 2019 в 23:08

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

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