Skip to content

CAs hinzufügen ...

linux Für den Fall, dass das noch jemand anderes benötigt.

Um andere Certificate Authorities (CAs) zu Linux hinzuzufügen, sind nur kleine Schritte nötig. Hier einmal am Beispiel CAcert.

Debian:
curl http://www.cacert.org/certs/root.crt -o /usr/local/share/ca-certificates/cacert_root.crt
curl http://www.cacert.org/certs/class3.crt -o /usr/local/share/ca-certificates/cacert_class3.crt
update-ca-certificates


CentOS:
update-ca-trust enable
curl http://www.cacert.org/certs/root.crt -o /etc/pki/ca-trust/source/anchors/cacert_root.crt
curl http://www.cacert.org/certs/class3.crt -o /etc/pki/ca-trust/source/anchors/cacert_class3.crt
update-ca-trust extract


ACHTUNG: In jedem Fall sollte vor dem Ausführen von update-ca-certificates bzw. update-ca-trust extract die Fingerprints der Zertifikate überprüft werden.

Wie Leute wirklich arbeiten ...

gedanken Ich habe in diesen Artikel - LinuxCon Preview: Q&A with SUSE’s Michael Miller - den folgenden sehr guten Satz gefunden.

Though container technology has been in Linux for some years, its only recently that the implementation and tooling has started to align with how people really work.


Übersetzt in etwa, "Obwohl die Container-Technologie schon lange in Linux ist, ist es erst jetzt soweit, dass die Implementierung und die Werkzeuge mit der Arbeitsweise der Leute korrespondieren.".

Unabhängig von Containern finde ich dass das auf sehr viele Open-Source-Produkte zutrifft, natürlich auch auf ein paar Closed-Source-Projekte.

Perl ...

perl In den kommenden Tagen werde ich ein paar Artikel zu Perl und insbesondere auch zu Perl 6 veröffentlichen. Um aufkommenden Diskussionen vorzubeugen, muss ich hier einmal betonen, dass Perl aufgrund von schlechtem Marketing und einer viel zu frühen Ankündigung von Perl 6 sehr viel an Boden verloren hat und meiner Meinung nach diesen auch nicht mehr aufholen wird.

Die Rolle der Programmiersprache bzw. Skriptsprache, die überall installiert ist, hat zum Einen die immer stärker werdende Bash und zum Anderen Python übernommen. Tatsächlich finde ich auch, dass Python eine sehr "schöne" Programmiersprache ist (an dieser Stelle sei erwähnt, dass ich eher Skripter als Programmierer bin).

Ja, Ruby spielt auch noch eine Rolle, aber meiner Meinung nach eher oder stärker bei Webanwendungen als in der Systemadministration (meinem Arbeitsfeld). Ausnahmen wie Puppet bestätigen die Regel.

Bei grösseren Anwendungen könnte Perl 6 tatsächlich auch wieder eine Rolle spielen. Warum ich das vermute, werde ich vielleicht in den folgenden Artikeln darlegen können.

Ein grosses und nicht zu unterschätzendes Plus von Perl ist allerdings die internationale Perl-Community, die einfach nur grossartig ist und die uns Events wie den Swiss Perl Workshop 2015 mit Perl 6 Hackathon durchführen lässt und Gäste aus der ganzen Welt anzieht. Die Community bewegt mich auch dazu, mich weiter für Perl einzusetzen und eine Rolle im Perl-Verein Schweiz zu übernehmen.

Durch die grossartigen Sponsoren, die auch zu einer gut funktionierenden Community gehören, konnten wir die Reisekosten der Perl 6 Core Entwickler übernehmen und hatten so unter anderem auch Larry Wall zu Gast. Zum diesjährigen Swiss Perl Workshop wird es auch einen Artikel geben.

Ich muss gestehen, dass mir andere Communities neben denen von Fedora, Ubuntu und Perl gar nicht auffallen, was aber auch an meinem begrenzten Blickfeld liegt. Wenn Ihr das anders sehr, bin ich für Kommentare hier sehr dankbar.

Open-Source-Engagement ...

