Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Bash script: Ubuntu flavor  (gelezen 2748 keer)

Offline Nero

  • Lid
Bash script: Ubuntu flavor
« Gepost op: 2015/10/25, 11:57:21 »
Hoe kan ik ineen script uitvissen welke distributie/versie van *buntu er is opgestart? Kubuntu/Lubuntu/Ubuntu/Ubuntu-Mate/Xubuntu/...

Re: Bash script: Ubuntu flavor
« Reactie #1 Gepost op: 2015/10/25, 12:55:43 »
Of dit echt heel betrouwbaar kan weet ik niet. Maar wat je iig kunt gebruiken is de omgevingsvariabele SESSION.

echo $SESSIONGeeft op Kubuntu "kde-plasma" terug. Geen idee of dit voor andere werkomgevingen ook betrouwbaar is.

env
Geeft nog wat omgevingsvariabelen die nuttig kunnen zijn.

XDG_CURRENT_DESKTOP
GDMSESSION
DESKTOP_SESSION


« Laatst bewerkt op: 2015/10/25, 13:00:16 door erik1984 »

Re: Bash script: Ubuntu flavor
« Reactie #2 Gepost op: 2015/10/25, 12:56:05 »
Misschien kan je hier wat van maken?
cat /var/log/installer/media-info
P.S. Ook dit kan je nog meenemen:
echo $XDG_CURRENT_DESKTOP
« Laatst bewerkt op: 2015/10/25, 13:03:39 door pederoco »
mvg,  Peter
Desktop: xubuntu 18.04.6
"No windows in the house but somehow there's more light..."
The future ain’t what it used to be.

Offline Nero

  • Lid
Re: Bash script: Ubuntu flavor
« Reactie #3 Gepost op: 2015/10/25, 13:20:19 »
echo $SESSIONGeeft op Kubuntu "kde-plasma" terug.
Is iedere Kubuntu kde-plasma?

Re: Bash script: Ubuntu flavor
« Reactie #4 Gepost op: 2015/10/25, 13:25:23 »
Dat weet ik helaas niet zeker. In het geval van KDE heb je ook de variabele KDE_SESSION_VERSION. Het wel of niet bestaan van deze variabele kan ook al aangeven of je met KDE hebt te maken (maar wellicht wordt deze ook ingesteld als je KDE-software gebruikt). Ik heb 14.04.3 en dan is KDE_SESSION_VERSION 4. Vanaf 15.04 is de waarde daarvan waarschijnlijk 5.

Offline Nero

  • Lid
Re: Bash script: Ubuntu flavor
« Reactie #5 Gepost op: 2015/10/25, 17:44:09 »
Dit heb ik tot nu toe bijeen gesprokkeld:
Version DESKTOP_SESSION XDG_CURRENT_DESKTOP XDG_GREETER_DATA_DIR XDG_SESSION_DESKTOP
Edubuntu 14.04 ubuntu Unity /var/lib/lightdm-data/edubuntu #N/A
Kubuntu 15.10 plasma KDE #N/A KDE
Lubuntu 15.10 Lubuntu LXDE /var/lib/lightdm-data/lubuntu Lubuntu
Mythbuntu 14.04 mythbuntu XFCE /var/lib/lightdm-data/mythbuntu #N/A
Ubuntu 15.10 ubuntu Unity /var/lib/lightdm-data/ubuntu ubuntu
Ubuntu-Gnome 15.10 gnome GNOME #N/A gnome
Ubuntu-Kylin 15.10 ubuntu Unity /var/lib/lightdm-data/ubuntu-kylin ubuntu
Ubuntu-Mate 15.10 mate MATE /var/lib/lightdm-data/ubuntu-mate mate
Ubuntustudio 14.04 ubuntustudio XFCE /var/lib/lightdm-data/ubuntu-studio #N/A
Xubuntu 15.10 xubuntu XFCE /var/lib/lightdm-data/xubuntu xubuntu
Daarmee kan ik in elk geval verder.

