Замена в дистрибутиве Ubuntu 25.10 инструментария GNU Coreutils на Rust Coreutils (uutils) привела к нарушению работы скрипта для автоматической проверки наличия обновлений пакетов. Среди прочего, оказался неработоспособен механизм автоматической установки обновлений с устранением уязвимостей, применяемый в некоторых установках Ubuntu Desktop и Ubuntu Server, а также в конфигурациях для облачных систем и контейнеров. Сбой не затронул операции ручной установки обновлений с использованием команд, подобных apt.
Проблема возникла из-за поставки утилиты “date” из набора uutils, в которой не была реализована опция “-r” (“–reference=file”), выводящая время изменения заданного файла. Указание данной опции в утилите “date” принималось парсером, но логика обработки опции отсутствовала в коде, поэтому вместо времени последнего изменения файла всегда возвращалось текущее время.
Команда “date” c опцией “-r” использовалась в ежедневно вызываемом скрипте “apt.systemd.daily” для определения времени модификации файла “/var/lib/apt/periodic/upgrade-stamp”, которое использовалось для вычисления времени последней установки обновлений. Так как вызов “date” с опцией “-r” не приводил к выводу ошибки и возвращал текущее время, скрипт всегда считал, что в системе установлены самые свежие обновления.
Примечательно, что в git-репозитории uutils изменение с корректно работающей полной поддержкой опции “-r” было добавлено за месяц до релиза Ubuntu 25.10, но оно не было включено в пакет rust-coreutils0.2.2-0ubuntu2, вошедший в состав Ubuntu 25.10. Отсутствие вывода ошибки при вызове неработающей опции не позволило выявить проблему при автоматизированном тестировании. Проблема устранена в обновлении пакета rust-coreutils 0.2.2-0ubuntu2.1, для установки которого можно использовать команду “sudo apt install –update rust-coreutils”.