Anwendungen
Portal
Forum
Wiki
Ikhaya
Planet
Mehr
Anmelden

26. April 2016

Ubuntu MATE 16.04 für den Raspberry Pi

Permalink Michael Koflers Blog

Ubuntu MATE war schon in der Vergangenheit die interessanteste Alternative zu Raspbian, vor allem für alle jene Raspberry-Pi-Fans, die ihren Minicomputer auch als Desktop-Rechner verwenden möchten. Die Benutzeroberfläche von MATE ist entschieden eleganter als jene von Raspbian. Auch die Standard-Software-Ausstattung mit Firefox, Thunderbird und LibreOffice ist mehr für den Desktop-Einsatz optimiert.

Seit gestern steht das Image von Ubuntu MATE 16.04 für den Raspberry Pi zum Download zur Verfügung — Zeit also, um einen kurzen Blick auf diese spezielle Ubuntu-Variante zu werfen.

Beachten Sie, dass Ubuntu MATE nur auf dem Raspberry Pi 2 und 3 läuft, nicht aber auf den 1er-Modellen sowie auf dem Raspberry Pi Zero!

Der Desktop von Ubuntu MATE 16.04
Der Desktop von Ubuntu MATE 16.04

Image-Größe

Die Image-Datei der finalen Version von Ubuntu MATE 16.04 ist unglücklich gewählt: Sie beträgt ca. 8 GByte, ist aber gerade um ein paar MByte größer als viele handelsüblichen 8-GByte-Karten. Daher brauchen Sie eine 16-GByte-SD-Karte, um das Image vollständig übertragen zu können. Möglicherweise wird die Image-Datei beim nächsten Update nochmals ein wenig verkleinert — dann sollte auch eine 8-GByte-Karte für erste Tests ausreichen.

Welcome-Programm

Neu im Vergleich zu Ubuntu MATE 15.10 ist in der aktuellen Version vor allem das Welcome-Programm, das beim ersten Login automatisch gestartet wird. Das Programm kann auch mit System / Willkommen gestartet werden. Es soll über Ubuntu MATE informieren und bei den ersten Schritten in Ubuntu MATE helfen.

Begeistert hat mich das Konzept nicht: Das Programm ist unübersichtlich zu bedienen, manche Dialoge sind zudem für die Raspberry-Pi-Variante irrelevant (NVIDIA-Treiberinstallation etc.).

Dennoch gibt es einen Aspekt, der das Welcome-Programm auch für Raspberry-Pi-Anwender interessant macht: Sie können damit das Dateisystem an die Größe der SD-Karte anpassen. Anfänglich verwendet Ubuntu MATE nur die ersten 8 GByte der SD-Karte — egal, wie groß die Karte tatsächlich ist. Das liegt daran, dass die Partitionsgröße auf der Image-Datei festgelegt ist.

Um die gesamte SD-Karte nutzen zu können, müssen Sie die Root-Partition und das dort enthaltene Dateisystem vergrößern. Dazu klicken Sie im Startdialog des Welcome-Programms klicken Sie auf den Button Raspberry Pi Information und im nächsten Dialog auf Größe jetzt ändern. Danach müssen Sie Ubuntu MATE neu starten.

Das Welcome-Programm hilft dabei, das Dateisystem an die Größe der SD-Karte anzupassen.
Das Welcome-Programm hilft dabei, das Dateisystem an die Größe der SD-Karte anzupassen.

raspi-config und rc-gui

Das von Raspbian vertraute Konfigurationsprogramm raspi-config sowie dessen grafische Variante rc-gui kann mit apt installiert werden. raspi-config kann für manche Konfigurationsarbeiten tatsächlich verwendet werden. Einige Funktionen dieses Programms sind aber Raspbian-spezifisch implementiert und werden daher unter Ubuntu MATE nicht funktionieren.

rc_gui führt beim Start einen entsprechenden Test durch und stellt fest, dass MATE nicht der Raspbian-Standardkonfiguration entspricht (kein Benutzer pi, kein lightdm-Display-Manager). Das Programm kann deswegen unter MATE nicht benutzt werden.

GPIO-Zugriff

Sowohl das Kommando gpio als auch Python-Scripts, die das RPi.GPIO-Modul verwenden, können GPIOs nun ohne root-Rechte (ohne sudo) steuern.

Versionsnummern

Die folgenden Tabelle fasst zusammen, welche Software-Versionen unter Ubuntu 16.04 MATE anfänglich zum Einsatz kommen. Die Firefox- und Thunderbird-Pakete werden während der Lebensdauer von Ubuntu 16.04 regelmäßig aktualisiert.

Basis           Desktop            Programmierung     Server
--------------  ------------------ --------------    --------------
Kernel     4.4  Firefox        45  bash       4.3    Apache    2.4
glibc     2.23  Gimp          2.8  gcc        5.3    CUPS      2.1
X-Server  1.18  LibreOffice   5.1  Java       7/8    MySQL     5.7
Systemd    229  MATE         1.12  PHP          7    OpenSSH   7.2
                Thunderbird    38  Python     3.5    Postfix   3.1
                                                     Samba     4.3

Fazit

Zu den größten Ärgernissen in Ubuntu MATE zählt ein uraltes Gnome-2-Problem: Die Maus muss pixelgenau auf den Fensterrand positioniert werden um die Größe eines Fensters zu ändern. Ansonsten funktioniert Ubuntu MATE wunderbar, sowohl im Vergleich zu Raspbian als auch im Vergleich zum richtigen Ubuntu.

Allerdings fühlt sich MATE deutlich schleppender an als Raspbian — auch auf dem relativ rechenstarken Raspberry Pi 3. Die größte Bremse ist offenbar nicht die CPU, sondern die SD-Karte: Die unter MATE laufenden Programme sind durchwegs größer als die von Raspbian, entsprechend länger dauert der Bootprozess bzw. der erste Start eines Programms.

Bastler und Maker werden sicherlich weiterhin Raspbian den Vorzug geben. Für Desktop-Anwender ist MATE aber eine interessante Alternative. Spannend ist MATE auch für alle, die den Raspberry Pi zum Webserver machen wollen: Mit PHP 7 und MySQL 5.7 bietet MATE hier wesentlich aktuellere Versionen an als Raspbian.

Links

Tiny Tiny RSS: Der Kleine futtert ordentlich

Permalink Dem hoergen - Hyperblog

Ein Klick hier, ein Klick da, ein Klick trallalala, es hat sich nichts verändert. Das Abfragen von Nachrichten von verschiedenen Webseiten ist ziemlich mühselig, zeitaufwendig und wenn nichts Neues veröffentlicht wurde erfolglos. Auch ist der Vergleich, gerade bei politischen Nachrichtenquellen, eher schwierig, weil dann doch zu viel Zeit zwischen der „Beschaffung“ durch den Aufruf der Webseiten liegt.

Abhilfe bieten hier sogenannte RSS Reader , die man sich auf jedem Rechner oder Smartphone installieren kann. Eine wunderbare Sache.

Dennoch hat man unter Umständen das Problem, dass man auf jedem Endgerät der Lesestatus unterschiedlich ist und man im schlechtesten Fall Nachrichten doppelt liest, oder als gelesen markieren musss.

