vinzv

Schlagwort: Debian

Ein Jobangebot für Linux-Enthusiasten

Da es für meine geneigte Leserschaft (auch die in den Planeten von OSBN und Debianforum.de) vielleicht interessant ist oder jemand jemanden kennt: Mein Arbeitgeber sucht derzeit Mitarbeiter für Kundenbetreuung, Support & Service im Bereich Linux.

Zur Verstärkung unseres Teams in Königsbrunn suchen wir Sie.

Wir freuen uns auf Sie als:

Mitarbeiter (m|w) Kundenbetreuung, Support & Service

Ihre Aufgaben in unserem Haus umfassen:

  • Durchführen von Hardwaretestes
  • Technische Beratung und Unterstützung von Kaufinteressenten telefonisch als auch in schriftlicher Form, vorwiegend per E-Mail
  • Technische Hilfestellung bei Fragen zu Betriebssystemen der Linuxfamilie, insbesondere Ubuntu
  • Prüfung von Kundengeräte auf Hard- oder Softwarefehler sowie deren Beseitigung

Mehr Infos gibt es im Firmenblog. Für Rückfragen stehe ich natürlich auch gerne zur Verfügung.

Quicktipp: Benutzer wechseln mit Xfce unter Debian Stretch

Vorweg: Die Anleitung bezieht sich auf Debian Stretch (Testing), sollte aber auch mit Stable bzw. Sid funktionieren.

Neuerdings brauche ich auf meinem Notebook zwei Benutzerkonten – eins privat und eins beruflich. Um nicht alle Fenster immer wieder öffnen und alles neu laden zu müssen gibt es bei Xfce ja so ein kleines Applet für die Menüleiste bzw. einen Button im Whisker-Menü. Leider funktionieren die unter Debian Stretch nicht auf Anhieb. (Das kann gut an meiner Minimalinstallation liegen!)

Jedenfalls lässt sich der Umstand sehr leicht beheben.

Für das Whisker-Menü:

  1. LightDM installieren
    Du solltest LightDM installiert haben, wovon in der Regel auszugehen ist. Außer du findest den textbasierten Login super, aber dann brauchst du auch keinen grafischen Benutzerwechsel. Also:
    sudo apt install lightdm
  2. Rechtsklick auf das Whisker-Menü Eigenschaften Reiter „Befehle“
    Hier trägst du bei „Benutzer wechseln“ Folgendes ein:
    dm-tool switch-to-greeter
  3. Schließen, fertig.

Für das Applet „Aktionsknöpfe“:

Dieses Applet sucht nach einem Teil von Gnomes Display Manager GDM3. Den willst du nicht installieren, außer du legst Wert auf rund 380 MB sinnlos verbrauchten Festplattenplatz. Also müssen wir dem Applet einen gdmflexiserver vorgaukeln:

  1. sudo nano /usr/local/bin/gdmflexiserver
  2. Das hier reinkopieren und speichern (Strg+X):
    #!/bin/sh
    /usr/bin/dm-tool switch-to-greeter
  3. Die Datei noch ausführbar machen:
    sudo chmod +x /usr/local/bin/gdmflexiserver
  4. Applet entfernen und wieder hinzufügen – fertig!

Liferea 1.12 von Hand unter Debian Stretch installieren [Update]

Update: Mittlerweile ist v1.12-rc1 in den Repositories verfügbar.

Liferea ist ein feiner Desktopclient für RSS-Feeds, der nebenbei auch noch mit TinyTinyRSS synchronisiert. So lassen sich mobil auf dem Smartphone und zu Hause am PC gelesene Feeds sauber auf dem gleichen Stand halten.

In den Repositories von Debian Stretch (wie auch in allen anderen Debian Suiten) ist selbstredend nur eine stabile Version von Liferea verfügbar. Leider ist diese Version seitens des Upstreams schon ziemlich alt (v1.10.19) und auch nur ein Wartungsrelease, was das ganze nicht gerade besser macht. Aber der Entwickler ist glücklicherweise fleißig und hat Mitte September einen ersten RC1 veröffentlicht der eine Vielzahl an Verbesserung bringt!

