Для чего может например применяться пакет cron-rpm?
Содержимое /var/log/rpmpkgs изменяется в 4:02. Т.о., если система обновлённая до этого времени, т.е. до изменения /var/log/rpmpkgs, по каким-то причинам даёт сбои каких-то компонентов, diff 'rpm -qa | sort > file' и /var/log/rpmpkgs выведет, какие пакеты обновились в системе. И сузить круг пакетов, которые могли быть причиной сбоя.
Скрипт в cron-rpm используется оригинальный, апстримный.
Отличие по diff, между /var/log/rpmpkgs и 'rpm -qa | sort > file', как минимум будут в расширении .rpm в списке файлов /var/log/rpmpkgs:
# grep -A1 'bin/rpm' /etc/cron.daily/rpm
/bin/rpm -qa --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n' 2>&1 \
| /bin/sort > "$tmpfile"
Для 'rpm -qa' расширение .rpm можно и добавить, но длина команды существенно увеличится
# /bin/rpm -qa --qf '%{name}-%{version}-%{release}.%{arch}\n' | sort | head -n 2
0ad-0.0.23b-alt3.x86_64
0ad-data-0.0.23b-alt1.noarch
Либо то же, но через sed (для приведения формата вывода 'rpm -qa' в соответствие с /var/log/rpmpkgs)
# rpm -qa | sort | sed 's/$/.rpm/g' | head -n 2
0ad-0.0.23b-alt3.x86_64.rpm
0ad-data-0.0.23b-alt1.noarch.rpm
Теоретически, из скрипта можно убрать расширение .rpm и тогда различия между 'rpm -qa | sort > file' и /var/log/rpmpkgs, будут только по обновившимся пакетам.
Иначе перед diff, для /var/log/rpmpkgs придётся применять sed:
# head -n 2 /var/log/rpmpkgs
0ad-0.0.23b-alt3.x86_64.rpm
0ad-data-0.0.23b-alt1.noarch.rpm
Чтобы привести к соответствию формата вывода
# cat /var/log/rpmpkgs | sed 's/\.rpm$//g' | head -n 2
0ad-0.0.23b-alt3.x86_64
0ad-data-0.0.23b-alt1.noarch
# rpm -qa | sort | head -n 2
0ad-0.0.23b-alt3.x86_64
0ad-data-0.0.23b-alt1.noarch
Дельные личные мнения по сути, cron-rpm, приветствуются.
Но в принципе, апстримный скрипт можно и не трогать.
Двинуть вывод списка пакетов через sed, дело вроде бы нехитрое:
rpm -qa | sort | sed 's/$/.rpm/g' > file
Дальше diff с /var/log/rpmpkgs сделает своё дело.