Смяната на инструмента 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