gedanken Eigentlich sehr schade, dass die gängigen "Karriereportale" oder "Business Netzwerke" keine Möglichkeit bieten, in sinnvoller Art und Weise das Engagement rund um Open-Source-Software sinnvoll abzubilden.

Genau genommen, zählt es auch nicht zur Berufserfahrung, aber viele Firmen wollen gerne wissen, ob sich die (potentiellen) Mitarbeiter auch anderweitig engagiere. Gerade im IT-Bereich ist es nicht unüblich, verschiedene "Projekte" zu begleiten.

Das gilt im gleichen Mass auch für unbezahlte ehrenamtliche Arbeit, die in der Freizeit geleistet wird.

Ich habe mir jetzt so beholfen, dass ich bei Xing und LinkedIn Mitarbeiter des nicht existenten Unternehmens "Open Source und Open Knowledge" geworden bin und dort als Stellenbeschreibung "Contributor" angegeben habe und die Projekte aufliste, an denen ich mitarbeite.

Vielleicht macht das ja der Eine oder Andere von Euch auch so.

daterem.py vs. daterem.pl ...

Ich muss bzw. darf mich mit der Programmiersprache Python auseinandersetzen. Was liegt da näher, ein selbstgeschriebenes Perl-Skript nach Python zu migrieren? Nichts. Also habe ich es getan.

Die Ergebnisse lassen sich auf GitHub sehen.

Kritik ist ausdrücklich erwünscht, ich kann davon nur lernen.

Diesen Artikel wollte ich nicht Python vs. Perl nennen, weil beide Programmiersprachen ihre Berechtigung haben und es gibt ja nicht wirklich einen Streit zwischen beiden, nur unterschiedliche Philosophien. Einer von vielen Gründen ist, dass Perl von einem Linguisten - Larry Wall - entwickelt wurde und Python von einem Mathematiker - Guido van Rossum.

So, hier kommen die Dinge, die mir beim Umschreiben aufgefallen sind. Achtung! Ich bin kein Programmierer, sondern eher ein Skripter ...

Die folgenden Punkte kann meiner Ansicht nach Python besser:
  • Datumshandling mit mitgelieferten Bibliotheken: das Modul time ist doch deutlich komfortabler als das Perl-Pendant Time::local (zum Wert für Monat muss 1 und zum Wert von Jahr muss 1900 addiert werden).
  • Struktur: Da Bei Python die Einrückungen eine Rolle spielen, kann auf geschweifte Klammern für Codeblöcke verzichtet werden, das gefällt mir richtig gut.
  • Listen: Der Umgang mit Listen gefällt mir auch besser als bei Perl, aber ich gebe zu, dass das Geschmackssache sein könnte.


Aber auch Perl hat seine Stärken:
  • Reguläre Ausdrücke, nun, was soll ich schreiben, reguläre Ausrücke gehen direkt und wesentlich unkomplizierter als bei Python, wo sie per Modul nachgerüstet werden müssen. Es hat einen Grund, dass es einen Namen gibt "PRE - Perl Regular Expressions".
  • Variablenhandling: Ich habe mich daran gewöhnt, dass ich eine Variable sowohl als String wie auch als Zahl verwenden kann, ohne umwandeln zu müssen. Gut, Python ist schwach typisiert, aber wenn der Typ feststeht, muss man konvertieren.
  • Assoziative Arrays gefallen mir deutlich besser als Dictionaries, das ist wieder einmal Geschmackssache.
  • Nachgestelles "if" print $a if ($a == $b) ist wirklich hübscher als ein Mehrzeiler.


Es gibt gute Gründe, die zu den Entscheidungen in den Programmiersprachen geführt haben. Ich möchte auch nicht in "besser" oder "schlechter" einteilen, das ist doof. Alles, was man mit der einen Programmiersprache erledigen kann, kann man auch mit der anderen tun.

IKEA-Effekt ...

gedanken Bei Google+ habe ich neulich vom IKEA-Effekt gehört. Kurz gesagt, sorgt der IKEA-Effekt dafür, dass man Dingen, die man selber gebaut oder selber entworfen hat, höhere Wertschätzung entgegenbringt als Dingen, die man fertig gekauft, benutzt.