Offline Nero

  • Lid
Re: Bash script: Ubuntu flavor
« Reactie #6 Gepost op: 2015/10/25, 18:07:39 »
Toch nog niet eenduidig. De variable XDG_GREETER_DATA_DIR reflecteert een directory gebaseerd op de gebruikersnaam. In mijn test waren die redelijk bruikbaar, vermits die weergegeven werden in de live session. In een geïnstalleerde versie is dat dus niet te gebruiken.

Edubuntu, Ubuntu en Ubuntu-Kylin geven alle drie ubuntu als DESKTOP_SESSION, en Unity als XDG_CURRENT_DESKTOP. Daarin kan ik dus nog geen onderscheid maken...  :(

Re: Bash script: Ubuntu flavor
« Reactie #7 Gepost op: 2015/10/25, 18:44:38 »
Nero,

Misschien kan de inhoud van /etc/os-release je helpen om het een en ander te onderscheiden.
 
MvG,
MauRice
Registered Linux user: 473556

Re: Bash script: Ubuntu flavor
« Reactie #8 Gepost op: 2015/10/25, 20:26:22 »
Dat is een mooi lijstje, maar helaas denk ik niet specifiek genoeg voor Nero. Ik heb Kubuntu en daar zie ik in /etc/os-release niets van terug:
NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.3 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
Misschien is het wel anders voor Kylin of Edubuntu.

Offline Nero

  • Lid
Re: Bash script: Ubuntu flavor
« Reactie #9 Gepost op: 2015/10/25, 20:53:00 »
/etc/os-release van Xubuntu en Lubuntu zijn in elk geval identiek.

Re: Bash script: Ubuntu flavor
« Reactie #10 Gepost op: 2015/10/25, 20:57:59 »
En: cat /var/log/installer/media-info
want daar hoor ik je niet over!
mvg,  Peter
Desktop: xubuntu 18.04.6
"No windows in the house but somehow there's more light..."
The future ain’t what it used to be.

Offline Nero

  • Lid
Re: Bash script: Ubuntu flavor
« Reactie #11 Gepost op: 2015/10/26, 00:28:48 »
Lijkt bruikbaar in zoverre het een geïnstalleerde versie betreft. Bij een live session komt deze niet voor.

Re: Bash script: Ubuntu flavor
« Reactie #12 Gepost op: 2015/10/27, 23:07:35 »
Wat staat er eigenlijk in dat bestand? Ik heb dat bestand niet omdat er bij mij wat is mis gegaan op het einde van een installatieproces. De map /var/log/installer is gewoon helemaal niet aangemaakt hier.

Re: Bash script: Ubuntu flavor
« Reactie #13 Gepost op: 2015/10/28, 06:03:15 »
@Erik dit staat er bij mij in na een nieuwe install:
/var/log/installer/casper.log
/var/log/installer/debug
/var/log/installer/initial-status.gz
/var/log/installer/media-info
/var/log/installer/partman
/var/log/installer/syslog
/var/log/installer/version
mvg,  Peter
Desktop: xubuntu 18.04.6
"No windows in the house but somehow there's more light..."
The future ain’t what it used to be.

Re: Bash script: Ubuntu flavor
« Reactie #14 Gepost op: 2015/10/28, 18:06:10 »
Nero,

Kijk eens of de uitkomst van de opdracht lsb_release verschillend is bij de distro's.
Dit gegevem kan je makkelijk in een script verwerken.
Info: http://linux.die.net/man/1/lsb_release
MvG,
MauRice
Registered Linux user: 473556

Re: Bash script: Ubuntu flavor
« Reactie #15 Gepost op: 2015/10/28, 19:48:30 »
@MauRice2
Ik kan nu al zeggen dat die voor Kubuntu identiek is aan die voor Ubuntu:
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.3 LTS
Release:        14.04
Codename:       trusty

@pederoco
Doelde eigenlijk op de inhoud van het bestand media-info. Die hele installer-map heb ik dus niet door een foutje bij installatie.

Re: Bash script: Ubuntu flavor
« Reactie #16 Gepost op: 2015/10/28, 20:12:48 »
@Erik, De inhoud van media-info:
Xubuntu 14.04.1 LTS "Trusty Tahr" - Release i386 (20140723)

Dat is waar je het systeem mee geïnstalleerd hebt.
mvg,  Peter
Desktop: xubuntu 18.04.6
"No windows in the house but somehow there's more light..."
The future ain’t what it used to be.

Offline Nero

  • Lid
Re: Bash script: Ubuntu flavor
« Reactie #17 Gepost op: 2015/10/29, 07:57:11 »
Kijk eens of de uitkomst van de opdracht lsb_release verschillend is bij de distro's.
Deze info is voor all *buntu's gelijk.

De inhoud van media-info:
Xubuntu 14.04.1 LTS "Trusty Tahr" - Release i386 (20140723)
Dit bestand is dus niet op alle installaties aanwezig.

Re: Bash script: Ubuntu flavor
« Reactie #18 Gepost op: 2015/10/29, 21:20:09 »
Kijk eens of de uitkomst van de opdracht lsb_release verschillend is bij de distro's.
Deze info is voor all *buntu's gelijk.
....
Nero,

Op zich verbaas mij dat niet, het zijn immers allemaal afgeleiden van Ubuntu.
Het enigste wat er is verander is de Window Manager maw het Grafische Uiterlijk.
MvG,
MauRice
Registered Linux user: 473556

Re: Bash script: Ubuntu flavor
« Reactie #19 Gepost op: 2015/11/04, 14:35:56 »
wmctrl -m

Dit geeft bij mij dit als antwoord (Xubuntu 14.04)
theo@theo-System-Product-Name:~$ wmctrl  -m
Name: Xfwm4
Class: xfwm4
PID: 1332
Window manager's "showing the desktop" mode: N/A


Ryzen 7 1700 16gb, RX 580 8gb, AOC 24" FreeSync scherm,  Corsair Strafe Red (mechanisch toetsenbord), 256GB SSD, 4 TB HDD. OS: Linux Mint

Re: Bash script: Ubuntu flavor
« Reactie #20 Gepost op: 2015/11/04, 14:41:49 »
Nog wat gevonden waar je misschien wat mee kunt.

#!/bin/bash

function detect_gnome()
{
    ps -e | grep -E '^.* gnome-session$' > /dev/null
    if [ $? -ne 0 ];
    then
    return 0
    fi
    VERSION=`gnome-session --version | awk '{print $2}'`
    DESKTOP="GNOME"
    return 1
}

function detect_kde()
{
    ps -e | grep -E '^.* kded4$' > /dev/null
    if [ $? -ne 0 ];
    then
        return 0
    else   
        VERSION=`kded4 --version | grep -m 1 'KDE' | awk -F ':' '{print $2}' | awk '{print $1}'`
        DESKTOP="KDE"
        return 1
    fi
}

function detect_unity()
{
    ps -e | grep -E 'unity-panel' > /dev/null
    if [ $? -ne 0 ];
    then
    return 0
    fi
    VERSION=`unity --version | awk '{print $2}'`
    DESKTOP="UNITY"
    return 1
}

function detect_xfce()
{
    ps -e | grep -E '^.* xfce4-session$' > /dev/null
    if [ $? -ne 0 ];
    then
    return 0
    fi
    VERSION=`xfce4-session --version | grep xfce4-session | awk '{print $2}'`
    DESKTOP="XFCE"
    return 1
}

function detect_cinnamon()
{
    ps -e | grep -E '^.* cinnamon$' > /dev/null
    if [ $? -ne 0 ];
    then
    return 0
    fi
    VERSION=`cinnamon --version | awk '{print $2}'`
    DESKTOP="CINNAMON"
    return 1
}

function detect_mate()
{
    ps -e | grep -E '^.* mate-panel$' > /dev/null
    if [ $? -ne 0 ];
    then
    return 0
    fi
    VERSION=`mate-about --version | awk '{print $4}'`
    DESKTOP="MATE"
    return 1
}

function detect_lxde()
{
    ps -e | grep -E '^.* lxsession$' > /dev/null
    if [ $? -ne 0 ];
    then
    return 0
    fi

    # We can detect LXDE version only thru package manager
    which apt-cache > /dev/null 2> /dev/null
    if [ $? -ne 0 ];
    then
    which yum > /dev/null 2> /dev/null
    if [ $? -ne 0 ];
    then
        VERSION='UNKNOWN'
    else
        # For Fedora
        VERSION=`yum list lxde-common | grep lxde-common | awk '{print $2}' | awk -F '-' '{print $1}'`
    fi
    else   
    # For Lubuntu and Knoppix
    VERSION=`apt-cache show lxde-common /| grep 'Version:' | awk '{print $2}' | awk -F '-' '{print $1}'`
    fi
    DESKTOP="LXDE"
    return 1
}

function detect_sugar()
{
    if [ "$DESKTOP_SESSION" == "sugar" ];
    then
    VERSION=`python -c "from jarabe import config; print config.version"`
    DESKTOP="SUGAR"
    else
    return 0
    fi
}


DESKTOP="UNKNOWN"
if detect_unity;
then
    if detect_kde;
    then
    if detect_gnome;
    then
        if detect_xfce;
        then
        if detect_cinnamon;
        then
            if detect_mate;
            then
            if detect_lxde;
            then
                detect_sugar
            fi
            fi
        fi
        fi
    fi
    fi
fi


if [ "$1" == '-v' ];
then
    echo $VERSION
else
    if [ "$1" == '-n' ];
    then
    echo $DESKTOP
    else
    echo $DESKTOP $VERSION
    fi
fi
Ryzen 7 1700 16gb, RX 580 8gb, AOC 24" FreeSync scherm,  Corsair Strafe Red (mechanisch toetsenbord), 256GB SSD, 4 TB HDD. OS: Linux Mint

Offline Nero

  • Lid
Re: Bash script: Ubuntu flavor
« Reactie #21 Gepost op: 2015/11/04, 15:22:08 »
wmctrl -m
Dit geeft bij mij (actueel Debian Testing met LXDE)$ wmctrl -m
Name: Openbox
Class:
PID: N/A
Window manager's "showing the desktop" mode: OFF
$
Het script in de daarop volgende post geeft dan wel LXDE aan, maar verder geen details. In mijn reactie #5 kan je zien dat er zeker 3 Ubuntu smaken zijn die Unity gebruiken, en evenveel de XFCE als desktop manager voeren.

Ik denk dat ik met de tabel uit #5 voldoende heb om er een bruikbaar script mee te brouwen. Hoewel dit momenteel op een laag pitje staat...  :-[ (andere prioriteiten).

Elke inbreng wordt echte bijzonder gewaardeerd.

Ik kom hier later nog wel op terug.

Re: Bash script: Ubuntu flavor
« Reactie #22 Gepost op: 2015/11/04, 17:17:24 »
Klopt, LXDE heeft standaard als Window Manager dus Openbox. Maar goed bij LXDE kun je dus ook een andere Window Manager gaan gebruiken (Kwin) bijvoorbeeld.  Er zijn mensen die het doen (bij zowel LXDE als XFCE), vanwege eyecandy.. dus eigenlijk zegt het dan nog niet zo heel veel.
Ryzen 7 1700 16gb, RX 580 8gb, AOC 24" FreeSync scherm,  Corsair Strafe Red (mechanisch toetsenbord), 256GB SSD, 4 TB HDD. OS: Linux Mint