Я пишу скрипт, в котором я хочу, чтобы разный код выполнялся в зависимости от дистрибутива. В частности, это скрипт для настройки новых машин, и я хотел бы добавить репозиторий kubuntu backports (и несколько других вещей, таких как установка kubuntu-restricted-extras), но только если на этой машине запущен kubuntu
Я видел несколько методов, как это сделать, но они не кажутся достаточно конкретными, чтобы различать разные дистрибутивы на основе Ubuntu. Например:
lsb_release -a
иuname -a
покажет ubuntu, даже если я на kubuntuecho $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
это честная игра, но я слышал, что иногда этосообщает неправильное имя