Linux-Distribution auslesen

  • Hallo skriptende Gemeinde,

    ich möchte unter Linux die verwendete Distri auslesen (XBMCBuntu, OpenElec, evtl. MLD). Gibt es dafür ein Label (habe auf die Schnellle nichts gefunden) oder wie macht ihr das. Der Hintergrund ist der, dass z.B. das Handling bei Systemaufrufen bei XBMCbuntu und OpenElec unterschiedlich ist (sudo gibt es bei OE nicht). Bisher habe ich das so gelöst:

    Code
    PLATFORM_OE = True if ('OPENELEC' in ', '.join(platform.uname()).upper()) else False

    Liefert True zurück, wenn OpenElec (egal in welcher Schreibweise) in platform.uname auftaucht. Das ist der Fall, wenn der Standardname bei der Installation beibehalten wird und deckt die meisten Installationen ab, aber eben nicht alle. Natürlich könnte man eine entsprechende Auswahl des BS als Option im Setup-Menü des Addons setzen, aber damit möchte ich eigentlich den Nutzer nicht belasten.

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Unter allen Ubuntu Derivaten ist die Distribution unter
    "/etc/lsb-release" zu finden!


    Das hat mich mal bewogen, einfach das Python-Modul 'lsb_release' zu untersuchen - und siehe da...

    AZi:

    Code
    kodi@Horus:/tmp$ python
    Python 2.7.6 (default, Mar 22 2014, 22:59:56)
    [GCC 4.8.2] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import lsb_release
    >>> print lsb_release.get_distro_information()
    {'RELEASE': '14.04', 'CODENAME': 'trusty', 'ID': 'Ubuntu', 'DESCRIPTION': 'Ubuntu 14.04.1 LTS - KODIbuntu'}
    >>>

    Besten Dank!

    An die Openelec- und MLD-User:

    Könnt Ihr bitte mal Python auf der Konsole anwerfen und die Ausgabe von 'print lsb_release.get_distro_information() hier posten (siehe obiger Code)?

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

  • Ich glaube nicht das lsb_release unter openElec verfügbar ist!
    Unter Fedora sowie ARCH ist das jedenfalls der Fall!
    Daher solltest du beim import des Modules diesen fehler abfangen.

    Code
    try:
        import lsb_release
    except ImportError:
        --> kein ubuntu


    Alternativ kannst du die existenz der Datei /etc/lsb_release abfragen!

    Code
    import os.path
    if os.path.isfile("/etc/lsb-release"):
        -->Ubuntu
    else:
        -->kein Ubuntu
  • OE 4 last stable

    Code
    XBMC-NUC:~ # python
    Python 2.7.3 (default, Oct  4 2014, 01:22:50)
    [GCC 4.9.1] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import lsb_release
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: No module named lsb_release

    OE 5 last stable

    Code
    Kodi:~ # python
    Python 2.7.3 (default, Dec 26 2014, 05:37:20)
    [GCC 4.9.2] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import lsb_release
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: No module named lsb_release
    >>>
  • Ok, schade. So wird das also nix. Bleibt also nur die Auswertung der /etc/lsb-release selbst.
    @Fr34k: existiert die Datei /etc/lsb-release unter OE4/5 und kannst Du mal den Inhalt posten?

    AZi (DEV): Nexus auf LibreElec | Asrock J4205 | 4 GB RAM | 128 GB Sandisk| Rii mini
    DEV: PC Ubuntu 20.04 | Matrix
    AZi: Tanix TX3 | Android/CoreElec Dualboot (EMMC), Nexus
    WoZi: Nexus auf LibreElec | Asrock J4205 | 4GB RAM | 128 GB Sandisk SSD | Atric IR | URC7960
    NAS: unRaid, 3x6TB, 2x12TB | TV-Server: Futro S550 mit Hauppauge QuadHD DVB-C
    PayPal: paypal.me/pvdbj1

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!