Анализируем систему на предмет установленного ПО не через пакетный менеджер, а пакетный менеджер — это apt. Я же стараюсь всегда и везде ставить приложения посредством дефолтных репозитариев или подключаемых репозитариев, а сборку из исходников оставлять на самый последний вариант, когда действительно это необходимо. Исходя из этого я задался целью найти инструмент, который просмотрит базу данных пакетов Ubuntu систем и сравнит ее содержимое с файлами, которые находятся в системе и выдаст файл отчета. Я нашел, имя этому инструменту cruft. Все дальнейшие действия проходят на Ubuntu 22.04 Server.

Шаг №1: Смотрю есть ли утилита cruft в дефолтных репозитариях Ubuntu 22.04 Server:

ekzorchik@srv-pbx:~$ apt-cache search cruft | grep 'cruft'
cruft - program that finds any cruft built up on your system
cruft-common - information database shared by cruft & cruft-ng
cruft-ng - program that finds any cruft built up on your system
ekzorchik@srv-pbx:~$
ekzorchik@srv-pbx:~$ apt-cache show cruft | grep Version
Version: 0.9.40
ekzorchik@srv-pbx:~$

Шаг №2: Устанавливаю утилиту cruft в текущую систему Ubuntu 22.04 Server:

ekzorchik@srv-pbx:~$ sudo apt-get install -y cruft cruft-common cruft-ng

Шаг №3: Смотрим где установлена в системе утилита cruft:

ekzorchik@srv-pbx:~$ whereis cruft
cruft: /usr/sbin/cruft /usr/lib/cruft /etc/cruft /usr/share/man/man8/cruft.8.gz
ekzorchik@srv-pbx:~$

исходя из этого понимаю, что для ее работы по всей системе нужно использовать предверие запуска, как запуск через sudo потому как располагается она в каталоге /usr/sbin. Все что в "sbin" все налагает на себя запуск через sudo.

Шаг №4: Перед запуском хотя бы бегло стоит ознакомиться описание что утилита может и какие ключи в ее использовании можно задействовать:

ekzorchik@srv-pbx:~$ man 8 cruft

Шаг №5: Запускаем утилиту cruft:

ekzorchik@srv-pbx:~$ sudo cruft --ignore /boot --ignore /sys --ignore /var/lib/docker -r /home/ekzorchik/report.txt
ekzorchik@srv-pbx:~$

Шаг №6: Смотрим сформированный отчет по анализу всей системы:

ekzorchik@srv-pbx:~$ ls -lh ~/report.txt
-rw-r--r-- 1 root root 3.4M Apr 23 09:28 /home/ekzorchik/report.txt
ekzorchik@srv-pbx:~$ sudo tail -f ~/report.txt
ekzorchik@srv-pbx:~$ sudo cat ~/report.txt | grep /usr/src/

в выводе report.txt увидел, что есть каталоги в /usr/src

смотрю какие каталоги есть:

ekzorchik@srv-pbx:~$ ls -l /usr/src | grep "^d"
drwxr-xr-x 31 root root         4096 Feb 13 16:12 asterisk-16.9.0
drwxr-xr-x 15 1001 asterisk     4096 Feb 13 10:20 lame-3.100
drwxr-xr-x 25 root root         4096 Jan 22 09:33 linux-headers-5.15.0-91
drwxr-xr-x  7 root root         4096 Jan 22 09:33 linux-headers-5.15.0-91-generic
drwxr-xr-x 25 root root         4096 Feb 12 09:45 linux-headers-5.15.0-94
drwxr-xr-x  7 root root         4096 Feb 12 09:45 linux-headers-5.15.0-94-generic
ekzorchik@srv-pbx:~$

из проанализированного отчета понимаю, что на данной системе устанавливали FreeBPX многое, к этому подводит, вообще считаю, что собранная информация здорово облегчает анализ системы перед последующей поддержкой и обеспечиванием работоспособности.

Шаг №7: Так, а если установить эту утилиту на боевую VPS систему (это Ubuntu 18.04 Server) с целью посмотреть, что разработчики устанавливают и используют то что не предусмотрено политикой работы с системой:

ekzorchik@srv-tablo:~$ sudo apt-get -f install cruft
ekzorchik@srv-tablo:~$ sudo cruft --ignore /boot --ignore /sys --ignore /var/lib/docker -r /home/$USER/report.txt

тут уже поинтереснее.

стоит: nginx, php7.3-fpm, postgresql, rabbitmq,

есть подключенные репозитарии

ekzorchik@srv-tablo:~$ cat /etc/apt/sources.list.d/
bintray.rabbitmq.list                   deadsnakes-ubuntu-ppa-bionic.list       mssql-release.list                      ondrej-ubuntu-php-bionic.list.save
bintray.rabbitmq.list.save              deadsnakes-ubuntu-ppa-bionic.list.save  ondrej-ubuntu-php-bionic.list
ekzorchik@srv-tablo:~$

если задаться целью и необходимостью, то узнать, что есть не составит труда при наличии желания и квалификации.

Итого: Я получил в свою копилку инструмент по сбору всего установленного на сервере с последующей целью анализа что зачем и как. Хоть небольшое подспорье с тем что перед этим вообще ничего не было.

На этом моя заметка для самого себя успешно завершена, с уважением автор блога Олло Александр aka ekzorchik.