Also musste eine Lösung her, die sich auf allen Endgeräten synchronisiert und auch mitnehmbar ist (Smartphone). Die Lösung ist für mich „Tiny Tiny RSS“ (1). Eine OpenSourceSoftware, die sich auf einen Server (wie dem hyperblog) installieren lässt und auch eine Android App (2) (3) für das Smartphone bietet (. So kann ich aus jedem Webbrowser meine Nachrichten lesen und der Gelesen-Status synchronisiert sich auch auf das Smartphone.

Durch diverse Plugins wird das Lesen noch komfortabler, inklusive das Teilen auf die asozialen Netzwerke wird zudem sehr erleichtert.

Mittlerweile nutze ich TTR seit einem Monat mit ungefähr 127 Nachrichtenquellen, die grob geschätzt einen Tages-Output von 500 Nachrichten erzeugen und brauche nur noch einen Bruchteil der Zeit, um die für mich interessanten Artikel zu entdecken.

Nachtrag: Eben noch schnell das Statistik Plugin “feedstatistics” installiert und diesen Output bekommen

From your 127 subscriptions, over the last 30 days you read 15495 items

 

(1)https://tt-rss.org/

(2)  TTRSS-Reader (https://play.google.com/store/apps/details?id=org.ttrssreader&hl=de) #kostenlos

(3) Tiny Tiny RSS (TRIAL) (https://play.google.com/store/apps/details?id=org.fox.ttrss&hl=de) #trial 

 

25. April 2016

Firefox 48 bekommt DOM-Panel aus Firebug

Permalink Sören Hentzschel

Die Entwickler-Werkzeuge von Firefox haben sich in den letzten Jahren prächtig entwickelt und machen eine Erweiterung wie Firebug immer weniger notwendig. Nun hat Mozilla auch ein DOM-Panel integriert, wie man es aus Firebug kennt.

Mozilla arbeitet weiterhin mit den Firebug-Machern zusammen, um die direkt in Firefox integrierten Entwickler-Werkzeuge so mächtig zu machen, dass kein Firebug mehr notwendig ist. Seit wenigen Tagen ist sogar das Firebug-Theme direkt in Firefox integriert.

Firefox 48 DOM-Panel

Firebug gehört zu den populärsten Erweiterungen für Firefox und ist bei Webentwicklern sehr beliebt. Da es nur wenig Sinn ergibt, zahlreiche Funktionen zu duplizieren, die Firefox mittlerweile selbst hat, und der Aufwand enorm wäre, Firebug kompatibel mit der kommenden Multiprozessarchitektur von Firefox (Electrolysis / e10s) zu machen, arbeitet man daran, bestimmte Dinge, welche Firebug den in Firefox integrierten Werkzeugen noch voraus hat, direkt in Firefox zu implementieren.

Der Beitrag Firefox 48 bekommt DOM-Panel aus Firebug erschien zuerst auf soeren-hentzschel.at.

24. April 2016

Homeserver-Migration auf Ubuntu 16.04

Permalink svij | Blog

Vor fast zwei Jahren richtete ich mir meinen ersten Homeserver ein. Bis letztes Wochenende lief der Rechner noch mit ArchLinux. Generell war der Betrieb von ArchLinux angenehm: Ich musste fast nichts machen und habe täglich Updates installiert. Nichtsdestotrotz habe ich jetzt den Homeserver auf Ubuntu 16.04 migriert. Hauptsächlicher Grund war, dass ich durch die Umstellung deutlich mehr an System-Administration lernen kann, was ich später und auch jetzt an anderer Stelle gebrauchen kann, als es bei einem ArchLinux-Server der Fall ist. Die Migration wäre prinzipiell recht einfach gewesen, wenn ich den grundsätzlichen Aufbau nicht verändert hätte. Die Hardware hingegen ist gleich geblieben.

LXD

Eines der Gründe wieder auf Ubuntu zu setzen ist der Einsatz von Ubuntu-Tools die nur eingeschränkt unter ArchLinux laufen oder anderweitig anstrengender sind zum Laufen zu kriegen. Einige Dienste habe ich deshalb in LXD/LXC-Container verpackt, was ich deutlich schöner und angenehmer in der Nutzung finde als Docker. Konkret laufen in einzelnen Containern owncloud, transmission für das Seeden von Ubuntu-ISOs und gogs.io für das Hosten von Git-Repositorys. Wer sich näher mit LXD beschäftigen will, der schaut sich am Besten die Blog-Serie vom LXD-Entwickler Stéphane Graber an. Für den Einstieg reichen auch schon die ersten paar Teile. Gegebenenfalls schreibe ich zur Einrichtung und Nutzung von LXD auch noch einen eigenständigen Artikel.

DHCP- und DNS-Server

Der Homeserver dient jetzt auch als DHCP- und DNS-Server im LAN. Mein Hauptproblem war, dass ich ownCloud innerhalb des LANs nicht über die dynamische DNS erreichen konnte, Das ist zwar für stationäre Laptops und PCs recht einfach mit einem Eintrag in /etc/hosts gelöst, doch geht das nicht auf Android-Geräten. Letztere hatten nämlich ständig eine unschöne Fehlermeldung angezeigt, dass CalDav, CardDav und ownCloud Sofort-Uploads nicht zu erreichen sind. Zum Einsatz kommt bei mir dnsmasq was es mit einfachen mitteln erlaubt einen DHCP- und DNS-Server zu betreiben. Im gleichen Zug habe ich LXD auch an die auf dem Homeserver konfigurierte Bridge gehangen, damit auch die Container eine IP-Adresse bekommen, damit man einfach per SSH auf die Container zugreifen kann.

Filesystem

Das Datengrab mit vormals 2x 2TB-Platten im Software-RAID und einem LVM habe ich soweit aufgelöst. Dazu gekommen ist eine 120GB-SSD, wo das System und die Container drauf liegen. Die 2x 2TB-Platten sind jetzt mit einem btrfs RAID-1 bestückt, somit ohne Software-RAID und ohne LVM. Der kurze Gedanke ZFS einzusetzen war zwar auch verhanden, habe es allerdings dann doch verworfen. Die Kenntnisse im Umgang mit btrfs kann ich dann weiterhin gut auch auf anderen Distributionen nutzen.

Configuration-Management mit Ansible

Der wohl letzte Punkt ist die Administration des Servers mit Ansible. Klingt am Anfang zwar toll und einfach, erfordert aber dann doch recht viel Arbeit, wenn man es ordentlich machen will. Da der Server doch eher früher als später wieder funktionsfähig sein sollte, erfolgt die Übernahme der Konfigurationen in Ansible-Playbooks eher nach und nach. Wiederholende Tasks lassen sich aber besonders einfach und sinnvoll mit Ansible automatisieren. Besonders das Updaten von mehreren Containern und den Ubuntu-PCs im Haushalt ist damit deutlich einfacher möglich.

Fazit

Schon jetzt viel Neues gelernt und vieles noch in Planung. Ziel erreicht. ;-)

Windows Subsystem für Linux (WSL): Microsoft gibt weitere Einblicke

Permalink Softwareperlen

Microsoft hat auf der Entwicklerkonferenz Build 2016 vor ein paar Wochen überraschend verkündet eine Unterstützung der klassischen /bin/bash und weiterer klassischer Linux binaries auf der Basis von Ubuntu 14.04 (und demnächst Ubuntu 16.04) unter Windows 10 zu unterstützen.

Dies hat natürlich zu vielen Fragen geführt. Die Entwickler von Microsoft und Canonical stellten sich den ersten Fragen zu dem Subsystem bereits kurz nach der Veröffentlichung.

Doch es blieben noch einige Fragen offen, gerade inwiefern sich dadurch Vorteile ergeben für den Entwickler, was er nicht schon in einer virtuellen Maschine erledigen konnte und wie überhaupt die technische Implementierung von Microsoft umgesetzt ist.

Microsoft geht auf diese Fragen nun in mehreren Blogpost auf ihren Entwicklerblogs im MSDN ein. In einem ersten Beitrag gehen sie auf die Historie von Windows Subsystems ein, die es schon seit Ewigkeiten in Windows gibt.

Windows Subsystem for Linux Components

Zudem beschreiben sie gut die einzelnen Komponenten, die für das Windows Subsystem for Linux (WSL) miteinander agieren und wie sie die Linux system calls für den Windows Kernel übersetzen. Des Weiteren wird konkreter auf das Dateisystem eingegangen und wie sie den Austausch und den Zugriff von Dateien aus dem Linux Subsystem auf die normalen Dateien unter Windows realisieren.

Für den normalen Nutzer sicher weniger spannend, dennoch gibt es interessante Einblicke für Entwickler und Microsoft will dies in den nächsten Blogposts noch detaillierter die einzelnen Komponenten beschreiben.

Es bleibt spannend zu beobachten, was Microsoft in Zukunft noch alles integrieren wird, denn bisher hat es natürlich nur den Stand einer frühen Beta mit einigen zentralen Funktionen die noch fehlen, auch wenn überraschenderweise schon etliches funktioniert. Man fordert aber aktiv Feedback was den Nutzern noch fehlt und möchte diese schnellstmöglich nachliefern. Mir gefällt der Schritt sehr gut, auch wenn ich einige Stimmen hörte, die die Entwicklung eher skeptisch betrachten, aber ich denke als Nutzer mehr Optionen zu haben ist immer ein Gewinn.

Ubuntu for Windows 10

Wer das ganze einmal selbst ausprobieren will findet eine Anleitung für die Installation unter Windows 10.

Den Load Cycle Count bei Western Digital Festplatten minimieren

Permalink Finns Blog

Klassische Festplatten sind auch in Zeiten von SSD basierten Speichermedien unverzichtbar, da sie zu einem günstigen Preis hohe Kapazitäten bieten. Kürzlich habe ich mir auf Basis von OpenMediaVault ein NAS-System aufgebaut, welches drei Western Digital WD40EZRZ Festplatten (WD Blue, 4 TB) im RAID 5 beherbergt. Das RAID Array ist erstens erweiterbar und zweitens verkraftet es den Ausfall einer Festplatte, weshalb ich hoffe, das System viele Jahre nutzen zu können. Das NAS-System läuft zwar nicht dauerhaft, aber häufig, als Festplatten setze ich keine besonderen für den 24/7 Betrieb ausgelegten Festplatten ein. So lange man den Load Cycle Count berücksichtigt, kann das gut funktionieren

Der Load Cycle Count gibt die Anzahl der Parkvorgänge der Schreib-/Leseeinheit an. Festplatten sind meiner Meinung nach ein wenig vergleichbar mit einem Schallplattenspieler. Nachdem man ein paar Hunderttausend Mal den Arm des Plattenspielers auf eine Schallplatte und wieder zurück gelegt hat (die Nadel lasse ich außer Acht), wird dieser sicherlich einen gewissen Verschleiß aufweisen. Ebenso verhält es sich bei Festplatten, denn um ein wenig Energie zu sparen, wird die Schreib-/Leseeinheit nach einigen Sekunden in Park-Position gebracht. Die meisten PCs, Server und NAS-Systeme müssen aber häufig Daten lesen und schreiben, so dass die Park-Position schnell wieder verlassen werden muss. Das Resultat ist ein hoher Load Cycle Count schon nach geringer Nutzungszeit. Als Höchstwert findet man je nach Festplatte Werte zwischen 300.000 und 600.000.

Den aktuellen Load Cycle Count kann man mit Hilfe der smartmontools abfragen:

[root@desktop ~]# smartctl -A /dev/sdf | grep Load_Cycle_Count
193 Load_Cycle_Count        0x0032   092   092   000    Old_age   Always       -       326477

Hier handelt es sich um eine weit verbreitete 2,5 Zoll Western Digital 320 GB Festplatte aus einem Notebook. Der Load Cycle Count beträgt bereits über 326477, weshalb ich die Festplatte lieber nicht mehr für wichtige Systeme einsetzen werde. Vielleicht hält sie noch 10 Jahre, aber die Wahrscheinlichkeit eines Versagens ist nun sehr hoch. Die Betriebszeit der Festplatte beträgt übrigens nur etwa 208 Tage. Im Durchschnitt hat es somit jeden Tag etwa 1500 Parkvorgänge gegeben.

Damit meinen neuen Festplatten im OpenMediaVault NAS nicht das gleiche Schicksal droht, habe ich den WD Idle Timer, welcher für das Parken verantwortlich ist, deaktiviert.

# IDLE3 Tools installieren
apt-get install idle3-tools
# Timer vollständig deaktivieren
idle3ctl -d /dev/sda
# Herunterfahren, damit die Festplatten den neuen Wert verwenden (Neustart reicht nicht aus)
shutdown -h now

Nach über einem Monat im Einsatz beträgt der Load Cycle Count meiner Festplatten nur 52, was in etwa der Anzahl der Boot-Vorgänge entspricht.

Firewallkonfiguration unter Debian und Ubuntu mit IPTables

Permalink Finns Blog

Häufig sehe ich Server, die gar keine Firewall verwenden. In einem kleinen internen Netz mag das vielleicht noch vertretbar sein, aber spätestens wenn der Server öffentlich erreichbar ist, sollte man sich Gedanken um eine Firewall machen. Für viele ist das zwar selbstverständlich ein alter Hut, aber viele Dienste laufen gedankenlos auf der Listen-Adresse 0.0.0.0 bzw. :: und sind damit bei Verwendung einer öffentlichen IP-Adresse oder NAT ohne Firewall für jedermann erreichbar.

Um die IPTables Firewall unter Debian oder Ubuntu zu konfigurieren, verwende ich iptables-persistent. Die Firewall-Regeln werden dabei in Textdateien gespeichert und beim Starten geladen. Nach der Installation von iptables-persistent besteht die Möglichkeit, bereits vorhandene Regeln zu speichern, was zu empfehlen ist, da somit schon eine grundlegende Konfiguration erstellt wird. Die Installation selbst ist simpel:

apt-get intall iptables-persistent

Anschließend wird jeweils eine Datei für IPv4 und IPv6 angelegt. Anbei eine einfache Beispielkonfiguration, die entsprechend den eigenen Bedürfnissen erweitert werden kann:

# Generated by iptables-save v1.4.21 on Mon Mar  7 18:13:53 2016
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT

# SSH
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

# HTTP(S)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

# NRPE (monitoring)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5666 -s 78.46.251.28/32 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Mon Mar  7 18:13:53 2016

Die Ketten INPUT, FORWARD und OUTPUT akzeptieren standardmäßig alle Verbindungen. Eingehender, zu anderen Verbindungen gehörender Verkehr (RELATED,ESTABLISHED) wird ebenfalls durchgelassen. Ebenso werden ICMP Pakete (Ping, -p icmp) aktzeptiert und auch Verbindungen zum lokalen Loopback Interface.

Dann werden die TCP Ports 22, 80 und 443 akzeptiert. Der Port 5666, auf welchem der NRPE Dienst hört, soll nur von einer IP Adresse erreichbar sein. Anschließend werden alle nicht vorher definierten eingehende und weiterzuleitende Verbindungen abgelehnt (-j REJECT –reject with icmp-host-prohibited). Alternativ können diese Zeilen entfernt werden, falls man die INPUT und FORWARD Kette standardmäßig auf REJECT stellt. Im Falle eines Fehlers in der Konfiguration ist es aber dann notwendig, physikalischen Zugriff auf den Server zu haben, da eventuell alle Verbindungen abgelehnt werden. Die Art der Konfiguration ist aber Geschmackssache, das Ergebnis ist gleich.

Für IPv6 sollen normalerweise etwa die gleichen Regeln gelten, ein paar Parameter (natürlich IPv6 anstatt IPv4 Adressen verwenden oder icmp6-adm-prohibited statt icmp-host-prohibited) müssen aber ausgetauscht werden. Das Ergebnis ist vergleichbar:

# Generated by iptables-save v1.4.21 on Mon Mar  7 18:13:53 2016
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT

# SSH
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

# HTTP(S)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

# NRPE
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5666 -s 2a01:4f8:c17:34ab::2/128 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp6-adm-prohibited
-A FORWARD -j REJECT --reject-with icmp6-adm-prohibited
COMMIT
# Completed on Mon Mar  7 18:13:53 2016

Diese Regeln sind recht schlicht, aber schon ein sehr brauchbarer Anfang. Zusätzlich können noch ausgehende Verbindungen eingeschränkt werden, falls dies gewünscht ist. Spätestens wenn Datenbanken oder ähnlich sensible Dienste über Netzgrenzen hinweg erreichbar sein sollen, sollte definitiv zumindest irgendeine Art Firewall eingesetzt werden.

Tipps zur Desktop-Konfiguration für Ubuntu 16.04

Permalink Michael Koflers Blog

Die Ubuntu-Systemeinstellungen bieten nur recht wenig Einstellmöglichkeiten. Aber Ubuntu wäre nicht Linux, gäbe es nicht unzählige Möglichkeiten, den Desktop nach eigenen Vorstellungen zu gestalten.

Konfigurationswerkzeuge installieren

Die zur Ubuntu-Konfiguration vorgesehenen Systemeinstellungen reichen leider nicht aus, um weitergehende Konfigurationswünsche zu erfüllen. Mit dem folgenden Kommando richten Sie gewissermaßen Ihren persönlichen Werkzeugkasten ein:

sudo apt install compizconfig-settings-manager unity-tweak-tool gnome-tweak-tool ldconf-tools

Dock-Position ändern

In Ubuntu 16.04 können Sie das Dock auch am unteren Bildschirmrand darstellen. Am schnellsten gelingt die Positionsänderung mit den folgenden Kommandos, die im Terminal auszuführen sind:

gsettings set com.canonical.Unity.Launcher launcher-position Bottom
gsettings set com.canonical.Unity.Launcher launcher-position Left

Alternativ können Sie auch das Unity-Tweak-Tool starten, das Dialogblatt Unity/Starter öffnen und dort die Option Erscheinungsbild/Position entsprechend einstellen.

Fenster durch einen Klick im Dock minimieren und wieder einblenden

Ein Klick auf ein Icon im Dock startet das betreffende Programm bzw. zeigt das laufende Programm an. Schön wäre es, wenn ein weiterer Klick das Programm wieder minimieren würde, wie dies unter OS X und Windows der Fall ist. Unity kann das, die Option wird aber offiziell nicht unterstützt. Starten Sie den Compiz Settings Manager, öffnen Sie dort das Modul Unity Plugin und aktivieren Sie die Option Launcher / Minimize Single Window Applications minimiert das offene Fenster eines Programms durch einen Klick auf das Icon im Dock. Merkwürdig, dass diese praktische Einstellung nicht standardmäßig gilt.

Ein Klick auf das Programm-Icon im Dock minimiert das entsprechende Fenster
Ein Klick auf das Programm-Icon im Dock minimiert das entsprechende Fenster

Weniger Effekte, mehr Geschwindigkeit

Wenn Sie Ubuntu auf einem alten Rechner oder in einer virtuellen Maschine ausführen, dann bremsen grafische Effekte die Darstellung des Menüs bzw. das Ein- und Ausblenden von Fenstern spürbar ein. Abhilfe schaffen zwei Optionen, die Sie am schnellsten im Dialogblatt Fensterverwaltung/Allgemein des Unity Tweak Tools verändern können. Dort stellen Sie die Option Texturenqualität auf Schnell und deaktivieren die Option Window Animations.

Zwei Optionen im Unity Tweak Tool vergrößern die  Darstellungsgeschwindigkeit  auf dem Desktop merklich.
Zwei Optionen im Unity Tweak Tool vergrößern die Darstellungsgeschwindigkeit auf dem Desktop merklich.

Ergänzend dazu können Sie im Compiz Config Settings Manager im Modul Unity Plugin die Option General/Enable Low Graphics Mode aktivieren. Sie bewirkt unter anderem, dass das Startmenü ohne Transparenz dargestellt wird. Das ist optisch weniger elegant, dafür wird das Menü nicht nur schneller eingeblendet, sondern ist auch besser lesbar.

Unity für langsame Grafikkarten optimieren
Unity für langsame Grafikkarten optimieren

Dezentere Fensterschatten

Standardmäßig stattet Unity alle Fenster mit einem riesigen, halbtransparenter Schatten aus. Solange Sie ein Bild als Hintergrund verwenden, stört das nicht. Wenn Sie aber Screenshots auf weißem Hintergrund erstellen wollen, sind dezentere Schatten erforderlich. Die entsprechenden Einstellungen finden Sie im Compiz Config Settings Manager im Dialogblatt Decorations. Dort müssen Sie die Option Override Theme Settings aktivieren und können dann die Schattengröße in den Feldern Active und Inactive window shadow radius einstellen.

Im Compiz Config Settings Manager können Sie die Fensterschatten minimieren
Im Compiz Config Settings Manager können Sie die Fensterschatten minimieren

Leider gilt die so vorgenommene Schattenreduzierung nur bis zum nächsten Unity/Compiz-Update. Um den Schatten neuerlich zu minimieren, müssen Sie die Option Override Theme Settings deaktivieren und dann neuerlich aktivieren.

Systemzustand anzeigen

Wenn Sie wissen möchten, wie stark die CPU Ihres Rechners gerade beansprucht wird, wie viel RAM in Verwendung ist, ob die Festplatte oder SSD gerade beansprucht wird etc., installieren Sie das Paket indicator-multiload. Anschließend starten Sie das Indikator-Programm mit [Alt]+[F2] indicator-multiload. Das Programm zeigt nun im Panel in einer
kleinen Grafik die aktuelle CPU-Auslastung an. Mit einem Mausklick auf den Menüeintrag Einstellungen können Sie weitere Informationselemente einblenden.

Konfiguration der Systemlastanzeige im Panel
Konfiguration der Systemlastanzeige im Panel

Wetterbericht im Panel

Das Programm My Weather Indikator zeigt die aktuelle Außentemperatur und eine Wettervorschau an. Das Programm steht nicht als offizielles Ubuntu-Paket zur Verfügung. Sie müssen deswegen eine zusätzliche Paketquelle einrichten:

sudo add-apt-repository ppa:atareao/atareao
sudo apt update
sudo apt install my-weather-indicator

Danach starten Sie das Programm im Startmenü und führen die Konfiguration durch. Wenn Sie möchten, dass das Programm in Zukunft automatisch im Panel erscheint, müssen Sie die Optionen Automatisch Starten im Dialogblatt Allgemeine Einstellungen aktivieren.

Ausführlicher Wetterbericht durch den My-Weather-Indicator
Ausführlicher Wetterbericht durch den My-Weather-Indicator

Sondertasten der Tastatur konfigurieren

Wenn Sie die Caps-Lock-Taste deaktivieren oder die Windows-Taste wie die Strg-Taste behandeln möchten, starten Sie das Programm gnome-tweak-tool (bzw. das Optimierungswerkzeug im Startmenü). Dieses Programm fügt sich optisch nicht gut in den Ubuntu-Desktop ein und bietet unzählige Einstellungsmöglichkeiten, die für Ubuntu nicht relevant sind. Deswegen sollten Sie ausschließlich dessen Dialogblatt Eingabe verwenden. Dieses Dialogblatt ist trotz aller anderen Einschränkungen des Programms ausgesprochen nützlich!

Das Gnome Tweak Tool erfüllt Tastatursonderwünsche
Das Gnome Tweak Tool erfüllt Tastatursonderwünsche

Natural Scrolling mit dem Mausrad

»Natural Scrolling« bedeutet, dass bei Scroll-Bewegungen auf dem Touchpad der Fensterinhalt in die gleiche Richtung bewegt wird — so wie auf einem Smartphone. Wenn Sie ein Touchpad verwenden, finden Sie eine entsprechende Option im Modul Maus und Touchpad der Systemeinstellungen. Leider bleibt diese Option für die Maus wirkungslos. Damit auch traditionelle Mausanwender natürlich scrollen können, müssen Sie eine neue Konfigurationsdatei einrichten, z.B. mit dem Editor gedit:

sudo gedit /usr/share/X11/xorg.conf.d/20-natural-scrolling.conf

Diese Datei muss den folgenden Inhalt haben:

Section "InputClass"
        Identifier "Natural Scrolling"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Option "VertScrollDelta" "-1"
        Option "HorizScrollDelta" "-1"
        Option "DialDelta" "-1"
EndSection

Damit die Konfiguration wirksam wird, starten Sie Ihren Rechner neu oder führen nach dem Speichern aller offenen Dateien sudo service lightdm restart aus.

Mehr Touchpad-Optionen

Die Systemeinstellungen bieten zwar Möglichkeit, das Touchpad ganz zu deaktivieren; noch praktischer wäre aber ein Automatismus, der das Touchpad eines Notebooks immer dann deaktiviert, wenn gerade eine Maus angeschlossen
ist.

Abhilfe schafft das Paket touchpad-indicator. Es wird in einem Private Package Archive (PPA) zur Verfügung gestellt und kann nach der Installation unter dem Namen Touchpad-Anzeige im Unity-Menü gestartet werden.

sudo add-apt-repository ppa:atareao/atareao
sudo apt update
sudo apt install touchpad-indicator
Der Touchpad Indicator deaktiviert das Touchpad automatisch, sobald eine Maus angeschlossen ist
Der Touchpad Indicator deaktiviert das Touchpad automatisch, sobald eine Maus angeschlossen ist

Noch mehr Tipps

23. April 2016

Bash-Skript zur Aktualisierung einer Roundcube-Installation

Permalink My-IT-Brain

In diesem Artikel möchte ich euch ein kleines Bash-Skript vorstellen, mit dem die Aktualisierung von Roundcube gesteuert werden kann.

Es führt ein Backup der Roundcube-Installation inkl. der dazugehörigen MySQL-Datenbank durch, lädt das TAR-Archiv der neuen Version herunter und aktualisiert die existierende Version.

Das Skript habe ich auf GitHub Gist unter der GPLv3 veröffentlicht. Ihr dürft es also gern unter den Bedingungen der GPLv3 verwenden, ändern und in eigene Projekte einbauen. Es kann auch am Ende dieses Artikels als ZIP-Archiv heruntergeladen werden.

Um das Skript nutzen zu können, müssen die vier Variablen am Anfang des Skripts definiert werden:

# Variablen
INSTALL_PATH=" " # Pfad zur Roundcube-Installation
RC_DB_NAME=" " # Name der zur Roundcube-Installation gehörenden MySQL-Datenbank
PACKAGE_URL=" " # Download-URL der akutellen Roundcube-Version
MYSQL_ROOT_USER=" " # MySQL-Benutzer mit Root-Rechten auf der Roundcube-Datenbank

Anschließend muss das Skript noch mit dem Befehl chmod a+x updating_roundcube.sh ausführbar gemacht werden.

Nun kann das Skript zur Aktualisierung der Roundcube-Installation ausgeführt werden. Getestet habe ich das Skript heute, um meine Roundcube-Installation von Version 1.0.8 auf Version 1.0.9 zu aktualisieren.

Downloads:

2016-04-23_updating_roundcube.zip

KDE Plasma, Arch und andere Entwicklungen auf meinem Schreibtisch

Permalink (Mer)Curius

Das Verhältnis von KDE und stabilen Distributionen ist momentan ein schwieriges Thema. Dies liegt weder an KDE, noch an dem Entwicklungsmodell von stabilen Distributionen, sondern an dem aktuellen Entwicklungsstand der KDE Software. Stabile Distributionen setzen ein gewisses Entwicklungsstadium der enthaltenen Software voraus. Die KDE Software Compilation hatte dieses Stadium 2013/14 erreicht. Es kamen zwar noch neue Funktionen hinzu, aber die wesentlichen Komponenten waren ausgereift und die neuen Funktionen waren zu Gunsten einer erhöhten Stabilität, die LTS-Distribution bieten, vernachlässigbar. Man konnte guten Gewissens auf den enthaltenen Versionsständen verharren. KDE Plasma 5 und die auf KF5 portierten Programme haben dieses Stadium noch nicht erreicht. Jede neue Version bringt essenzielle Fehlerbehebungen und neue Funktionen, auf die man unmöglich jahrelang verzichten kann.

In den letzten 2 Jahren habe ich mich persönlich der Entwicklung des Linux-Desktops weitestgehend verweigert. Auf meinen Systemen lief fast durchgehend openSUSE 13.2 und das höchst zufriedenstellend. KDE Plasma 5 landete bestenfalls in einer virtuellen Maschine. Es gab und gibt eigentlich keinen Grund eine (noch mit Sicherheitsupdates versorgte) Distributionsversion zu aktualisieren. Auf dem Linux/KDE Desktop wurden seit Jahren keine Funktionen mehr eingeführt, die mein persönliches Nutzungserlebnis revolutionieren würden und alte Distributionsversionen sind zwar nicht unbedingt fehlerfreier, aber man hat gelernt mit den vorhandenen Fehlern zu arbeiten.

Gelegentlich bekommt man aber neue Hardware auf den Schreibtisch und ein Kernel 3.16 kann sich dann leider als zu alt herausstellen. Mein erster Gedanke war über OBS einen aktuelleren Kernel, z.B. aus 42.1 Leap, nachzuinstallieren und eventuell auch noch Mesa "zu Fuß" zu aktualisieren. Diese Überlegungen wären zwar sicherlich umsetzbar gewesen, aber ich verwarf sie dann doch. Ich wollte nie zu den Anwendern gehören, die aus einer puren Verweigerungshaltung heraus alte Versionen bis zum Erbrechen nutzen und bei jeder Neuentwicklung "Satan!" rufen. Ein längeres Festhalten an KDE SC 4 und Versionsständen aus dem Jahr 2013/14 schien mich gefährlich nahe in diesen Bereich zu führen.

Distributionen: OpenSUSE, Kubuntu, Arch Linux? Arch!

Grundsätzlich stand von Anfang an fest, dass KDE Plasma als Desktopumgebung für mich nicht verhandelbar ist. Prinzipiell präferiere ich zudem LTS-Distributionen, aber diese setzen voraus, dass man mit den ausgelieferten Versionsständen zufrieden ist und über viele Monate/Jahre damit arbeiten kann. KDE SC 4.14 erfüllte diesen Zweck für mich seit 2014, aber Plasma 5 ist auch nach fast zwei Jahren Entwicklung meiner Meinung nach noch im Beta-Stadium und nicht ausgereift genug. Neue Versionen sollten deshalb ohne Klimmzüge auf mein System gelangen.

Mit dieser Grundentscheidung begann ein Distributions-Hopping von etwas größeren Ausmaßen, das eigentlich nicht geplant war. Angefangen hat es mit der naheliegenden Entscheidung openSUSE 42.1 Leap zu installieren. OpenSUSE hat mit Leap eine Aktualisierungsrichtlinie etabliert, die meinem persönlichen Nutzungsverhalten und dem Entwicklungsstatus von KDE sehr entgegen kommt. Das Basis-Betriebssystem besteht aus SLE-Paketen, die in ihren Versionsständen absolut stabil gehalten werden. Die Desktopumgebung entstammt dem Tumbleweed-Zweig und wird regelmäßig aktualisiert. Dadurch kommt man zeitnah in den Genuss der aktuellen KDE Plasma & Applications-Versionen. Leider basiert Leap auf dem Kernel 4.1 und dieser hat auf der vorliegenden Hardware noch nie gut funktioniert. Das fragliche Gerät booten manchmal einfach nicht richtig bis zum Ende. Kubuntu 16.04, soeben frisch veröffentlicht und mit drei Jahren LTS-Support ist leider keine Alternative. Zwar ist Kubuntu in einem erfreulich guten Zustand und es ist schön zu sehen, dass nach den Umbrüchen in den vergangenen 6 Monaten eine benutzbare LTS mit drei Jahren Support erschienen ist, aber mit Kubuntu 16.04 ist man bei Plasma 5.5 und den KDE Applications 15.12 festgenagelt.

Distributionen mit einem rollenden Releasemodell entsprechen in der Regel nicht meinem persönlichen Nutzungsprofil. Damit soll keineswegs behauptet werden, dass sie fehleranfälliger wären oder dass man mit ihnen nicht viele Jahre problemfrei arbeiten kann. Das entspricht nicht unbedingt den Tatsachen - aber sie machen definitiv mehr Arbeit. Arbeit in dem Sinne, dass Updates gründlich geprüft werden müssen und nicht einfach durchgewunken werden können.

Unter den aktuellen Bedingungen war eine Rolling Release-Distribution aber die logische Konsequenz und frei nach dem Motto "Wenn schon, dann richtig!" musste es eben Arch Linux sein.

Arch: Linux ohne Airbag

Arch Linux ist nicht grundsätzlich neu für mich, ich hatte es bereits längere Zeit im Einsatz, aber das war vor vielen Jahren. Damals gab es noch eine zentrale Konfigurationsdatei und eine Installationsroutine. Aber das ist Schnee von gestern. Die Installation ist - auch dank der prima Anleitung - schnell erledigt, die Konfiguration nimmt dafür etwas mehr Zeit in Anspruch.

Arch verwendet keine grundsätzlich anderen Technologien als die meisten anderen Mainstream-Distributionen. Das ist meiner Meinung nach ein wesentlicher Unterschied zu anderen "Nischen-Distributionen" wie z.B. Slackware oder Gentoo. Linux-Kernel, systemd, udev, Network Manager - alles Software "von der Stange". Es wird einem aber fast keine Konfigurationsarbeit abgenommen. Arch zwingt somit auch langjährige Linux-Nutzer mal wieder zum tiefen Blick ins Handbuch zu werfen und bereits seit längerem etablierte Technologien genauer anzuschauen. Das ist eine prima Gelegenheit sich Wissen anzueignen, das man auch bei den anderen Distributionen anwenden kann. Systemd, Gummiboot systemd-boot, chroot - ein paar Tage Arch und man ist in diesen Themen deutlich geübter.

Homogenitätstest: Ohne KDElibs4 aber nicht ohne Qt4

Wenn man bei Arch Linux die Finger von den Metapaketen lässt, kann man eine ziemlich individuelle Paketzusammenstellung einrichten. Schlank ist bei KDE natürlich die falsche Bezeichnung. Die Gelegenheit galt es zu nutzen, um mal zu schauen, wie weit KDE mit der Portierung seiner Softwaresammlung auf KF5 ist. Das Fazit lautet: Erstaunlich weit.

Homogene Softwarezusammenstellungen sind meiner Ansicht nach immer zu bevorzugen. Software arbeitet dann einfach besser zusammen, Dialoge sind einheitlich gestaltet und die GUI besitzt einen ähnlichen Aufbau. Natürlich gibt es immer Software, die auf anderen Toolkits basiert und auf die man nicht verzichten kann. Nach vielen Jahren im KDE-Ökosystem sind das bei mir allerdings nur noch vereinzelte Programme.

Traditionelle, auf kdelibs4 basierende, Programme sind inzwischen die Minderheit. In meinem kleinen Experiment konnte ich gänzlich darauf verzichten. Lediglich Okular und Krusader sind noch nicht portiert. Hier gibt es aber Vorabversionen im AUR, die sich problemlos nutzen lassen.

Ein vollständiger Verzicht auf Qt4 ist hingegen noch nicht möglich. Nach wie vor basieren so wichtige Programme wie VLC oder KeePassX darauf.

KDE Plasma: Alter Desktop, neue Technologien

kde plasma 56

KDE Plasma und die KDE Applications laufen inzwischen hinreichend stabil - kein Vergleich zu den Erfahrungen vor einem Jahr. Abstürze oder gröbere Fehler sind mir in den vergangenen Tagen keine begegnet. Neue Funktionen oder richtige Wow!-Momente gab es aber auch keine. KDE Plasma und viele Programme gleichen im Funktionsumfang im Wesentlichen ihren KDE SC 4-Pendants - nur halt eben auf einer neuen technologischen Basis. Das gelungene Breeze-Design täuscht darüber hinweg, das am Bedienkonzept kaum etwas geändert wurde.

So positiv dies manchmal auch sein mag, einige Programme könnten eine grundsätzliche Überarbeitung dringend mal vertragen. Kontact ist ein zutiefst gruseliges Programm mit einem Einstellungsurwald, der sich nur eingeweihten erschließt. Es bleibt zu hoffen, dass hier im Laufe der Entwicklung der Generation 5 noch einige behutsame Veränderungen vorgenommen werden.

Fazit

Arch bleibt erst einmal auf dem einen Gerät und der aktuelle Entwicklungsstand von KDE Plasma 5 ist ein kleines Licht am Ende des Tunnels. Das Supportende von openSUSE 13.2 Anfang kommenden Jahres hat damit etwas Schrecken verloren. Einen Komplettumstieg auf Arch kann ich mir aber nicht vorstellen. In einem etwas gereiften Entwicklungsstadium werde ich mich wieder auf openSUSE oder Kubuntu einfrieren und die weitere Entwicklung aus interessierter Distanz beobachten. Bis dahin erfreue ich mich an jeder neuen Version - heute kamen gerade die Applications 16.04 rein. Akregator hat einen ordentlich Sprung hingelegt, ein Rückschritt zu 15.12 wäre unvorstellbar!

Kurztipp: Fehlende deutsche Übersetzung von Evolution 3.18

Permalink Glasens Blog

Ich benutze schon seit Jahren Evolution als E-Mail bzw. Groupware-Client. Leider fehlt in Ubuntu 16.04 seit einigen Wochen die deutsche Übersetzung des Programms.

Da eine Besserung im Moment noch nicht in Sicht ist, habe ich kurzerhand diese händisch „nachgerüstet“.

Ich habe aus dem GNOME3-Staging-PPA das „evolution-common“-Paket für Wily heruntergeladen und daraus die Datei „evolution-3.18.mo“ extrahiert und danach händisch nach „/usr/share/locale-langpack/de/LC_MESSAGES“ kopiert. Danach musste ich nur noch die Dateirechte anpassen.

Danach ist Evolution wieder auf Deutsch.

Automatisch Garmin Forerunner 305 auslesen

Permalink Linpert Blog

Ich habe noch einen alten Garmin Forerunner 305. Bislang konnte das Garmin Communicator Plugin von Andreas Diesner die Daten an die Garmin Connect Homepage übertragen. Dies funktioniert jetzt nicht mehr, da Garmin es für alle deaktivierte und es nur noch das Modern Theme existiert.

Meine Lösung (getestet mit Ubuntu 14.04)
Zuerst die benötigten Pakete installieren:
sudo apt-get install libxml2-utils libsaxonb-java garmin-forerunner-tools

Dann die Dateien von meinem Github Repository https://github.com/Schwarzkopf/garmin-dev herunterladen und in die richtigen Verzeichnisse verschieben.

sudo mv gmn2tcx /usr/local/bin/
sudo mv gmn2tcx.xslt /usr/local/bin/
sudo mv tcx.xsd /usr/local/bin/
sudo mv read_garmin_305 /usr/local/bin/
sudo mv 70-usb-custom.rules /etc/udev/rules.d/

Zum Schluss das Script read_garmin_305 bearbeiten. Es muss mindestens die Variable USER angepasst werden.

Funktionsweise
Das Anstecken des Garmin Forerunners erkennt udev und ruft das im der 70-usb-custom.rules angegebene Script /usr/local/bin/read_garmin_305 auf. Dieses liest die Daten aus der Pulsuhr und speichert sie im GARMIN_PATH ab. Das find Kommando such alle Dateien mit der Endung .gmn und die in den letzten 10 Minuten angelegt worden sind und konvertiert sie mittels XSLT in .tcx Dateien. Die .txc Dateien können jetzt manuell hochgeladen werden.

22. April 2016

Die LTS-Frage

Permalink Michael Koflers Blog

LTS steht für Long Time Support, bezeichnet also eine mehrjährige Update-Garantie für die wichtigsten Pakete von Ubuntu. Ubuntu 16.04 ist eine LTS-Distribution. Aber für welche Distributionen gelten welche Wartungszeiträume? Und für welche Pakete?

Update: Ein Leser (vielen Dank!) hat mich darauf aufmerksam gemacht, dass der Wartungsstatus der Pakete ganz einfach mit ubuntu-support-status ermittelt werden kann. Sorry, dieses Kommando habe ich zehn Jahre übersehen und auch mit diversen Google-Suchen nicht gefunden. Ich habe den Artikel um einen entsprechenden Abschnitt erweitert.

Zweites Update: Die LTS-Frage wird mittlerweile auch in der ubuntu-devel-Diskussionsliste erörtert. Dabei ergeben sich neue Aspekte:

  • Marc Deslauriers von Canonical schreibt, dass die Supported-Tags der Pakete seit Jahren nicht mehr aktualisiert wurden, dass ubuntu-support-status obsolet (deprecated) ist und dass das Paket aus Ubuntu entfernt werden soll. Es hat auch gleich einen entsprechenden Bug-Bericht verfasst.
  • Der Ubuntu-Entwickler Stéphane Graber widerspricht und gibt an, die Supported-Tags seien sehr wohl aktuell. Außerdem schreibt er, das es main-Pakete gibt, die weniger als 5 Jahre unterstützt werden, so wie es universe/multiverse-Pakete gibt, die über die vollen fünf Jahre gewartet werden.

  • Dem widerspricht wiederum der Ubuntu-Entwickler Steve Langasek: Alle Pakete in main werden ohne Ausnahmen fünf Jahre unterstützt. Ob und wie lange universe/multiverse-Pakete gewartet werden, hängt von den jeweiligen Maintainern ab, es gibt aber keinerlei Garantien dafür — daher offiziell unsupported.

Unterschiedliche LTS-Wartungszeiträume je nach Distribution

Die Grundregel lautet: Der LTS-Zeitraum von fünf Jahren gilt nur für Ubuntu, Ubuntu Server, Ubuntu Core und Ubuntu Kylin (also den chinesischen Ubuntu-Ableger). Für alle anderen Ubuntu-Variante gilt ein LTS-Zeitraum von drei Jahren. Die Mythbuntu-Webseite weist allerdings darauf hin, das Mythbuntu 16.04 nur bis kurz nach dem Release von Mythbuntu 18.04 unterstützt wird.

Distribution      Support-Zeitraum
----------------  -----------------
Ubuntu            5 Jahre
Ubuntu Server     5 Jahre
Ubuntu Kylin      5 Jahre
Ubuntu Gnome      3 Jahre
Ubuntu MATE       3 Jahre
Ubuntu Studio     3 Jahre
Kubuntu           3 Jahre
Lubuntu           3 Jahre
Xubuntu           3 Jahre
Mythbuntu         2 Jahre

Was ist mit Edubuntu? Auf der Edubuntu-Webseite ist die Version 16.04 ein Non-Topic. Das liegt daran, dass die bisherigen Maintainer zurückgetreten sind und nur noch die Version 14.04 betreuen. In welcher Form bzw. durch welchen Maintainer Edubuntu weitergeführt wird, muss sich erst zeigen. Das ist auch der Grund, weswegen Edubuntu nicht mehr in der Liste der offiziellen Ubuntu-Varianten aufgeführt wird.

Welche Pakete sind LTS-Pakete? (alias »Die komplizierte Lösung«)

Eigentlich lässt sich diese Frage leicht beantworten: Alle Pakete aus der Ubuntu-main-Paketquelle.

Wenn Sie aber Ubuntu-Installationen (speziell bei Servern) administrieren, fällt die konkrete Antwort viel schwerer: Oft sind nämlich auch Ubuntu-universe- oder Ubuntu-multiverse-Pakete installiert, für die es keine LTS-Garantien gibt. Oft sind außerdem zusätzliche Paketquellen eingerichtet (Chrome, Spotify, MariaDB, PPAs etc.). Für welche der installierten Pakete gilt nun die LTS-Update-Garantie, für welche nicht?

Meines Wissens bieten weder dpkg noch apt-cache noch aptitude geeignete Filtermöglichkeiten, um diese Frage unkompliziert zu beantworten. Ich habe daher das bash-Script packagelist verfasst, das eine Schleife über alle installierten Pakete ausführt und dann für jedes Paket mit apt-cache madison herausfindet, woher dieses Paket stammt. (apt-cache madison kann mehrere Ergebnisse liefern. Das Script wertet nur die erste entsprechende Zeile aus, was für meine Zwecke ausreichend ist.)

#!/bin/bash
# Script packagelist

# Schleife über alle installierten Pakete
for pkg in $(dpkg --get-selections | grep -v deinstall | cut -f1); do 
  # erste Zeile von apt-cache madison, die nicht Sources beschreibt
  data=$(apt-cache madison $pkg | grep -v Sources | head -1)

  # pkgsrc (enthält package URL plus z.B. xenial/main)
  pkgsrc=$(echo $data | cut -d'|' -f3)
  url=$(echo $pkgsrc  | cut -d' ' -f1)
  repo=$(echo $pkgsrc | cut -d' ' -f2)

  # Daten für Ausgabe sammeln
  pkgs="$pkgs\n$pkg $repo $url"
  repos="$repos\n$repo $url"
done

# Liste aller Pakete samt Quelle in Spalten ausgeben
echo -e $pkgs | column -t
echo
# Liste aller Repos mit Paketanzahl
echo -e $repos | tail -n +2 | sort | uniq -c | sort -n

Das vielfache Ausführen von apt-cache madison kostet recht viel Zeit, bei einer Desktop-Installation je nach Hardware ca. eine Minute. Deswegen ist es sinnvoll, die Ausgabe gleich in eine Textdatei umzuleiten, damit diese dann bei Bedarf weiter analysiert werden kann, z.B. mit grep.

Wenn Sie das Script auf einer frischen Ubuntu-Desktop-Installation ausführen, sieht das Ergebnis z.B. so aus:

./packagelist > pkg.txt
cat pkg.txt

a11y-profile-manager-indicator  xenial/main  http://at.archive.ubuntu.com/ubuntu
account-plugin-facebook         xenial/main  http://at.archive.ubuntu.com/ubuntu
account-plugin-flickr           xenial/main  http://at.archive.ubuntu.com/ubuntu
...
zenity-common                   xenial/main  http://at.archive.ubuntu.com/ubuntu
zip                             xenial/main  http://at.archive.ubuntu.com/ubuntu
zlib1g:amd64                    xenial/main  http://at.archive.ubuntu.com/ubuntu

      3 xenial/multiverse http://at.archive.ubuntu.com/ubuntu
   1727 xenial/main http://at.archive.ubuntu.com/ubuntu

Es gibt also nur drei multiverse-Pakete:

grep multiverse pkg.txt 

virtualbox-guest-dkms      xenial/multiverse  http://at.archive.ubuntu.com/ubuntu
virtualbox-guest-utils     xenial/multiverse  http://at.archive.ubuntu.com/ubuntu
virtualbox-guest-x11       xenial/multiverse  http://at.archive.ubuntu.com/ubuntu

Hier ist das Ergebnis einer weiteren Desktop-Installation, diesmal mit zusätzlichen Paketquellen:

cat pkg.txt

...
      1 stable/non-free http://repository.spotify.com
      5 xenial/multiverse http://at.archive.ubuntu.com/ubuntu
      1 xenial/main http://ppa.launchpad.net/webupd8team/java/ubuntu
    134 xenial/universe http://at.archive.ubuntu.com/ubuntu
   1820 xenial/main http://at.archive.ubuntu.com/ubuntu

Hier ist das Ergebnis einer Server-Installation:

cat pkg.txt

...
     46 xenial/universe http://de.archive.ubuntu.com/ubuntu
    641 xenial/main http://de.archive.ubuntu.com/ubuntu

Die eingangs gestellte Frage, welche Pakete (nicht) LTS-Status haben, beantwortet auch mein Script nicht direkt. Die mit packagelist erstellte Liste bietet aber eine gute Möglichkeit, gezielt nach den Paketen zu suchen, die nicht aus der Ubuntu-main-Quelle stammen. Dabei müssen Sie aber unbedingt auch die Package-URL mitberücksichtigen. Es gibt Paketquellen, die xenial/main verwenden, obwohl sie nicht von Ubuntu/Canonical stammen.

Das folgende Listing ist auf einem simplen LAMP-Server entstanden. Es zeigt sich, dass durchaus wichtige Pakete wie fail2ban keinen LTS-Status haben.

grep universe pkg.txt 

dialog             xenial/universe  http://de.archive.ubuntu.com/ubuntu
fail2ban           xenial/universe  http://de.archive.ubuntu.com/ubuntu
joe                xenial/universe  http://de.archive.ubuntu.com/ubuntu
letsencrypt        xenial/universe  http://de.archive.ubuntu.com/ubuntu
mailutils          xenial/universe  http://de.archive.ubuntu.com/ubuntu
mailutils-common   xenial/universe  http://de.archive.ubuntu.com/ubuntu
php7.0-zip         xenial/universe  http://de.archive.ubuntu.com/ubuntu
...

Zuletzt noch die Ergebnisse eines anderen Servers, der noch unter Ubuntu 14.04 läuft:

cat pkg.txt
      1 trusty-backports/main   http://mirror.hetzner.de/ubuntu/packages/
      8 trusty-updates/universe http://mirror.hetzner.de/ubuntu/packages/
      9 trusty/main             http://mirror.netcologne.de/mariadb/repo/5.5/ubuntu/
     16 trusty/universe         http://mirror.hetzner.de/ubuntu/packages/
    270 trusty-updates/main     http://mirror.hetzner.de/ubuntu/packages/
    276 trusty/main             http://mirror.hetzner.de/ubuntu/packages/

Die Liste aller Nicht-LTS-Pakete kann in diesem Fall so ermittelt werden:

egrep "universe|backports|mariadb/repo/5.5" pkg.txt

cpufrequtils              trusty/universe          ...hetzner.de/ubuntu/packages/
fail2ban                  trusty/universe          ...hetzner.de/ubuntu/packages/
htop                      trusty/universe          ...hetzner.de/ubuntu/packages/
joe                       trusty/universe          ...hetzner.de/ubuntu/packages/
libcgmanager0:amd64       trusty-backports/main    ...hetzner.de/ubuntu/packages/
libcpufreq0               trusty/universe          ...hetzner.de/ubuntu/packages/
libgsasl7                 trusty/universe          ...hetzner.de/ubuntu/packages/
libkyotocabinet16:amd64   trusty/universe          ...hetzner.de/ubuntu/packages/
libmailutils4             trusty/universe          ...hetzner.de/ubuntu/packages/
libmariadbclient18        trusty/main              ...netcologne.de/mariadb/repo/5.5/ubuntu/
libmysqlclient18          trusty/main              ...netcologne.de/mariadb/repo/5.5/ubuntu/
libntlm0:amd64            trusty/universe          ...hetzner.de/ubuntu/packages/
libphp-phpmailer          trusty-updates/universe  ...hetzner.de/ubuntu/packages/
libphp-snoopy             trusty/universe          ...hetzner.de/ubuntu/packages/
libzend-framework-php     trusty/universe          ...hetzner.de/ubuntu/packages/
mailutils                 trusty/universe          ...hetzner.de/ubuntu/packages/
mailutils-common          trusty/universe          ...hetzner.de/ubuntu/packages/
makepasswd                trusty/universe          ...hetzner.de/ubuntu/packages/
mariadb-client-5.5        trusty/main              ...netcologne.de/mariadb/repo/5.5/ubuntu/
mariadb-client-core-5.5   trusty/main              ...netcologne.de/mariadb/repo/5.5/ubuntu/
mariadb-common            trusty/main              ...netcologne.de/mariadb/repo/5.5/ubuntu/
mariadb-server            trusty/main              ...netcologne.de/mariadb/repo/5.5/ubuntu/
mariadb-server-5.5        trusty/main              ...netcologne.de/mariadb/repo/5.5/ubuntu/
mariadb-server-core-5.5   trusty/main              ...netcologne.de/mariadb/repo/5.5/ubuntu/
mysql-common              trusty/main              ...netcologne.de/mariadb/repo/5.5/ubuntu/
php5-imagick              trusty/universe          ...hetzner.de/ubuntu/packages/
python-chardet-whl        trusty-updates/universe  ...hetzner.de/ubuntu/packages/
python-colorama           trusty-updates/universe  ...hetzner.de/ubuntu/packages/
python-colorama-whl       trusty-updates/universe  ...hetzner.de/ubuntu/packages/
python-distlib            trusty-updates/universe  ...hetzner.de/ubuntu/packages/
python-distlib-whl        trusty-updates/universe  ...hetzner.de/ubuntu/packages/
python-pip                trusty-updates/universe  ...hetzner.de/ubuntu/packages/
python-pip-whl            trusty-updates/universe  ...hetzner.de/ubuntu/packages/
smem                      trusty/universe          ...hetzner.de/ubuntu/packages/

Welche Pakete sind LTS-Pakete? (Update alias »Die einfache Lösung«)

Das Kommando, das ich 10 Jahre übersehen habe, lautet ubuntu-support-status. Wird es ohne weitere Parameter ausgeführt, liefert es eine wunderbare Statistik, wie viel Prozent der Pakete wie lange gewartet werden. (Alle folgenden Ergebnisse gelten für einen Ubuntu-16.04-Server des Autors.)

ubuntu-support-status

  Sie haben 636 Pakete (91.6%), die bis April 2021 (5y) unterstützt werden
  Sie haben 9 Pakete (1.3%), die bis April 2019 (3y) unterstützt werden
  Sie haben 11 Pakete (1.6%), die bis Januar 2017 (9m) unterstützt werden
  Sie haben 7 Pakete (1.0%), die nicht/nicht mehr heruntergeladen werden können
  Sie haben 31 nicht unterstützte Pakete (4.5%)

Wenn Sie wissen wollen, welche Pakete noch wie lange gewartet werden, führen Sie ubuntu-supported-status --show-supported aus:

ubuntu-support-status --show-supported

  Unterstützt bis April 2019 (3y):
  dialog hddtemp libdbd-mysql-perl libterm-readkey-perl libzip4 
  lm-sensors python3-numpy python3-psutil watershed 

  Unterstützt bis April 2021 (5y):
  accountsservice acl acpid adduser apache2 apache2-bin apache2-data 
  apache2-utils apparmor apport apport-symptoms apt apt-transport-https 
  ...
  xml-core xz-utils zerofree zlib1g 

  Unterstützt bis Januar 2017 (9m):
  fonts-lyx libjs-jquery-ui liblsan0 libtsan0 php-xml 
  python-matplotlib-data python3-cycler python3-dateutil 
  python3-matplotlib python3-pyinotify ttf-bitstream-vera 

Umgekehrt liefert ubuntu-support-status --show-unsupported eine Liste aller Pakete, für die der Wartungszeitraum unbekannt ist oder die gar nicht mehr zur Verfügung stehen:

ubuntu-support-status --show-unsupported
  Nicht mehr herunterzuladen:
  libmysqlclient18 linux-headers-4.4.0-18 
  linux-headers-4.4.0-18-generic linux-image-4.4.0-18-generic 
  linux-image-extra-4.4.0-18-generic php5-common php5-gd 

  Nicht unterstützt: 
  fail2ban glances joe letsencrypt libgsasl7 libkyotocabinet16v5 
  libmailutils4 libmilter1.0.1 libntlm0 mailutils mailutils-common 
  ...
  spamass-milter 

Wie viele Pakete befinden sich in welcher Paketquelle?

In diesem Zusammenhang ist manchmal auch interessant, wie viele Pakete eine bestimmte Paketquelle zur Verfügung stellt. Diese Informationen liefert das folgende Kommando (Quelle: askubuntu). Im folgenden Listing mit den Ergebnissen einer Ubuntu-16.04-Testinstallation mit einigen zusätzlichen Paketquellen habe ich alle 0-Ergebnisse entfernt.

for f in /var/lib/apt/lists/*Packages; do 
  printf '%5d %s\n' $(grep '^Package: ' "$f" | wc -l) ${f##*/}
done | sort -n

      3 dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages
      3 repository.spotify.com_dists_stable_non-free_binary-i386_Packages
      4 repository.spotify.com_dists_stable_non-free_binary-amd64_Packages
      9 archive.canonical.com_ubuntu_dists_xenial_partner_binary-amd64_Packages
     10 archive.canonical.com_ubuntu_dists_xenial_partner_binary-i386_Packages
     12 ppa.launchpad.net_webupd8team_java_ubuntu_dists_xenial_main_binary-amd64_Packages
     12 ppa.launchpad.net_webupd8team_java_ubuntu_dists_xenial_main_binary-i386_Packages
     23 ppa.launchpad.net_atareao_atareao_ubuntu_dists_xenial_main_binary-amd64_Packages
     23 ppa.launchpad.net_atareao_atareao_ubuntu_dists_xenial_main_binary-i386_Packages
     45 at.archive.ubuntu.com_ubuntu_dists_xenial_restricted_binary-amd64_Packages
     46 at.archive.ubuntu.com_ubuntu_dists_xenial_restricted_binary-i386_Packages
    758 at.archive.ubuntu.com_ubuntu_dists_xenial_multiverse_binary-i386_Packages
    782 at.archive.ubuntu.com_ubuntu_dists_xenial_multiverse_binary-amd64_Packages
   7284 at.archive.ubuntu.com_ubuntu_dists_xenial_main_binary-i386_Packages
   7322 at.archive.ubuntu.com_ubuntu_dists_xenial_main_binary-amd64_Packages
  45574 at.archive.ubuntu.com_ubuntu_dists_xenial_universe_binary-i386_Packages
  45688 at.archive.ubuntu.com_ubuntu_dists_xenial_universe_binary-amd64_Packages

Die LTS-Frage bei heise.de

heise.de hat sich auch mit der LTS-Frage beschäftigt und weist ebenfalls auf die Problematik hin, dass es längerfristig nur Updates für main-Pakete gibt. Die Empfehlung, nur main-Pakete zu installieren, ist in der Praxis freilich schwer zu befolgen. Viele wichtige Pakete sind nicht in main. (Bei RHEL/CentOS ist es übrigens ähnlich, wenn auch nicht ganz so eklatant: Auch dort aktivieren viele die EPEL-Paketquelle für Zusatzpakete …)

heise.de — Lauter Sicherheitslücken trotz Langzeitpflege

Neuer Heimserver ist im Betrieb

Permalink Erfahrungen mit Ubuntu

Server im Keller
Am Montag habe ich mir mal die
Zeit genommen und einen meiner
alten Rechner (mit Ubuntu 10.04) aussortiert und als neuen
Server für zuhause bestimmt.

Als System habe ich mich für
Ubuntu 14.04.4 Server entschieden,
und wollte damit die letzten Tage
bis zum 16.04 nicht mehr abwarten.
Aber ich denke, dass ich mit dieser
Version ein sehr zuverlässiges
Ubuntu habe, das auch noch lange
mit Sicherheitsupdates versorgt wird.

Als Software habe ich folgende Pakete installiert:

apt-get install joe mc htop screen libsasl2-modules postfix sasl2-bin fetchmail procmail dovecot-core dovecot-imapd ddclient ejabberd davical minidlna

Der Server übernimmt nun folgende Dienste:

eMail Server (Postfix, Dovecot, Fetchmail)
Jabber Server (ejabberd)
Kalenderserver (davical)
DLNA Server (minidlna)

Das Programm ddclient sorgt dafür, dass der Rechner auch von außerhalb erreichbar bleibt. Die Einstellungsdateien von Postfix konnte ich vom alten Ubuntu 12.04 uneingeschränkt übernehmen.

21. April 2016

Firefox: Mozilla und Canonical verlängern Ubuntu-Partnerschaft

Permalink Sören Hentzschel

Mozilla und Canonical haben heute die Verlängerung ihrer Partnerschaft angekündigt. Damit wird Firefox auch in Zukunft der Standard-Browser von Ubuntu sein. Außerdem wird Mozilla ab diesem Jahr Firefox-Versionen im neuen Snap-Format ausliefern.

Canonical hat Ubuntu 16.04 LTS Xenial Xerus veröffentlicht. Firefox bleibt auch nach über zehn Jahren weiterhin der Standard-Browser der beliebten Linux-Distribution. Dies haben Mozilla und Canonical heute bekannt gegeben.

Mozilla möchte außerdem in diesem Jahr damit beginnen, Firefox im neuen Paketformat Snap für Nutzer von Ubuntu auszuliefern.

„Ubuntu version 16.04 will include the introduction of the snap infrastructure. With the snap format, we will be able to continually optimize Firefox on Ubuntu. Like our rapid engineering release cycle, snap format will allow us to provide Linux users the most up-to-date features, in particular security patches, even after major Operating System ship dates.

Previously, a static version of Firefox would ship with each new Operating System version for the lifecycle of that OS. With the snap format, new features can be released to users of older OS versions too. Later this year, we will offer Firefox in snap format making it easier to push the browser directly to users rather than relying on an intermediary to accept updates before they reach users.“

 

Der Beitrag Firefox: Mozilla und Canonical verlängern Ubuntu-Partnerschaft erschien zuerst auf soeren-hentzschel.at.

Standardgateway unter Linux ermitteln

Permalink vNotes

Wenn man unter Linux-Distributionen Netzwerke konfiguriert oder administriert, möchte man oftmals wissen, an welchen Router bzw. „Standardgateway“ der Rechner angebunden ist. Das Standardgateway ist üblicherweise ein Netzwerkgerät, an das die Netzwerkteilnehmer Pakete für andere Subnetze senden. Heutzutage sind das meist Router. Während in Heimnetzwerken oft nur ein Router arbeitet, sind es bei größeren Netzwerken nicht selten mehrere. Andere Betriebssysteme zeigen das Standardgateway beispielsweise unter dem Befehl ipconfig an, unter Linux gibt es bekanntermaßen ähnliche und spezielle Wege, die zum Ziel führen.

Bei statisch konfigurierten Netzwerken ist das Auslesen der Gatewayadresse denkbar einfach: hier muss nur die Konfigurationsdatei angezeigt werden. Unter Debian 8 ist diese z.B. mittels cat /etc/network/interfaces erreichbar. Bei vollständig mit DHCP konfigurierten Netzwerken entfällt allerdings die Möglichkeit.

Hier kann allerdings auf das Kommando

ip route

(ip ist Teil von iproute2) zurückgegriffen werden. Wenn man diesen Befehl ausführt, wird z.B. folgendes ausgegeben:

default via 10.0.0.1 dev eth0  proto static  metric 100 
10.0.0.0/24 dev eth0  proto kernel  scope link  src 10.0.0.2  metric 100

Die Angabe „default via …“ gibt hierbei an, welches das Standardgateway ist.

Befehlssammlung

  • ip route – für alle gängigen Netzwerke
  • route -n – ähnlich wie ip route
  • traceroute <IP> – alternative Möglichkeit zur Ermittlung

Weiterführende Links und Quellen

Ubuntu 16.04

Permalink Michael Koflers Blog

Ubuntu 16.04 LTS (Long Term Support) ist fertig! Dieser Beitrag fasst die wichtigsten Neuerungen zusammen. Der Beitrag ist eine aktualisierte und ergänzte Version meiner früheren Veröffentlichung Erste Vorschau auf Ubuntu 16.04.

Dock am unteren Bildschirmrand

Das Dock war bisher auf den linken Bildschirmrand fixiert. In Ubuntu 16.04 kann es nun auch an den unteren Bildschirmrand verschoben werden. (Persönlich war ich immer der Meinung, dass die Anordnung links vernünftig ist. Aber mehr Wahlmöglichkeit kann nicht schaden.)

Unbegreiflicherweise gibt es für diese Neuerung keine entsprechende Option in den Systemeinstellungen. Die Konfiguration muss daher per Kommando oder mit dem Unity Tweak Tool erfolgen:

gsettings set com.canonical.Unity.Launcher launcher-position Bottom

Rückgängig mit:

gsettings set com.canonical.Unity.Launcher launcher-position Left

Eine Anordnung am rechten Rand ist momentan nicht vorgesehen.

Das Dock am unteren Bildschirmrand
Das Dock am unteren Bildschirmrand

Keine Werbung mehr im Startmenü

Erfreulich ist die Entscheidung der Ubuntu-Entwickler, auf die unsägliche Einblendung von Werbung im Startmenü (»Online-Suchergebnisse«) standardmäßig zu verzichten.

Web-Apps ade

Wie ich in meiner Vorstellung von Ubuntu 15.10 schon geschrieben haben, werden Web-Apps offensichtlich nicht mehr gepflegt. Standardmäßig ist nur noch die Amazon-App installiert und im Dock präsent (wahrscheinlich aufgrund eines Werbevertrags). Die Release Notes schweigen sich zu diesem Thema aus, das »offizielle« Ende der Web-Apps steht also noch aus. Vielleicht braucht man die Web-Apps ja auch für das Ubuntu Phone und die Web-Apps werden dort weitergeführt?

Wie auch immer: Auf dem Ubuntu-Desktop haben mich Web-Apps nie überzeugt, Ihr Verschwinden bereitet mir keine Trauer …

Die Gnome-App »Software« ersetzt das Ubuntu Software Center

Eine weitere Eigenentwicklung von Ubuntu ist definitiv verschwunden: Anstelle des Ubuntu Software Center ist nun »Gnome Software« installiert, das Ubuntu — ein wenig frech — »Ubuntu Software« nennt. Nun war das Ubuntu Software Center schon keine Offenbarung, das Programm Software ist aber ein weiterer Rückschritt:

  • Das Programm kann ausschließlich zur Installation von Desktop-Programmen verwendet werden. Die Suche nach anderen Paketen führt zu keinem Ergebnis. Gerade für Einsteiger ist das unerfreulich: Diese müssen sich bereits zur Installation von ubuntu-restricted-extras mit dem Terminal und apt anfreunden.
  • Bisher war es möglich, im Startmenü in der Application-Ansicht nach noch nicht installierten Programmen zu suchen und die Installation direkt dort zu initiieren. Das funktioniert jetzt nicht mehr.

  • Die Release Notes zählen eine beachtliche Liste von bekannten Bugs und Problemen auf.

Desktop-Programme können nun mit dem Gnome-Programm »Software« installiert werden
Desktop-Programme können nun mit dem Gnome-Programm »Software« installiert werden

Snap — Die Ergänzung zur Paketverwaltung

Die meisten Linux-Distributionen leiden unter dem Problem, dass die Paketverwaltung und das Update-System zwar wunderbar funktionieren, es aber gleichzeitig so gut wie unmöglich ist, neue Versionen von wichtigen Desktop-Programmen (Gimp, LibreOffice) zu installieren. Die meisten Distributionen führen solche Versionssprünge nur ungern durch, weil diese selten nur das Programm an sich betreffen, sondern auch unzählige abhängige Pakete. (Eine Ausnahme sind Webbrowser wie Firefox oder Chromium, die mittlerweile bei fast allen Distributionen regelmäßig komplett erneuert werden.)

Das von Ubuntu entwickelte Snap-Format soll dieses Problem lösen: Benutzer bekommen damit die Möglichkeit, Software in Form von Snap-Dateien in das Verzeichnis /var/lib/snapd/snaps zu installieren, und zwar vollkommen losgelöst von der sonst üblichen und natürlich weiterhin vorhandenen Paketverwaltung (*.deb-Dateien, apt etc.).

Snap mit dem Snap-Dämon snapd und dem dazugehörenden Kommando snap ist unter Ubuntu standardmäßig installiert:

dpkg -l | grep snap
  ii  libsnappy1v5:amd64     1.1.3-2   amd64   fast compression/decompression library
  ii  snapd                  2.0.2     amd64   Tool to interact with Ubuntu Core Snappy.
  ii  ubuntu-core-launcher   1.0.27    amd64   Launcher for ubuntu-core (snappy) apps

snap find ermittelt eine Liste aller verfügbaren Snap-Pakete. snap install installiert das gewünschte Snap-Paket. snap list listet alle installierten Pakete auf. man snap verrät weitere Details.

snap find
  Name                   Version                  Summary                          
  canonical-dragon       0.7.1                    The gadget snap ...              
  canonical-i386         3.1                      The gadget snap ...              
  canonical-pc           3.1                      AMD64 generic package            
  canonical-pc-linux     4.4.0-18+20160419.13-26  The ubuntu-core kernel snap      
  canonical-pi2          3.2                      Raspberry Pi 2 support package   
  go-example-webserver   16.04-4                  Minimal Golang webserver ...     
  hello-world            6.0                      Hello world example              
  http                   4.6692016                HTTPie in a snap                 
  links                  2.12-1                   Web browser running in ...       
  moon-buggy             1.0.51.9                 Drive a car across the moon      
  nmap                   7.12SVN-0.4              Nmap ("Network Mapper") is a ... 
  tor-middle-relay       0.2.7.6-4                Essential infrastructure node .. .
  ubuntu-calculator-app  2.1+snap3                Ubuntu Calculator application .. .
  ubuntu-clock-app       3.6+snap3                Ubuntu Clock application for ... 
  ubuntu-core            16.04+20160419.20-55     The ubuntu-core OS snap          
  webdm                  0.16.2                   # Snappyd                        
  xkcd-webserver         16.04-5                  Show random XKCD compic via ...  

sudo snap install ubuntu-calculator-app

snap list
  Name                   Version               Developer
  ubuntu-calculator-app  2.1+snap3             ubuntucoredev
  ubuntu-core            16.04+20160419.20-55  canonical

ubuntu-calculator-app.calculator &

Zu einem späteren Zeitpunkt soll es auch mit dem Programm Software möglich sein, Snap-Pakete zu installieren. Momentan funktioniert dies aber noch nicht.

Dieser Taschenrechner ist ein Beispiel für ein Snap-App
Dieser Taschenrechner ist ein Beispiel für ein Snap-App

Da jede Snap-App auch alle Bibliotheken enthält, müssen für den vergleichsweise simplen Taschenrechner stattliche 120 MByte heruntergeladen werden. Die resultierende Datei landet in /var/lib/snapd/snaps.

ls -lh /var/lib/snapd/snaps/
  insgesamt 185M
  -rw------- 1 root root 121M Apr 21 09:41 ubuntu-calculator-app_5.snap
  -rw------- 1 root root  65M Apr 21 09:38 ubuntu-core_109.snap

*.snap-Dateien enthalten ein SquashFS-Dateisystem und werden von Snap-Dämon mit mount in den Verzeichnisbaum eingebunden.

mount | grep snap
  /var/lib/snapd/snaps/ubuntu-core_109.snap on 
     /snap/ubuntu-core/109 type squashfs (ro,relatime)
  /var/lib/snapd/snaps/ubuntu-calculator-app_5.snap on 
    /snap/ubuntu-calculator-app/5 type squashfs (ro,relatime)

Unkomprimiert enthält das Snap-Mount-Verzeichnis des Taschenrechners sogar 375 MByte:

du -h  /snap/ubuntu-calculator-app/5 --max 1
  2,0K  /snap/ubuntu-calculator-app/5/bin
  1,2M  /snap/ubuntu-calculator-app/5/build
  149K  /snap/ubuntu-calculator-app/5/etc
  4,8M  /snap/ubuntu-calculator-app/5/lib
  3,0K  /snap/ubuntu-calculator-app/5/meta
  369M  /snap/ubuntu-calculator-app/5/usr
  37K   /snap/ubuntu-calculator-app/5/var
  375M  /snap/ubuntu-calculator-app/5

375 MByte für einen Taschenrechner?! Man muss sich vor Augen halten, wie absurd das ist!

Snaps werden in einer Sandbox ausgeführt, sollen also besonders sicher sein. Matthew Garrett äußert in seinem Blog aber massive Bedenken am Sicherheitskonzept.

Auch wenn Canonical das neue Snap-Format als eine der wesentlichen Neuerungen in Ubuntu 16.04 bewirbt, ist schwer abzuschätzen, ob dieses Feature längerfristig für Desktop-Anwender wirklich relevant sein wird. Momentan wirkt Snap unausgegoren. Das Paketangebot ist klein und vermittelt eher einen Demo-Charakter. Insgesamt scheint Snap in der aktuellen Form eher für IoT (Internet of Things, Snappy Ubuntu Core) bzw. für das Ubuntu Phone optimiert als für den Desktop.

Sollte sich das Snap-System tatsächlich durchsetzen, wird es zu großen Redundanzen in Ubuntu-Systemen führen, weil jedes Snap-Paket eigene Kopien aller Bibliotheken mitbringt. Unklar ist auch, ob bzw. wie zentrale Updates für alle installierten Snap-Pakete zu installieren sind, und wie das System mit Doppelgleisigkeiten zwischen herkömmlichen Paketen und Snap-Paketen umgeht.

Unity Tweak Tool

Der Unity Tweak Tool (apt install unity-tweak-tool) steht in den Paketquellen zur Verfügung. Das Programm hilft bei der Einstellung diverser Optionen, die in den Systemeinstellungen fehlen. Unter anderem können Sie damit die Dock-Position einstellen.

Mit dem Unity Tweak Tool können Sie die Dock-Position per Mausklick einstellen
Mit dem Unity Tweak Tool können Sie die Dock-Position per Mausklick einstellen

Technische Neuerungen

  • Integration des Dateisystems zfs: Ubuntu 16.04 hat das Dateisystem zfs in dern Kernel integriert. Dieses Dateisystem wurde ursprünglich von Sun für das Betriebssystem Solaris entwickelt. Es untersteht zwar wie der Linux-Kernel einer Open-Source-Lizenz. Die Lizenzen von Linux und zfs sind aber nicht kompatibel zueinander. Die Integration von zfs in den Linux-Kernel ist deswegen rechtlich umstritten. Für Desktop-Anwender ist zfs nicht relevant, aber für den Server-, Virtualisierungs- und Docker-Einsatz genießt zfs den Ruf als das beste verfügbare Unix-Dateisystem. btrfs bietet ähnliche Funktionen, ist aber nicht im gleichen Maß ausgereift.
  • Systemd: Ubuntu verwendet als Init-System nun Systemd. Das Steuerungskommando lautet systemctl, in den meisten Fällen kann aber wie bisher service verwendet werden. Für Desktop-Anwender ergeben sich aus der Systemd-Umstellung keine Änderungen, wohl aber für Administratoren.

  • Logging: Das Logging-System fährt momentan zweigleisig. rsyslogd kümmert sich wie bisher um die Logging-Dateien in /var/log, das Journal protokolliert parallel dazu in /run/log/journal. Die dort gespeicherten Daten befinden sich allerdings auf einer RAM-Disk und gehen bei jedem Reboot verloren.

  • Kein Python 2 per Default: Die Desktop-Version von Ubuntu 16.04 enthält nur noch Python-3-Pakete. Python-2-Pakete stehen bei Bedarf weiterhin zur Verfügung, und zwar in der main-Paketquelle (LTS!).

  • apt statt apt-get: Um Pakete per Kommando zu installieren, stehen weiterhin die vertrauten Kommandos apt-get und aptitude zur Verfügung. Empfohlen wird nun aber das neuere Kommando apt (siehe auch das Debian-Handbuch sowie diesen Blog-Beitrag).

  • Darstellung von Scrollbalken: Bereits seit Ubuntu 15.10 werden Scrollbalken nicht länger durch eine Eigenentwicklung dargestellt, sondern durch normale Gnome-Bibliotheken. Sie sind jetzt nicht mehr ganz so schlank, dafür einfacher zu bedienen. (Das lustige Spiel »Fang den Scroll-Balken« ist zu Ende …)

Einschränkungen und Probleme

  • Totem: Totem ist trotz der Installation von ubuntu-restricted-extras nicht in der Lage, H264-Videos abzuspielen. Das Problem ist bekannt und wird wohl rasch durch ein Update gelöst werden. (Hier ist der Launchpad-Bugbericht.)

  • Schlechtere Samba-Integration: Das außerordentlich praktische Paket libpam-smbpass steht nicht mehr zur Verfügung. Es hat sich in der Vergangenheit darum gekümmert, Linux- und Samba-Passwörter zu synchronisieren und hat beim unkomplizierten Einrichten eigener Samba-Shares (»Freigaben«) geholfen. Das zugrundeliegende PAM-Modul wird vom Samba-Projekt aber nicht mehr unterstützt. (Details können Sie in der Samba-Mailing-Liste nachlesen.)

  • AMD-Grafiktreiber: Für AMD-Grafikkarten gibt es in Ubuntu 16.04 nur noch die Open-Source-Treiber radeon/amdgpu. In der Vergangenheit war es problemlos möglich, alternativ dazu den proprietären Treiber von AMD zu installieren. Diese Möglichkeit besteht nun nicht mehr, weil es von AMD keinen Treiber gibt, der zur aktuellen X-Server-Version in Ubuntu kompatibel ist. (Hintergrundinformationen können Sie in Timo Aaltonen’s Weblog sowie auf heise.de nachlesen. Den proprietären NVIDIA-Treiber wird Ubuntu übrigens weiterhin zur unkomplizierten Installation zur Verfügung stellen.)

Software-Versionen

Die folgenden Tabelle fasst zusammen, welche Software-Versionen unter Ubuntu 16.04 anfänglich zum Einsatz kommen. Die Firefox- und Thunderbird-Pakete werden während der Lebensdauer von Ubuntu 16.04 regelmäßig aktualisiert.

Basis           Desktop            Programmierung     Server
--------------  ------------------ --------------    --------------
Kernel     4.4  Gnome        3.18  bash       4.3    Apache    2.4
glibc     2.23  Firefox        45  gcc        5.3    CUPS      2.1
X-Server  1.18  Gimp          2.8  Java       7/8    MySQL     5.7
GRUB      2.02  LibreOffice   5.1  PHP          7    OpenSSH   7.2
Snapd      2.0  Thunderbird    38  Python     3.5    qemu/KVM  2.5
Systemd    229  Unity         7.4                    Postfix   3.1
                                                     Samba     4.3

Einzelne Gnome-Programme werden in älteren, manche in neueren Versionen ausgeliefert, z.B.:

  • gnome-calendar: 3.20
  • gnome-font-viewer: 3.16
  • gnome-software: 3.20
  • nautilus: 3.14 (!!!)

Super-aktuell ist der LAMP-Stack mit PHP 7 und MySQL 5.7. Wem MySQL nicht behagt, findet MariaDB-Pakete in der Version 10.0 — allerdings nur in der universe-Paketquelle (also ohne LTS-Wartungsgarantien).

Das beste Desktop-Linux aller Zeiten?

Die Neuerungen in Ubuntu lassen keine grenzenlose Begeisterung aufkommen. Echte Innovationen für den Linux-Desktop sehen anders aus. Snap ist ein interessantes Konzept, aber vorerst ohne praktische Relevanz für Desktop-Anwender.

Dennoch wird Ubuntu wohl auch in Version 16.04 die populärste Desktop-Linux-Distribution bleiben. Die Vorzüge von Ubuntu 16.04 sind dieselben wie die von Version 14.04: Ubuntu läuft stabil und ist einfach zu bedienen — was will man also mehr?

Die Alleinstellung von Ubuntu als »die« Desktop-Linux-Distribution hat freilich auch mit einem immer eklatanteren Mangel an Alternativen zu tun: openSUSE und Fedora sind zu instabil/experimentell, Debian ist nach wie vor nur bedingt einsteigertauglich.

Mein Tipp für Ubuntu-Verweigerer bleibt CentOS, auch wenn man dort Abstriche bei der Aktualität der Software-Pakete machen muss. Plan B wäre Linux Mint, aber riesige Vorteile im Vergleich zu Ubuntu habe ich da (in Gegensatz zu anderen Linux-Fans) nie wirklich erkennen können. Den größten Nachteil von Mint sehe ich in der Abhängigkeit von einem winzigen Entwickler-Team.

Links

Quellen

Quellen speziell zu Snap

Andere Tests

20. April 2016

Firefox 48 mit Firebug-Theme für Entwickler-Werkzeuge

Permalink Sören Hentzschel

Firefox-Nutzer haben die Auswahl zwischen einem dunklen und einem hellen Theme für die Entwickler-Werkzeuge. Um bisherigen Firebug-Nutzern den Umstieg zu erleichtern, werden die direkt in Firefox integrierten Entwickler-Werkzeuge ab Firefox 48 zusätzlich noch mit einem dritten Theme ausgeliefert, welches an die beliebte Erweiterung Firebug angelehnt ist.

Firebug gehört zu den populärsten Erweiterungen für Firefox und ist bei Webentwicklern sehr beliebt. Da es nur wenig Sinn ergibt, zahlreiche Funktionen zu duplizieren, die Firefox mittlerweile selbst hat, und der Aufwand enorm wäre, Firebug kompatibel mit der kommenden Multiprozessarchitektur von Firefox (Electrolysis / e10s) zu machen, arbeiten Mozilla und die Firebug-Macher bereits seit einiger Zeit zusammen, um die letzten Dinge, welche Firebug den in Firefox integrierten Werkzeugen voraus hat, direkt in Firefox zu implementieren.

Damit sich bisherige Firebug-Nutzer direkt wohl fühlen, wenn es in Zukunft kein Firebug mehr geben wird, wurde nun das Firebug-Theme für die Entwickler-Werkzeuge von Firefox in die aktuelle Nightly-Version von Firefox 48 integriert. Diese erste Integration ist noch nicht perfekt, weitere Verbesserungen können im entsprechenden Meta-Ticket in Mozillas Bugtracker verfolgt werden.

Bereits in Firefox 47 wurde das standardmäßig aktivierte helle Theme der Entwickler-Werkzeuge überarbeitet und die Icons für sowohl das helle als auch das dunkle Theme in Firefox 48 ausgetauscht, womit die Entwickler-Werkzeuge nun wesentlich moderner wirken als zuvor.

Firefox 48 Entwickler-Werkzeuge Themes

Der Beitrag Firefox 48 mit Firebug-Theme für Entwickler-Werkzeuge erschien zuerst auf soeren-hentzschel.at.

Chromium für Android

Permalink Intux

Wer gern Chromium für Linux einsetzt, kann den beliebten Open-Source-Browser nun auch für Android beziehen. Dies geht über die App getChromium auf F-Droid.

news-721 news-722

Viel Spaß!

19. April 2016

18. April 2016

Shadowrun Returns: Dragonfall

Permalink onli blogging

Dragonfall ist eine alleine lauffähige Erweiterung für das erste Shadowrun. Es ist das bessere Spiel.

Diesmal spielt die Geschichte in Berlin. Der neuerstellte Charakter ist Teil eines Runs der schiefgeht. Jemand stirbt, danach wird das Team gejagt und versucht selbst, Informationen über das große Böse zusammenzubekommen. Statt einer vollständig linearen Geschichte zu folgen ist der Spieler freier, er kann (ein bisschen) Missionen auswählen. Dies passiert im zentralen Gebiet, einem Berliner Kiez, in dem zwischen den Missionen auch Gespräche geführt und Händler besucht werden können.

Der Kern des Spiels ist noch der Gleiche. Gleiche Engine, gleiche Fähigkeiten, gleiches Kampfsystem. Aber statt den Söldnern gibt es nun permanente Teammitglieder mit Hintergrundgeschichte, Charakter und Fähigkeitsauswahl. Das Spiel ist mit ~23h Spielzeit wesentlich länger. Und es gibt viel mehr Möglichkeiten die eigenen Fähigkeiten einzusetzen, z.B. mit genügend Stärke Wände einzureißen oder mit Charisma eine Wache von der Ungefährlichkeit der Situation zu überzeugen oder die Aura eines Geistes zu lesen. Dazu kommen viel mehr Wahlmöglichkeiten in Gesprächen, und Möglichkeiten den Ausgang von Missionen zu bestimmen.

Auch wenn es durch die längere und weniger straffe Geschichte auch etwas gegenüber dem Vorgänger verliert: Insgesamt kommt Dragonfall näher an die großen Rollenspiele. Es erreicht weder Fallout 2 noch Baldur's Gate 2, aber es ist durchaus ein gutes Rollenspiel, und ich habe es gerne gespielt.

Admin Panels Part2: Cockpit - Leitstand für Fedora, CentOS oder Ubuntu

Permalink ITrig

Tools für eine zentrale Verwaltung von Linux Servern gibt es einige. Mit Ajenti und LinuxDash hatte ich bereits zwei vorgestellt.
Einen weitern interessanten Ansatz verfolgt Red Hat seit einiger Zeit.

Cockpit - Serververwaltung

Mit Cockpit haben sie eine frei über Github entwickelte Linux Steuerzentrale in petto, welche auf neueren Distributionen von Fedora, CentOS oder ArchLinux bereits vorinstalliert oder zumindest als fertiges Installationspaket bereit liegt.
Cockpit setzt auf systemd und ist somit auf dem aktuellen Ubuntu 14.04 LTS nicht unbedingt praktikabel, da aber Ubuntu 16.04 bereits in den Startlöchern steht, sieht es für Cockpit auf Ubuntu Systemen in Zukunft ebenfalls gut aus.

Das Verwaltungstool unterstützt nicht nur verschiedene Systeme, es kann über das zentrale Dashboard auch auf eine ganze heterogene Umgebung zugreifen, um diese zu verwalten. Die Kommunikation zwischen den Maschinen erfolgt über SSH.

cockpit

Schlicht aber effektiv

Die einfache Bedienung des Tools fängt beim Login an, hier werden automatisch hinterlegte Nutzer mit root Rechten für den Login freigeschaltet.
Nicht nur die moderne und aufgeräumte Oberfläche wirkt erfrischend, auch die Auswertungen von Systemperformance ist schlicht und ausreichend.
Die Usability endet bei einem eingebundenen Terminal, welches das Arbeiten auf der Konsole über die Oberfläche ermöglicht.

cockpit-login

Sichere Sache

Anders als Webmin, Ajenti und Co, benötigt Cockpit keinen Apache Server oder ähnliches, welcher ständig in Betrieb sein muss. Der eigene Dienst cockpit-ws startet den Webserver nur, sobald eine Anfrage auf dem Standard Port 9090 ankommt. Sollten keine weiteren Anfragen auf dem Port ankommen, legt er sich nach 90 Sekunden Inaktivität wieder schlafen.

Ist der Webserver aktiv kann er über HTTP und HTTPS erreicht werden, HTTP wird aber automatisch auf HTTPS umgeleitet.  Ein Zertifikat kann unter "/etc/cockpit/ws-certs.d" abgelegt werden. SSL3 und RC4 sind von Haus aus deaktiviert.

Die wichtigsten Cockpit Konsolen Befehle

Prüfen welches Zertifikat verwendet wird

sudo remotectl certificate

Cockpit manuell starten

sudo systemctl enable cockpit.socket
sudo systemctl start cockpit.service
sudo systemctl status cockpit.service

Cockpit Autostart Eintrag erstellen

sudo systemctl enable cockpit.socket

Anderen Port hinterlegen

Temporär

sudo nano /usr/lib/systemd/system/cockpit.socket

oder permanent

sudo cp /lib/systemd/system/cockpit.socket /etc/systemd/system
sudo nano /etc/systemd/system/cockpit.socket

ListenStream=666

sudo systemctl daemon-reload
sudo systemctl restart cockpit.socket

Cockpit Oberfläche (Standardport)

https://cockpit-server:9090

cockpit_install

Installation unter CentOS

Unter bereits voll unterstützen Systemen, ist die Installation ein Kinderspiel

yum install cockpit
sudo systemctl start cockpit

Den Dienst erlauben

systemctl enable cockpit.socket

Wenn nötig die Firewall öffnen

firewall-cmd --permanent --zone=public --add-service=cockpit
sudo firewall-cmd --reload

Das System ist nun über den oben erwähnten Port ereichbar.

cockpit-uebersicht


Installation from Source (Ubuntu)

Eine Installation ist eigentlich erst ab Ubuntu 15.10 sinnvoll, aber dennoch auf 14.04 möglich.

Pakete installieren

sudo apt-get install xsltproc libglib2.0-dev libjson-glib-dev libpolkit-agent-1-dev libkrb5-dev liblvm2-dev libgudev-1.0-dev libssh-dev libpam0g-dev libkeyutils-dev libpcp3-dev libpcp-import1-dev libpcp-pmda3-dev intltool xmlto libxslt1-dev selinux-policy-dev checkpolicy selinux-policy-doc libdbus-1-dev libsystemd-dev glib-networking

wget https://github.com/cockpit-project/cockpit/releases/download/0.102/cockpit-0.102.tar.xz
tar xvf cockpit-0.102.tar.xz
cd /cockpit-0.102
sudo ./configure
make
make install

Mögliche Fehler

Starting Cockpit Web Service...
remotectl[26324]: Generating temporary certificate using: openssl req -x509 -days 36500 -newkey rsa:2048 -keyout /usr/local/etc/cockpit/ws-certs.d/0-self-signed.P7XPFY.tmp -keyform PEM -nodes -o
remotectl[26324]: remotectl: /usr/local/etc/cockpit/ws-certs.d/0-self-signed.cert: TLS support is not available
systemd[1]: cockpit.service: Control process exited, code=exited status=1
systemd[1]: Failed to start Cockpit Web Service.
systemd[1]: cockpit.service: Unit entered failed state.
systemd[1]: cockpit.service: Failed with result 'exit-code'.

Lösung

sudo apt-get install glib-networking

Installation von PPA (Ubuntu)

Via PPA fällt die Installation um einiges leichter, allerdings kommt hier ein relativ altes Installationspaket zum Einsatz (0.38).

    sudo add-apt-repository ppa:jpsutton/cockpit

    sudo apt-get update

    sudo apt-get install cockpit

cockpit-dashboard

 

Ubuntu 14.04

Um Cockpit unter älteren Systemen zu starten, kann nicht auf systemd zurückgegriffen werden, es startet hier wie folgt.

sudo /usr/sbin/remotectl certificate --ensure --user=root
sudo /usr/libexec/cockpit-ws

Natürlich kann die mit einem eigenen Init Script automatisiert werden, dies bleibt jedem selbst überlassen.

Fazit

Sowohl für einzelne Server, als auch für kleinere Netzwerke, bestehend aus Linux Rechnern, bietet Cockpit eine Möglichkeit Server einfach zu warten und zu überwachen. Durch die leichte Installation und die klare Oberfläche ist sie besonders für Einsteiger geeignet.

Leider gibt es für Ubuntu Systeme bisher keine offiziellen Pakete. Das PPA ist leider nicht auf dem neuesten Stand. Eventuell ändert sich dies mit Ubuntu 16.04 LTS.

Mit dem Landscape Server bietet Canonical bereits eine eigene Ubuntu Server Verwaltung und Performance Analyse an, welche auf bis zu 10 Systemen umsonst angewendet werden kann. (siehe Artikel).

Welches Admin Tool für die eigenen Bedienungen geeignet ist, muss wohl immer individuell entschieden werden.


Quellen

http://www.golem.de/news/cockpit-angesehen-die-einfache-steuerzentrale-fuer-linux-server-1507-115035-3.html
http://cockpit-project.org/guide/latest

 

17. April 2016

web-ext: Mozilla-Werkzeug zur Entwicklung von WebExtensions

Permalink Sören Hentzschel

Mit web-ext hat Mozilla ein neues Kommandozeilen-Werkzeug vorgestellt, welches hilfreich für die Entwicklung der sogenannten WebExtensions ist, dem neuen Standard für Firefox-Add-ons.

Im August 2015 hatte Mozilla die WebExtensions erstmals offiziell angekündigt. WebExtensions sind kompatibel mit der kommenden Multiprozessarchitektur von Firefox und bieten viele API-Übereinstimmungen mit dem Erweiterungssystem von Google Chrome, was die browserübergreifende Entwicklung von Add-ons für Chrome, Opera, Firefox und möglicherweise in Zukunft auch Microsoft Edge deutlich vereinfachen soll.

Mit web-ext gibt es nun ein neues Kommandozeilen-Werkzeug, welches bei der Entwicklung von WebExtensions hilfreich sein kann. Installiert wird dieses über npm, node.js ist also Voraussetzung. Zur Installation einfach folgende Zeile in die Kommandozeile eingeben:

npm install –global web-ext

Nach der Installation stehen praktische Kommandos zur Verfügung, welche im Verzeichnis mit den Dateien der Erweiterung ausgeführt werden können.

Mittels web-ext run wird der aktuelle Code als Erweiterung in einer Firefox-Instanz ausgeführt. Das Kommando web-ext build erstellt eine in Firefox installierbare xpi-Datei. Und schließlich gibt es noch web-ext sign, um nicht nur eine installierbare xpi-Datei zu generieren, sondern diese gleichzeitig über die Signierungs-API von addons.mozilla.org signieren zu lassen.

Der Beitrag web-ext: Mozilla-Werkzeug zur Entwicklung von WebExtensions erschien zuerst auf soeren-hentzschel.at.

[dashing] Informationen aus dem Icinga auf dem Dashboard

Permalink itbasic

Neben den bisher genannten Möglichkeiten können auch Informationen per http aus anderen Systemen wie in diesem Beispiel Icinga geholt und dargestellt werden. Für das Abrufen der Daten wird hier nicht die Api verwendet, sondern der http Aufruf mit entsprechendem Parameter um ein Json Array zu erhalten.
Für den Zugriff auf die Icinga Daten wurde auf dem gleichen System ein weiteres Icinga-web2 angelegt. Der in der Konfiguratin hinterlegte Benutzer für den Datenbankzugriff, hat in diesem Fall nur lesende Rechte.

Damit die Authentifizierung über htpasswd und nicht über die Datenbank erfolgt, wurde die config/authentication.ini wie folgt angepasst:

[autologin]

backend = external

Neben der erwähnten Datei muss ebenfalls die vhost Konfig für den icingaweb2 angepasst werden.
DirectoryIndex error_norewrite.html
ErrorDocument 404 /error_norewrite.html
</IfModule>
AuthType Basic
AuthName "Icinga Web 2"
AuthUserFile /etc/icingaweb2/icingaweb.htpasswd
Require valid-user
</Directory>

Die benötigte Passworddatei wird mit htpasswd -c icingaweb.htpasswd dashing erstellt.

Dashboard

Die Dateien für das Widget werden unter dem Widgetsverzeichniss icinga abgelegt, die rb Datei in dem Verzeichniss job. Innerhalb der rb Datei muss die Url zum Icinga inklusive der Benutzerdaten angepasst werden. Die Url kann so konfiguriert werden, das zum Beispiel nur Alarme einer bestimmten Hostgruppe dargestellt werden.

icinga.coffee
class Dashing.Icinga extends Dashing.Widget
onData: (data) ->
if data.blink
node = $(@node)
node.addClass(„blinking“)
setTimeout ( =>
node.removeClass(„blinking“)
), 5000

icinga.scss

// —————————————————————————-
// Sass declarations
// —————————————————————————-
@keyframes blink {
50% { opacity : 0.0; }
}

$background-color: rgba(135, 135, 135, 0.7);
$title-color: rgba(255, 255, 255, 0.7);
$in-color: rgba(255, 255, 255, 1.0);
$out-color: rgba(175, 175, 175, 1.0);
$updated-at-color: rgba(255, 255, 255, 0.7);

.widget-icinga {
background-color: $background-color;

.content {
text-align: left;
padding-top:25px;
vertical-align: top;
}

.title {
color: $title-color;
position: absolute;
top: 18px;
left: 0;
right: 0;
}

.updated-at {
color: $updated-at-color;
}

&.large h3 {
font-size: 45px;
}

li {
font-size: 15px;
margin-top: 8px;
text-indent: 10px;
font-weight: normal;
}

.host {
font-weight: bold;
width:50%;
float:left;
}

.CRITICAL {
font-weight:bold;
float:left;
text-align:right;
width:50%;
color:#ff0022;
}

.OK {
font-weight:bold;
float:left;
text-align:right;
width:50%;
color:#3bdb22;
}

.WARNING {
font-weight:bold;
float:left;
text-align:right;
width:50%;
color:#ffde00;
}

.UNKNOWN {
font-weight:bold;
float:left;
text-align:right;
width:50%;
color:#ffffff;
}

.what {
font-style:italic;
font-size:10px;
font-weight: normal;
}

&.blinking {
animation: blink 1s linear infinite;
animation-iteration-count: 2;
}
}

icinga.html
<h1 class=“title“ data-bind=“title“></h1>
<div class=“content“>
<ul>
<li data-foreach-value=“values“ data-bind-class=“value.status“>
<i data-bind-class=“value.icon“></i>
<span class=“host“ data-bind=“value.host“></span>
<span data-bind-class=“value.alert“ data-bind=“value.alert“></span>
<span class=“what“ data-bind=“value.what“></span>
</li>
</ul>
</div>
<p class=“updated-at“ data-bind=“updatedAtMessage“></p>

icinga.rb

# job um werte aus dem Icinga zu holen

require ’net/http‘
require ‚uri‘
require ‚json‘
require „addressable/uri“

review_content_hash = 0
SCHEDULER.every ’30s‘ do
#service status
uri = Addressable::URI.parse(„http://localhost/icingaweb2/monitoring/list/services?(hostgroup=web1|host=miranda)&service_state!=0&service_unhandled=1&sort=service_severity&format=json“)
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
request.basic_auth(„dashing“, „passwd“)
response = http.request(request)
#host status
uriH = Addressable::URI.parse(„http://localhost/icingaweb2/monitoring/list/hosts?(hostgroup=web1|host=miranda)&host_state!=0&sort=service_severity&format=json“)
httpH = Net::HTTP.new(uriH.host, uriH.port)
requestH = Net::HTTP::Get.new(uriH.request_uri)
requestH.basic_auth(„dashing“, „passwd“)
responseH = httpH.request(requestH)
werteH = JSON.parse(responseH.body)

review_content = {}

# Liste der Hosts erstellen
hosts = []
werteH.length.times do |idx|
if werteH[idx][„host_state“].to_i != 0
dalert = „DOWN“
end

review_content[idx] = {:host => werteH[idx][„host_name“],:alert => dalert}
#Host der liste hinzufügen
hosts.push(werteH[idx][„host_name“])
end

laenge = review_content.length

werte = JSON.parse(response.body)

werte.length.times do |idx|

# wenn es keine hostdown Meldung gibt dann wird der Servicealarm ausgegeben
if hosts.include?(werte[idx][„host_name“]) == false

if werte[idx][„service_state“].to_i == 0
dalert = „OK“
end

if werte[idx][„service_state“].to_i == 1
dalert = „WARNING“
end

if werte[idx][„service_state“].to_i == 2
dalert = „CRITICAL“
end

if werte[idx][„service_state“].to_i == 3
dalert = „UNKNOWN“
end
laenge += 1
review_content[laenge] = {:host => werte[idx][„host_name“],:what => werte[idx][„service_description“],:alert => dalert}
end
end

if review_content_hash == review_content.to_set.hash
send_event(„icappl“,{ values: review_content.values })
else
send_event(„icappl“,{ values: review_content.values, blink: review_content.length })
end
review_content_hash = review_content.to_set.hash

# ende scheduler
end

 

dashing-icinga

iwlwifi zickt manchmal nach resume (workaround)

Permalink Zockertown.de

Mittlerweile ist mein Tuxedo XC1506 eigentlich alles soweit in komplett eingerichtet und in bester Ordung.

Immer ist Wifi im Flugmodus nach dem Resume, also wenn der Laptopdeckel wieder aufgeklappt wird.

Das ist ja nicht weiter schlimm, ein Druck auf Fn F11 schaltet wlan wieder an, es geht auch fix und man ist wieder mit dem heimischen Wlan verbunden.

Momentan allerdings hatte ich bereits 3 mal, dass das Flugsymbol zwar wegging, aber kein wifi Symbol auftauchte, auch nicht die 3 Punkte, die während der Initialisierung zu sehen sind.

Wie aktuell der Mechanismus im System umgesetzt wird, habe ich nicht evaluiert, sicher würde ein Eintrag reichen, um das iwlwifi und / oder das modul iwlmvm zu entladen und beim resume neu zu laden.

Als Workaround, bis ich den korrekten Weg gefunden habe, mache ich das mit folgenden Miniscript:

Genannt habe ich es /usr/local/bin/wifi-repair.sh

CODE:
sudo rmmod iwlmvm sudo rmmod iwlwifi sleep 1 sudo modprobe iwlwifi iwlmvm

Damit bin ich in der Lage, im Falle eines Falles mal eben schnell Wifi zu reaktivieren.