Das kann natürlich neben vielen anderen einer der Gründe sein, weshalb Entwickler und Anwender von Open-Source-Software von dem Prinzip Open Source so überzeugt sind. Sehr interessanter Gedanke, oder?

Serendipity 2.0.2 ...

serendipity Vergangenen Freitag ist die Version 2.0.2 des "besten Blogs der Welt" erschienen.

Das Release adressiert drei Sicherheitsprobleme, die dankenswerterweise von der Firma Curesec GmbH bzw. deren Mitarbeiter Tim Coen gefunden wurde. Vielen Dank dafür!

Update funktioniert - eigentlich wie immer - durch "Überkopieren" und Aufrufen der URL.

Hashes in der Bash ...

Weil ich es gerade für einen Kollegen gebraucht habe.

Ein eher selten genutztes Feature in der Bash sind assoziative Arrays (Hashes). Ab Bash Version 4 geht das ganz ohne Hilfskonstrukte.

#!/bin/bash

declare -A dns=(
    [mond]=192.168.0.1
    [erde]=192.168.2.3
    [saturn]=192.168.7.8
)

echo "Alle Keys:   ${!dns[@]}"
echo "Alle Values: ${dns[@]}"
echo

for host in ${!dns[@]}; do
    ip=${dns[${host}]}
    echo "${host} hat die IP-Adresse ${ip}"
done


Schlüssel und Werte dürfen "natürlich" auch Leerzeichen enthalten. Dann müssen diese allerdings - wie bekannt - in Anführungszeichen stehen.

Ergebnis des Skriptes:

Alle Keys:   erde saturn mond
Alle Values: 192.168.2.3 192.168.7.8 192.168.0.1

erde hat die IP-Adresse 192.168.2.3
saturn hat die IP-Adresse 192.168.7.8
mond hat die IP-Adresse 192.168.0.1

Fedora 22 ...

fedora Mal schnell wegbloggen, ich habe vor 1,5 Wochen mein Hauptarbeitsgerät mittels fedup von Fedora 21 auf Fedora 22 aktualisiert. Dabei war ich ziemlich überrascht, wie reibunglos alles funktioniert hat. Das Update von KDE 4.x auf Plasma 5 hat sehr gut funktioniert!

Interessanterweise wurden auch die eingebundenen Fremdrepositories angefasst.

"Normalerweise" installiere ich neue Releases direkt mit der ISO-Datei neu, das war nur ein Test, ob es funktioniert und ich muss sagen: Prima!

Schaltsekunde ...

linux So soll es sein:

05:06:02 [dirk@moas:~] $ sudo grep -i leap /var/log/messages
Jul 1 01:59:59 moas kernel: Clock: inserting leap second 23:59:60 UTC
Jul 1 02:00:00 moas ntpd[24383]: 0.0.0.0 061b 0b leap_event

Globales gitignore ...

Wenn man Dateien aus der Versionskontrolle mit git ausschliessen möchte, kann man im Repository eine Datei .gitignore anlegen. Das ist sinnvoll, wenn es Dateien gibt, die in nur einem Repository ausgeschlossen werden sollen.

Anders ist es, wenn man Backupdateien des Editors ausschliessen möchte. Da in der Regel mehrere Menschen an einem Projekt arbeiten und vielleicht sogar jeder einen anderen Editor benutzt, ist es sinnvoller, dass jeder die Dateien ausschliesst, die seinem Editor entsprechen.

Dazu kann mit dem folgenden Kommando die globale Variable core.excludesfile gesetzt werden, die einen Dateinamen beinhaltet, in der die globalen Ausschlusskriterien zu finden sind.
git config --global core.excludesfile ~/.gitignore_global


Bei mir enthält sie derzeit nur:
*~
Das sind die Backupdateien von vim.

Willkommen Debian Jessie ...

debian Am gestrigen Sonntag wurde Debian 8.0, Codename "Jessie" veröffentlicht.

Neben der üblichen Versionspflege ist die vermutlich grösste Änderung die umstrittene Umstellung von System-V-Init auf Systemd (ich persönlich begrüsse das sehr).

