Замяната на инструментария GNU Coreutils с Rust Coreutils (uutils) в дистрибуцията Ubuntu 25.10 доведе до нарушаване на работата на скрипта за автоматична проверка на актуализациите на пакетите. Сред другото, механизмът за автоматична инсталация на актуализации с корекции на уязвимости, използван в някои инсталации на Ubuntu Desktop и Ubuntu Server, както и в конфигурации за облачни системи и контейнери, стана неработоспособен. Проблемът не засегна операциите за ръчна инсталация на актуализации с помощта на команди, подобни на apt.
Проблемът възникна поради доставката на утилитата „date“ от набора uutils, в която опцията „-r“ („—reference=file“) за извеждане на времето на промяна на зададения файл не беше реализирана. Указването на тази опция в утилитата „date“ беше приемано от парсера, но логиката за обработка на опцията липсваше в кода, затова вместо времето на последна промяна на файла винаги се връщаше текущото време.
Командата „date“ с опцията „-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“.
Източник: opennet.ru
