Как узнать, какой дистрибутив на базе Ubuntu вы используете?

Как узнать, какой дистрибутив на базе Ubuntu вы используете?

Я пишу скрипт, в котором я хочу, чтобы разный код выполнялся в зависимости от дистрибутива. В частности, это скрипт для настройки новых машин, и я хотел бы добавить репозиторий kubuntu backports (и несколько других вещей, таких как установка kubuntu-restricted-extras), но только если на этой машине запущен kubuntu

Я видел несколько методов, как это сделать, но они не кажутся достаточно конкретными, чтобы различать разные дистрибутивы на основе Ubuntu. Например:

  • lsb_release -aи uname -aпокажет ubuntu, даже если я на kubuntu
  • echo $DESKTOP_SESSIONпокажет плазму и env | grep XDG_CURRENT_DESKTOPпокажет KDE, что, я думаю, не позволит мне отличить kubuntu от KDE neon

Единственный способ, который, как мне кажется, работает, это:

if env | grep -q kubuntu
then
  echo "running kubuntu"
fi

Однако, похоже, это зависит от наличия определенного каталога конфигурации, который, я не уверен, останется стабильным между релизами? Есть ли более правильный способ сделать это?

Подробности

  • Скрипт будет запущен только на машине, на которой установлена ​​какая-либо версия Ubuntu.
  • Ключевые распределения, которые мне нужно различать, это:убунту,кубунту,КДЕ неон, ипоп!_ос. Моя главная путаница проистекает из того факта, что 2 дистрибутива работают под управлением KDE, а 2 — под управлением GNOME, поэтому я не могу просто проверить DE
  • Я с радостью установлю программное обеспечение, чтобы получить эту информацию, но только если оно является частью стандартных/дефолтных репозиториев для этого дистрибутива. Например, neofetchэто честная игра, но я слышал, что иногда этосообщает неправильное имя

Связанный контент