Die weiteren Änderungen sind zu zahlreich, um sie in einem kurzen Blogartikel zu beleuchten, das haben andere bereits erledigt. Es lohnt sich in jedem Fall ein Blick in die (auch in deutscher Sprache erhältlichen) Releasenotes oder dem Artikel bei Pro-Linux.

Wer die Informationen gerne in Form von Slides haben möchte, wird bei Michael Prokop fündig (PDF) oder kann sich die "Folien" (HTML) von Axel anschauen.

Ich freue mich sehr darüber, dass sich das LTS-Modell durchsetzt. LTS steht für Long Term Support und in Debian dafür, dass die Version fünf Jahre lang mit Sicherheitsupdates versorgt wird. Die Seite LTS im Debian-Wiki klärt über das "wie" auf.

Blogparade Webspace-Inventar ...

An Blogparaden habe ich ja schon hundert Jahre nicht mehr teilgenommen. Ein Grund mehr, es mal wieder zu tun.

Christoph fragte: Was ist auf deinem Webspace installiert?

Zuerst einmal die sichtbaren Dienste:

Schon sehr lange kommt Serendipity als Blogsoftware zum Einsatz. Über die Vorzüge habe ich schon viel geschrieben. Das möchte ich hier nicht ausrollen.

Piwik sorgt für die Nutzerstatistik.

Wenn einmal ein Wiki gebraucht wird, hilft DokuWiki.

Yourls ist ein URL-Verkürzungsdienst, mit dem ich beispielsweise d5e.org/technik auf eine statische Seite hier im Blog umleite.

Intern oder auf Einladung:

Tiny Tiny RSS ist mein Feedreader, auch darüber habe ich hier schon einiges geschrieben.

Mit Kanboard plane ich private Projekte. Das Tool ist gut und die Aussage des Programmierers "No fancy technologies, we don't care about the last hipster framework" finde ich auch klasse. Minimalistisch, schnell und gut (steht nicht im Weg).

Den "Datenspeicherdienst" ownCloud muss ich auch nicht weiter erklären, oder.

Roundcube ist mein Webmailer.

Auf dem Serendipity-Treffen habe ich mich von Adminer überzeugen lassen. Das Ding ist rasend schnell und nicht nur für MySQL / MariaDB geeignet.

Für Show your Places hätte ich gerne eine aktuellere Alternative. Hiermit kann man Karten auf OpenStreetMap-Basis erstellen.

Ausgemustert, nicht aufgrund mangelnder Qualität, sondern, weil ich sie nicht mehr benötige:

Trac, Projekttool mit Wiki, Quellcode-Browser und Ticket-System.

Etherpad Lite, kollaborativer Editor.

Sticky Notes als Pastebin.

Firtz, Podcast-Publishing.

phpMyAdmin, Datenbankverwaltungstool.

Horde Groupware Webmail Edition, Mail, Kalender und mehr.

Tiny Tiny RSS update daemon und systemd ...

Um den update daemon von Tiny Tiny RSS unter systemd (CentOS 7) auch bei einem Serverneustart direkt verfügbar zu haben, habe ich das unten stehende Unitfile geschrieben, vielleicht hilft es auch Euch.

Man kann von systemd halten, was man möchte, ich finde es aber deutlich eleganter als System V Initskripte.

[Unit]
Description=Tiny Tiny RSS update daemon
After=network.target mariadb.service
Requires=mariadb.service

[Service]
User=apache
Group=apache
WorkingDirectory=/⁠var/⁠www/⁠html/⁠ttr
Type=simple
StandardOutput=null
StandardError=syslog
ExecStart=/⁠usr/⁠bin/⁠php ./⁠update_daemon2.php
PrivateTmp=true
InaccessibleDirectories=/⁠home /⁠root /⁠boot /⁠opt /⁠mnt /⁠media
ReadOnlyDirectories=/⁠etc /⁠usr

[Install]
WantedBy=multi-⁠user.target


Einfach nach /lib/systemd/system/ttrss-update.service kopieren und mittels systemctl daemon-reload einlesen (den Befehl muss man auch ausführen, wenn man das Skript manuell ändert).

Testen mit
systemctl start ttrss-update
systemctl status ttrss-update


und, wenn alles erfolgreich war mit dem folgenden Befehl aktivieren:
systemctl enable ttrss-update