TeamViewer unter Manjaro nutzen

Wer den TeamViewer aus dem AUR installiert hat, steht beim ersten Start oft vor dem Problem, das der TeamViewer am unteren Rand die Meldung

Nicht bereit. Bitte prüfen Sie Ihre Internetverbindung.

anzeigt.

TeamViewer ohne gestarteten Daemon

Das Problem ist relativ einfach zu lösen. TeamViewer installiert einen eigenen Daemon, der die Verbindungen abwickelt, aber nach der Installation nicht automatisch gestartet wird.

Um den Daemon zu starten kann man entweder

sudo systemctl start teamviewerd

oder

sudo systemctl enable teamviewerd && sudo systemctl start teamviewerd 

ausführen.

Der erste Befehl startet die systemd Unit des Daemon und muss vor jedem Start des TeamViewer erneut ausgeführt werden. Der zweite Befehl aktiviert den automatischen Start der Unit und startet diese anschließend. Dieser Befehl muss im Gegensatz zum ersten nur einmal ausgeführt werden.

TeamViewer mit gestarteten Daemon

Welchen Befehl man nutzt hängt hauptsächlich davon ab, wie oft man den TeamViewer nutzen möchte – und von der eigenen Bequemlichkeit 😉

Auf zu neuen (Linux-)Ufern

Nachdem sich mein Fedora beim Versuch, auf Fedora 29 Beta zu aktualisieren, quasi selber zerlegt hat, indem das Notebook sich während des Updates abgeschaltet hat, weil der Stecker der Dockingstation nicht richtig eingesteckt war, habe ich beschlossen mal etwas neues zu wagen.

Nach beinahe 10 Jahren mit Fedora möchte ich mal eine neue Distribution ausprobieren. Aber nicht wieder CentOS oder etwas anderes, das auf RHEL oder SUSE basiert. Das hatte ich ja schon einmal.

Nein, diesmal sollte es etwas völlig anderes sein und irgendwie habe ich auch schon immer ein wenig mit Arch-Linux geliebäugelt.  Da die Installation und Konfiguration von Arch aber durchaus eine Herausforderung sein kann, habe ich mich dann jedoch für Manjaro entschieden. Basiert auf Arch, ist aber deutlich einfacher zu installieren und konfigurieren. Zumindest in der Theorie – dazu jedoch später mehr.

Zuerst einmal musste ich mein Fedora wieder soweit lauffähig bekommen, das ich mein Home-Verzeichnis auf meiner externen USB-Festplatte sichern konnte. Was dann auch recht zügig von statten ging. Hinterher noch ein kurzes Diff, um sicher zu gehen, da auch wirklich alle Dateien gesichert wurden und dann kann es auch schon los gehen, mit Manjaro.

Oder auch nicht. Nachdem die Live-CD erfolgreich gebootet war und der Installer den Auftrag bekam, für die Installation von Manjaro, die vorhandenen Fedora-Partitionen zu löschen, kam die erste Ernüchterung: der Installer erklärte mir in wenigen Worten, das er nicht in der Lage war, die Partitionen zu löschen.

Glücklicherweise enthält die Live-CD GParted und die Partitionen wurden dann kurzerhand und völlig humorlos manuell gelöscht. Im zweiten Anlauf verrichtete der Installer sein Werk auf der nun quasi jungfäulichen Festplatte ohne weitere Probleme.

Zum Schluss mussten nach dem Neustart noch die üblichen Dinge erledigt werden:

  • benötigte Daten von der USB-Platte zurück kopieren
  • fehlende Programme sowie verfügbare Updates installieren.

Wobei das mit den fehlenden Programmen auch etwas komplizierter als zuerst gedacht war, weil es diese nur im AUR (Arch User Repository) gibt, was bedeutet, das diese Programme über ein separates Programm heruntergeladen, lokal compiliert und installiert werden müssen.

Abschließend kann ich schon jetzt sagen, das sich Manjaro sehr schnell anfühlt, was den Bootvorgang angeht und auch sonst einen sehr angenehmen Eindruck hinterlässt.