Hier nun die nötigen Schritte um Liferea 1.12-rc1 von Hand zu kompilieren:

  1. Liferea ist bei dir bereits installiert? Weg damit!
    sudo apt purge liferea liferea-data
  2. Abhängigkeiten installieren
    sudo apt install libtool gettext libxml2-dev libxslt1-dev sqlite3  libsqlite3-dev libwebkitgtk-dev libjson-glib-dev libgirepository1.0-dev gsettings-desktop-schemas-dev libpeas-dev libwebkit2gtk-4.0-dev

    Optional, aber für die Nutzung von Plugins nötig:

    sudo apt install python3-cairo
  3. Quellcode herunterladen, entpacken und ins Verzeichnis wechseln
    wget https://github.com/lwindolf/liferea/releases/download/v1.12-rc1/liferea-1.12-rc1a.tar.bz2
    
    tar jxvf liferea-1.12-rc1a.tar.bz2
    
    cd liferea-1.12-rc1a
  4. Stop – eigentlich käme jetzt ./configure, aber bei Debian Stretch würdest du in folgende Fehlermeldung laufen:
    "You should recreate aclocal.m4 with macros from libtool..."
    Um das zu vermeiden, erzwingst du die erneute Erzeugung der genannten Skripte mit den korrekten Versionen.

    autoreconf --force --install
  5. Aber jetzt, der bekannte Dreisatz:
    ./configure
    make
    sudo make install

    Das war alles. Ich bin gespannt, wie sich Liferea entwickelt. Bis jetzt sieht das alles schon recht gut aus. Und vielleicht schauen sich andere Clients (ja, Akregator – du bist gemeint!) dann auch mal endlich den TTRSS-Sync ab.

GIMP-Tipp: Grünen Rand beim Anti-Aliasing loswerden

gimp-logoGIMP verwendet für die Darstellung von Schriften sein eigenes Subpixel-Rendering. Das führt dazu, dass mit den Standardeinstellungen ein hässlicher grüner Rand um die Schriften angezeigt – und auch beim Export mit weitergegeben wird.

Dies lässt sich mit einem einfachen Tipp unterbinden:

  1. Eigene fonts.conf für GIMP erstellen:
     vim .gimp-2.8/fonts.conf
  2. Diese Einstellungen kopieren und einfügen:
    <fontconfig>
      <match target="font">
        <edit name="rgba" mode="assign">
          <const>none</const>
        </edit>
      </match>
    </fontconfig>
  3. Speichern, GIMP neu starten – fertig!

KShutdown manuell kompilieren unter Debian

KShutdown ist ein kleines aber recht bequemes Tool um Rechner zeitgesteuert herunterzufahren, in den Ruhezustand zu setzen oder einzelne Medienplayer zu steuern. Die Paketversion in Debian Jessie und Stretch ist zwar aktuell zur stabilen Upstreamversion, aber es gibt neuere Betaversionen. Falls man KShutdown also unter Debian mit KF5/Plasma 5 direkt aus den Quellen kompilieren möchte sind folgende Schritte nötig:

  1. Entwicklerpakete installieren
    sudo apt install build-essential libkf5config-dev libkf5configwidgets-dev libkf5xmlgui-dev libkf5notifications-dev libkf5notifyconfig-dev libkf5idletime-dev gettext
  2. Quellcode holen
    Entweder das Zipfile herunterladen: http://kshutdown.sourceforge.net/download.html
    Oder über Subversion:

    svn checkout http://svn.code.sf.net/p/kshutdown/code/trunk/kshutdown2 kshutdown-code
  3. Im Quellcode-Verzeichnis:
    ./Setup-kf5.sh
    
    sudo make install

    Das war’s! Mehr Infos zum Kompilieren unter KDE4, generell Qt für Gnome und Xfce oder auch Windows gibt es auf der Seite von KShutdown.

Quicktipp: Systemressourcen sparen

Moderne Browser sind echte Monster wenn es um Systemressourcen geht. Egal ob Firefox, Chromium oder Epiphany Gnome Web – mit etwas Komfortbedarf steigt auch exponentiell die Speicher- und CPU-Last.

Anstatt jetzt das Programm zu beenden und beim nächsten Start ewig zu warten, bis alle zig Tabs wieder geladen sind, greifst du ganz einfach auf folgenden Befehl zurück:

pkill -STOP firefox

Und wenn es weitergehen soll:

pkill -CONT firefox

Fertig!

(Bildquelle CC0)

Quassel IRC und Let’s Encrypt unter Debian

Wer weechat/screen bzw. irssi kennt, dem ist das Prinzip geläufig: ein kleiner Server ist dauerhaft mit dem IRC verbunden, der Nutzer verbindet sich darauf und hat somit die Möglichkeit eines Backlogs um Chats auch später nachlesen zu können. Aus Gründen der Faulheit und weil ich lieber grafische Clients als terminalbasierte habe, verwende ich zu diesem Zweck den Client „Quassel„. Besser gesagt: die Kombination aus Quassel Core und Quassel Client, letzteren sowohl am PC als auch auf mobilen Android-Geräten. Auch unter Windows 7 funktioniert das übrigens einwandfrei!

Die Ausgangssituation

Quassel Core erstellt bei der Installation direkt ein selbst-signiertes Zertifikat für die Transportverschlüsselung über SSL. Das ist okay, mit der – optional einmaligen – Meldung dazu im Client kann ich gut leben. Nun hat der kleine VPS aber für den darauf laufenden Webserver seit kurzem ein gültiges Zertifikat von Let’s Encrypt. Warum also nicht das auch für Quassel nutzen?

So geht’s!

Ich gehe davon aus, dass du Debian auf deinem System nutzt. Bei anderen Distributionen sollte das aber ähnlich bis identisch funktionieren.

  1. Als erstes überprüfst du, ob dein Quassel Core normal gestartet wurde oder als Systemdienst läuft. Wenn dein init System dir folgende Ausgabe liefert,
    # service quasselcore status
     quasselcore.service - LSB: distributed IRC client using a central core component
     Loaded: loaded (/etc/init.d/quasselcore)
     Active: active (running)...
  2. Je nachdem, wie du Quassel serverseitig betreibst, liegt das bestehende Zertifikat unter:
    • ~/.config/quassel-irc.org/ (Nutzer)
    • /var/lib/quassel/ (Systemdienst)
  3. Das existierende Zertifikat sichern wir lieber mal, man weiß ja nie:
    # cp /var/lib/quassel/quasselCert.pem /var/lib/quassel/quasselCert.bkup
  4. Jetzt brauchst du ein PEM Bundle aus dem private key und den fullchain. Dazu fügst du beide Dateien zusammen. In meinem Fall lagen die Dateien im Unterordner für die entsprechende Domain.
    # cd /etc/letsencrypt/live/name.der.seite/
    # cat privkey.pem fullchain.pem >> /var/lib/quasselCert.pem
  5. Abschließend startest du den Quassel Dienst neu – ein einfacher reload genügt nicht!
    # service quassel restart

Das war’s schon. Ab sofort läuft alles wie bisher – nur eben mit gültigem SSL-Zertifikat.
Ach ja: wer lieber Weechat mag, der legt das PEM Bundle einfach unter ~/.weechat/ssl ab und lädt mit /relay sslcertkey das neu Zertifikat.

Howto: APT mit bash-completion

Im Zuge der Veröffentlichung von APT 1.1 hatte ich mir vorgenommen, nicht mehr das doch recht umständliche apt-get (mit Kosorten wie apt-cache) zu nutzen sondern stattdessen komplett auf die neue, deutlich einfacher Syntax umzustellen. Der Versuch lief bis dato auch recht gut, wobei ich aber von Anfang an die automatische Vervollständigung von Befehlen und Optionen vermisst habe. Oder kurz gesagt: bash-completion ging nicht.