Prospekt von real bequem lokal lesen

Jedem, dem dieser in Flash programmierte Viewer für den Wochenprospekt von real auf die Nerven geht, kann sich den Prospekt unter Linux mit einem simplen Einzeiler herunterladen und mit dem PDF-Betrachter seines Vertrauens öffnen:

evince http://shared.real.de/blaetterkatalog/pageflipdata/kataloge/KW$(date +%V)/Handzettel/50322/pdf/50322_KW$(date +%V)_Handzettel.pdf

Das sich die URL bis auf die jeweilige Kalenderwoche nicht weiter ändert, macht es sehr einfach, da es die Bash erlaubt, Befehle quasi in einen anderen Befehl einzubetten, was durch das Dollar-Zeichen und die darauf folgenden Klammern signalisiert wird. Die Kalenderwoche selber wird schnell und schmerzlos durch das

date +%V

errechnet.

Natürlich kann man auch einen anderen PDF-Betrachter als evince nutzen, sofern man das möchte 😉

git Repositories schnell und bequem aktualisieren

Wer mehrere lokale git Repositories auf seinem Rechner liegen hat, weiß sicher, welche „Freude“ es macht, diese auf dem aktuellen Stand zu halten.

Mit ein wenig Shell-Script geht das jedoch ganz leicht von der Hand und weh tut es auch nicht 😉

#! /bin/bash

PRJDIR="$HOME/Projekte"

cd $PRJDIR
for REPO in $(find -name .git -type d | sort); do
    cd $PRJDIR
    DIR=$(dirname $REPO)
    REPOPATH=$(realpath $DIR)
    REPONAME=$(basename $REPOPATH)

    cd "$REPOPATH"
    echo "Aktualisiere $REPONAME"
    UPSTREAM=$(git remote -v | grep ups)
    if [ -n "$UPSTREAM" ]; then
        echo "Synchronisiere mit Upstream"
        git fetch upstream
        git checkout master
        git merge upstream/master
        git push
    else
        git pull
    fi
    echo
done

ggf. muss man die Variable $PRJDIR in Zeile 3 des Scriptes anpassen, sofern die git Repositories sich an einem anderen Ort befinden.

Unwetterwarner für Linux

Gemäß dem Motto es gibt kein schlechtes Wetter, wenn man rechtzeitig gewarnt wird, habe ich das Unwetterwarner-Script, das man hier findet, ein wenig überarbeitet und ergänzt.

#!/bin/bash
notify_header="Wetterwarnungen für Coburg"
popup_icon=~/Bilder/Wetterwarnung.png
landkreis=COX
image_viewer=display # must be able to handle URLs
warning_url='http://www.dwd.de/dyn/app/ws/html/reports/'${landkreis}'_warning_de.html'
timeline_url="http://www.dwd.de/dyn/app/ws/maps/${landkreis}_timeline.png"
automode=false