Die Suche im Netz nach „apt“ und „bash-completion“ in verschiedenen Kombinationen war zwar ergiebig, aber nicht gerade hilfreich. Einzig auf askubuntu.com bin ich über ein kurzes Script gestolpert, das sowie dessen Einrichtung ich euch nicht vorenthalten möchte:

  1. Datei mit root Rechten anlegen/öffnen:
    # vim /usr/share/bash-completion/completions/apt
  2. Folgenden bash code kopieren und dort einfügen:
    # Debian apt(8) completion                             -*- shell-script -*-
    
    _apt()
    {
        local cur prev words cword
        _init_completion || return
    
        local special i
        for (( i=0; i < ${#words[@]}-1; i++ )); do if [[ ${words[i]} == @(list|search|show|update|install|remove|upgrade|full-upgrade|edit-sources|dist-upgrade|purge) ]]; then special=${words[i]} fi done if [[ -n $special ]]; then case $special in remove|purge) if [[ -f /etc/debian_version ]]; then # Debian system COMPREPLY=( $( \ _xfunc dpkg _comp_dpkg_installed_packages $cur ) ) else # assume RPM based _xfunc rpm _rpm_installed_packages fi return 0 ;; *) COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" \ 2> /dev/null ) )
                    return 0
                    ;;
            esac
        fi
    
        case $prev in
            -c|--config-file)
                 _filedir
                 return 0
                 ;;
            -t|--target-release|--default-release)
                 COMPREPLY=( $( apt-cache policy | \
                     command grep "release.o=Debian,a=$cur" | \
                     sed -e "s/.*a=\(\w*\).*/\1/" | uniq 2> /dev/null) )
                 return 0
                 ;;
        esac
    
        if [[ "$cur" == -* ]]; then
            COMPREPLY=( $( compgen -W '-d -f -h -v -m -q -s -y -u -t -b -c -o
                --download-only --fix-broken --help --version --ignore-missing
                --fix-missing --no-download --quiet --simulate --just-print
                --dry-run --recon --no-act --yes --assume-yes --show-upgraded
                --only-source --compile --build --ignore-hold --target-release
                --no-upgrade --force-yes --print-uris --purge --reinstall
                --list-cleanup --default-release --trivial-only --no-remove
                --diff-only --no-install-recommends --tar-only --config-file
                --option --auto-remove' -- "$cur" ) )
        else
            COMPREPLY=( $( compgen -W 'list search show update install 
                remove upgrade full-upgrade edit-sources dist-upgrade 
                purge' -- "$cur" ) )
        fi
    
        return 0
    } &&
    complete -F _apt apt
    
    # ex: ts=4 sw=4 et filetype=sh
  3. Speichern und abschließend als normaler Nutzer die .bashrc neu einlesen:
    $ source .bashrc

Fertig! Jetzt habt ihr die Vervollständigung für folgende APT Optionen: list search show update install remove upgrade full-upgrade edit-sources dist-upgrade purge

(Quelle, Code lizenziert unter GPL)

Spotify unter Linux: Zwei Kurztipps

Mit Debian & Derivaten Spotify zu nutzen ist ja kein Hexenwerk, hierfür gibt es zum Glück eine recht einfache Anleitung. Zwei Dinge funktionierten bei mir aber nicht bzw. haben mich gestört.

1. Fehlende libgcrypt.so.11

Sollte nach der Installation beim ersten Start nichts passieren und beim Aufruf über das Terminal eine fehlende „libgcrypt.so.11“ bemängelt werden, reicht es das Paket libgcrypt11 aus den Wheezy-Repositories zu installieren. Dies gilt natürlich nur für Jessie oder – wie in meinem Fall – für Stretch. Die Datei gibt es hier zum Download für die jeweilige Architektur, im Normalfall amd64.

sudo dpkg -i libgcrypt11_1.5.0-5+deb7u1_amd64.deb

2. Nervige Benachrichtigungen

screenshot-spotify-notification
Beim jedem Songwechsel meint Spotify mir das mitteilen zu müssen. Ich bin nicht doof, ich merke wenn ein Lied zu Ende ist und das nächste beginnt. Leider gibt es in den Einstellungen keine Möglichkeit diese Funktion zu deaktivieren. Also hilft nur die Brechstange über das config file:

vim ~/.config/spotify/Users/[Spotify Nutzername]-user/prefs

Dort folgende Zeile einfügen und danach Spotify neu starten:

ui.track_notifications_enabled=false

Das war’s, schon ist Ruhe!

 

Ein WLAN-Radio mit RaspberryPi und Touchdisplay selbstgebaut

Eins vorweg: Du solltest ein bisschen Grundwissen mitbringen, was den RaspberryPi und Linuxsysteme angeht. Ich erkläre hier nicht alles.

Schon länger wollte ich ein WLAN-Radio haben. Durch unsere innenliegende Küche, den damit miserablen UKW-Empfang und „die Hits der 70er, 80er, 90er und das Beste von Heute“ wurde der Wunsch noch akuter. Wenn nicht mal Bayern 1 für die Bundesliga-Konferenz reingeht, ist das schon bitter. WLAN-Radios von den gängigen Herstellern sind aber recht teuer und unflexibel in der Bedienung: Ab 80€ aufwärts ist mir schlicht viel zu viel Geld für „nur“ ein Radio.

Also habe ich mich für die Selbstbauvariante mit einem RaspberryPi entschieden. Hier gibt es eine Vielzahl von Lösungen mit Bedienung durch LCD-Displays und manuellen Knöpfen, sowie ein paar Schöne mit Touchdisplay. Letzteren Weg habe ich gewählt.

Material

Vorüberlegungen

Ich habe verschiedene Lösungen ausprobiert, darunter das RPi Tron Radio und den Raspbian Tron Radio lema67 Mod. Teilweise hat das auch funktioniert, Problem war aber die unterschiedliche Displaygröße (2,8 vs. 3,2 Zoll) sowie eine unfertige Konfiguration des Touchdisplays, die ich selbst nicht wirklich verstanden geschweige denn hinbekommen habe.

Also war mein Weg nach einigem (!) Probieren die Kombination aus dem vorbereiteten Raspbian Image von Watterott für 8-Bit SPI Version 2015-05-24 und der newTRON-Radio Oberfläche. Der große Vorteil von newTRON ist die Skalierbarkeit: dank Python und SVG-Grafiken passt sich die Darstellung automatisch an die jeweils verwendete Displaygröße an.

Die Einrichtung – Schritt für Schritt

  1. Raspbian Image herunterladen, entzippen und mit dd auf die Speicherkarte bringen
    ~# dd if=raspbian_wheezy_armhf_fbtft_02.2015.img of=/dev/sdX oflag=direct bs=1M
  2. Zweite Partition mounten und in /etc/network/interfaces WLAN SSID und Passwort hinterlegen:
    auto wlan0
    iface wlan0 inet dhcp
    wpa-ssid "Wlanname"
    wpa-psk "Wlan Passwort"
  3. Das Installerscript aus dem Forenbeitrag (ganz unten am ersten Beitrag) herunterladen und in /home/pi/ ablegen. Für den Download musst du dich im Forum registrieren, was eh eine gute Idee ist, wenn du dich für RaspberryPi Themen interessierst!
  4. Touchdisplay am RaspberryPi aufstecken, Speicherkarte einlegen und den Pi starten. Das Gerät startet und auf dem Display erscheinen die üblichen Zeilen eines bootenden Linux. Nach einer Weile fängt der WLAN-Stick an zu blinken und des Pi lässt sich pingen.
  5. Du loggst dich via SSH mit user „pi“ und „raspberry“ als Passwort auf dem RaspberryPi ein und aktualisierst die Paketliste: sudo apt-get update
    Wichtig: Auf keinen Fall das System aktualisieren! (upgrade oder dist-upgrade). Das installiert eine Version von python-pygame die mit der Firmware des Pi nicht klarkommt. Das newTRON Radio startet dann nicht!
  6. Wenn die Paketliste aktualisiert ist startest du die Installation von newTRON:
    sh ./newtron-radio-setup.sh
    Das dauerte eine Weile, hol dir mal nen Kaffee. Sobald die Installation abgeschlossen ist, fügst du in die Datei /etc/rc.local noch die Zeile /usr/local/bin/newtron-radio vor exit 0 ein. Sonst sollte in der Datei nichts stehen!
  7. Im Anschluss startest du den RaspberryPi neu. Wenn alles geklappt hat, sollte das System direkt nach dem Booten newTRON starten und anfangen Musik abzuspielen. Natürlich nur falls du Boxen oder testweise Kopfhörer angeschlossen hast. ;)

Für mich steht noch der Bau eines passenden Gehäuses auf dem Plan. Ich möchte das aus Holz sägen und kleine Aktivboxen einbauen, die über USB mit Strom versorgt werden.

Copyright © 2017 vinzv

Theme von Anders Norén↑ ↑