if [ -n "$1" ]; then
    if [ "$1" == "auto" ]; then
        automode=true
    else
        i="$1"
        size=${#i}
        if [ "$size" -eq 3 ]; then
            landkreis=$1
            notify_header="Wetterwarnungen für "$landkreis
        else
            notify-send --icon=$popup_icon """ungültiger Landkreis""" "ungültiger Landkreis: $1"
            exit
        fi
    fi
fi

textstring=$(wget $warning_url -O -  | grep -i -e "warnung vor" -e "vorabinformation" | sed s/\<\\/p\>//g ) 

if [ "$textstring" = ""  ]; then
    notify-send --icon=$popup_icon """$notify_header""" "keine Warnungen vorhanden"
else
    notify-send --icon=$popup_icon """$notify_header""" """$textstring"""
    if [ "$automode" == false ]; then
        $image_viewer $timeline_url &
        # xdg-open $warning_url &
        sleep 4
        kill $!
    fi
fi

Wer das Script selber nutzen möchte, muss entweder die Variable landkreis entsprechend anpassen. Der Code für den jeweiligen Landkreis ist im Prinzip das KFZ-Kennzeichen, welches mit X auf 3 Stellen aufgefüllt wird. Es sei denn, das Kennzeichen enthält ein Ö oder Ü – die werden einfach durch OE bzw. UE ersetzt.

Für die Nutzung mittels Crontab übergibt man dem Script einfach als Parameter auto alle anderen Werte werden als Landkreis interpretiert, was ggf. zu Fehlern führt, wenn man einen ungültigen Wert übergibt.

Die aktuellste Version des Scriptes gibt es hier.

gpg Schlüsselbund mit systemd regelmäßig aktualisieren

Neben dem klassischen Crontab bietet seit einiger Zeit auch systemd mittels so genannter Timer die Möglichkeit, Aufgaben regelmäßig auszuführen.

Wenn man beispielsweise seinen gpg Schlüsselbund regelmäßig aktualisieren möchte (was dringend zu empfehlen ist), dann kann man dies entweder mittels crontab erledigen, oder man nutzt systemd’s Timer für die Aufgabe.

Dafür muss man zuerst unter ~/.config/systemd/user/ eine systemd Unit gpg-update.service mit folgendem Inhalt anlegen:

[Unit]
Description=Update keys in local keyring

[Service]
Type=oneshot
Environment=DISPLAY=:0
ExecStart=/usr/bin/gpg --refresh-keys

[Install]
WantedBy=basic.target

Als nächstes wird im selben Verzeichnis noch der systemd Timer gpg-update.timer mit folgendem Inhalt angelegt:

[Unit]
Description=Update keys in local keyring
 
[Timer]
OnCalendar=hourly
Persistent=true
Unit=gpg-update.service
 
[Install]
WantedBy=gpg-update.service

In diesem Beispiel wird der Timer stündlich ausgeführt. Es kann jedoch auch ein anderes Interval verwendet werden.

Im nächsten Schritt wird dann noch der neu angelegte Timer aktiviert und gestartet

systemctl --user enable gpg-update.timer
systemctl --user start gpg-update-timer

Um zu prüfen, ob alles wie gewollte funktioniert hat, kann man dies mit folgendem Befehl überprüfen:

systemctl --user status gpg-update.timer

Sollte im Status des Timers unter dem Punkt Active nicht active (waiting) stehen, sollte man mittels journalctl -xe einen Blick in das Journal werfen um der möglichen Fehlerursache auf die Schliche zu kommen.

Linux Mint 16 auf Mint 17 mit apt-get upgraden

Offiziell unterstützt Linux Mint für Upgrades nur den extrem umständlichen Weg, seine Daten zuerst zu sichern, das System anschließend komplett neu zu installieren und zum Schluss das Backup der eigenen Daten wiederherzustellen – warum auch immer.

Wichtig: Es ist immer eine gute Idee, vor einem Upgrade den Inhalt seinen Home-Verzeichnisses auf ein externes Medium zu sichern. Man weiß ja nie 😉

Wer jedoch mutig ist, kann sein Mint auch mit Hilfe von apt-get upgraden. Dazu muss man lediglich die /etc/apt/sources.list.d/official-packages-repositories.list mittels

sudo gedit /etc/apt/sources.list.d/official-packages-repositories.list

öffnen und dort petra durch qiana und saucy durch trusty ersetzen, damit apt-get die Paketquellen der neuen Verion verwendet.

Es empfiehlt sich, sich vor dem eigentlichen Upgrade von der grafischen Oberfläche abzumelden und mittels STRG+ALT+F1 in ein Terminal zu wechseln. Dort kann man dann anschließend das eigentliche Upgrade mittels

sudo apt-get update
sudo apt-get dist-upgrade

anstossen und nach Beendigung des Upgradeprozesses das System mittels

sudo init 6

neu starten.

Nach dem Neustart empfiehlt es sich, das System mittels

sudo aptitude full-upgrade

sowie

sudo apt-get autoremove && sudo apt-get autoclean

zu entrümpeln.