XZ-Kompression, Wheezy Freeze und ab Ubuntu 12.10 keine CDs mehr

Auf der Mailingliste der Debian-Entwickler, debian-devel, wurde vorgestern ein interessantes Thema in Gang gesetzt: "Wheezy release: CDs are not big enough any more"
Irgendwann hat es die Floppies erwischt, nun scheint es so, als ob CDs das gleiche Schicksal ereilen würde. Der Platz geht aus. Debian und Ubuntu unterstützen bisher die Installation einer kompletten Desktopumgebung mit Gnome, KDE, Xfce und LXDE mit jeweils einer separaten CD. Zusätzlich existieren noch Live-CDs, die ich schon scherzhaft in Kebian, Lebian und Xebian umbenennen wollte. Für die restlichen mehr als 30000 Pakete werden weitere CD-Abbilder vorgehalten, die in der Regel nicht gebraucht werden, sofern man über einen Internetanschluss verfügt.
Da der Freeze für Wheezy immer näher rückt, angepeilt ist die zweite Hälfte des Juni, hat Steve McIntyre auf debian-devel die Frage gestellt, wie man nun alle notwendigen Daten auf nur eine CD unterbringen will.

XZ-Kompression

Tatsache ist, dass auch schon in der Vergangenheit nicht jede Komponente des Gnome-Desktops auf der ersten CD Platz fand und deswegen die fehlende Software über das Internet nachgeladen werden mussten. Ein möglicher Lösungsansatz ist die Verwendung von XZ-Kompression anstatt von gzip oder bzip2, das Aufgeben von CDs zu Gunsten von DVDs oder gar die Abkehr von Gnome als Standardinstallation hin zu leichtgewichtigeren Desktopumgebungen wie z.B. LXDE.
XZ-Kompression, auch bekannt unter dem Namen des verwendeten Algorithmus LZMA, bietet hier einige Vorteile. Wer die xz-utils installiert hat und z.B. mit tar und der Option "-J" Daten komprimiert, stellt schon bald die deutlich verbesserte Kompressionsrate fest. XZ scheint bei mir Daten förmlich zu "verdampfen". Große Abbilder von Festplatten oder Partitionen, die ich mit Partimage oder Partclone sichere, werden regelmäßig mit xz komprimiert und auch die ein oder andere SQL-Datei schrumpfte schon von 109 MB auf lediglich 15 MB zusammen. Gerade für Backupzwecke und zum Platzsparen, wenn Daten Monate oder gar Jahre unangetastet bleiben, ist das äußerst nützlich.
Der Nachteil liegt jedoch in der speicher- und zeitintensiveren Erzeugung der Kompression gegenüber den etablierten Formaten gz und bz2. Im Gegensatz dazu erfolgt die Dekompression der Daten nur unwesentlich langsamer als bei gzip und ist ungefähr doppelt so schnell als bei bzip2. Das macht XZ gerade für das Komprimieren von Binärdateien und Softwarepaketen interessant. Arch Linux hat hier schon vor zwei Jahren umgestellt.
Da die Rechenleistung auf den Build-Daemons zur Erzeugung von Binärdateien anfallen, bekommt der Endanwender von der Veränderung nichts mit, sieht man mal von der geringeren Dateigröße ab. Im gleichen Entwickler-Thread wurde aber auch ein Problem eines universellen Betriebssystem angesprochen, denn Debian lässt sich auch mit Hilfe von Debootstrap von fremden Systemen aus installieren. Da ältere Versionen von Debootstrap XZ noch nicht unterstützen, könnte das auch auf Android-Smartphones mit Debian zum Problem werden.

Was macht Ubuntu?

Wie geht Ubuntu mit der selben Herausforderung um? Steve Langasek, Debian-Entwickler, ehemaliger Release Manager und jetzt Angestellter von Canonical, kündigte hier schon mal für Ubuntu 12.10 an, dass es keine CDs mehr geben und die Größe des Installationsabbildes auf 800 MB anwachsen wird. In Zukunft werden also nur noch DVDs, USB-Sticks und natürlich die Netzinstallation unterstützt.
In Anbetracht des bevorstehenden Freeze bei Debian kann ich mir vorstellen, dass die Umstellung auf XZ-Kompression bei den Binärpaketen noch etwas aufgeschoben wird, die das eigentliche Problem leider auch nur verlangsamen können. Für eher wahrscheinlich halte ich da das Szenario "Keine CDs mehr" oder "CD1 + CD2" für eine Desktopinstallation.
Für mich steht aber schon heute fest, ich bleibe weiterhin bei der Netzinstallation bzw. alternativen Installation von Ubuntu. Wie seht ihr das? Sind CDs Geschichte?

Tipp: Probleme mit Nvidia-Treibern lösen – Downgrade von Precise auf Oneiric

Nach meinem Upgrade auf Lubuntu 12.04 stellten sich, wenig überraschend, die gleichen Probleme wie mit Debian Sid ein. Die neuesten Nvidia-Treiber 295.40 verursachen bei mir, Kero und wahrscheinlich noch einer Reihe anderer Leute Verzögerungen beim Verschieben von Anwendungen, die teilweise bis zum Einfrieren des gesamtes Desktops führen können.
Das Problem ist bekannt und betrifft unter anderem Geforce 6, 7 oder 8800GTX/GTS Karten. Ich benutze jedoch eine Geforce 9600 GT, die bis zum Update auf Lubuntu 12.04 einwandfrei funktionierte.
Seid ihr von ähnlichen Problemen betroffen, habt ihr folgende Optionen zur Hand.

1. Nvidia-Treiber komplett entfernen

sudo aptitude purge nvidia-current


Die Treiber lassen sich mit diesem Befehl komplett entfernen. Nach einem Neustart wird der Nouveau-Treiber aktiv, dessen Performance in der Regel für "normalen" Desktopbetrieb ohne anspruchsvolle 3D-Spiele oder Compiz ausreichend ist.

2. Downgrade der Nvidia-Treiber von Precise auf Oneiric

Für diverse Setups sind weiterhin die Nvidia-Treiber notwendig. In diesem Fall könnt ihr einen Downgrade von Nvidia 295.40 (Precise) auf 280.13 (Oneiric) in Erwägung ziehen.

Ein Downgrade kann zu Problemen und anderen Inkompatibilitäten führen. Jetzt wäre der richtige Zeitpunkt für ein Backup. Wer sich bei den folgenden Schritten unsicher ist, sollte sie nicht ausführen!

Öffnet die /etc/apt/sources.list mit eurem bevorzugten Editor und schaltet das alte Apt-Repositorium für Oneiric und die "restricted"-Sektion frei, indem ihr diese Zeilen hinzufügt.

deb http://de.archive.ubuntu.com/ubuntu/ oneiric main restricted
deb http://security.ubuntu.com/ubuntu oneiric-security main restricted

Nvidia-Treiber downgraden

sudo aptitude update
sudo aptitude -t oneiric install nvidia-current


Apt warnt vor dem Downgrade, dass das virtuelle Paket xorg-video-abi-10 nicht gefunden werden kann. Mit "n" lehnt ihr die erste Lösung ab und akzeptiert die zweite. Dies solltet ihr nur tun, wenn ihr auf die zum Entfernen markierten Pakete auch tatsächlich verzichten könnt. Der Vorgang sah bei mir so aus:

sudo aptitude -t oneiric install nvidia-current
Die folgenden Pakete haben verletzte Abhängigkeiten:
 nvidia-current : Hängt ab von: xorg-video-abi-10 , welches ein virtuelles Paket ist.
Die folgenden Aktionen werden diese Abhängigkeiten auflösen:
     Beibehalten der folgenden Pakete in ihrer aktuellen Version:
1)     nvidia-current [Nicht installiert]
Diese Lösung akzeptieren? [Y/n/q/?] n
Die folgenden Aktionen werden diese Abhängigkeiten auflösen:
      Entfernen der folgenden Pakete:
1)      xserver-xorg-input-all
2)      xserver-xorg-input-synaptics
3)      xserver-xorg-video-all
4)      xserver-xorg-video-sisusb
5)      xserver-xorg-video-tdfx
6)      xserver-xorg-video-trident
7)      xserver-xorg-video-vesa
Downgrade der folgenden Pakete:
9)      xorg [1:7.6+12ubuntu1 (now, precise) -> 1:7.6+7ubuntu7.1 (oneiric)]
10)     xserver-xorg [1:7.6+12ubuntu1 (now, precise) -> 1:7.6+7ubuntu7.1 (oneiri
11)     xserver-xorg-core [2:1.11.4-0ubuntu10.1 (now, precise-updates) -> 2:1.
usw.

Nach dem Downgrade ist es am sinnvollsten die neuen Nvidia- und Xserver-Pakete auf "Halt" zu setzen, damit sie beim nächsten Update nicht erneuert werden.
sudo aptitude hold '~nnvidia'
sudo aptitude hold '~nxserver'
Welche Pakete das genau sind, erfahrt ihr mit
aptitude search '~ahold'
In meinem Fall hat das Downgrade das Problem vollständig beseitigt und das System läuft stabil. Ihr solltet nun von Zeit zu Zeit überprüfen, ob es eine neuere Nvidia-Version gibt, die das Problem lösen kann.
Die Pakete lassen sich mit
sudo aptitude unhold '~nnvidia'
sudo aptitude unhold '~nxserver'
wieder zum Aktualisieren freigeben.
Update: 06.05.2012

3. Upgrade auf nvidia-current in Quantal Quetzal

Als dritte Möglichkeit könnt ihr den Nvidia-Treiber auf die aktuelle Version in Ubuntu "Quantal Quetzal" bringen. (z.Z. 295.49). Dazu ersetzt ihr das Wort "oneiric" in den vorhergehenden Schritten durch "quantal".
Bei Lubuntu 12.04 und meiner Geforce 9600 GT funktionierten alle drei nur die ersten beiden Möglichkeiten. Nachdem ich jetzt noch etwas länger mit 295.49 experimentiert habe, treten ab und an immer wieder Ruckler und Verzögerungen beim Verschieben von Fenstern auf. Für mich ist daher diese Version nicht die richtige Lösung.

Lighttpd: Webserver-Konfiguration mit SSL und Authentifizierung


Im folgenden Beitrag geht es mal nicht um die Stärken und Schwächen verschiedener Webserver, sondern um die Konfiguration des Webservers für mein Spieleserver-Projekt linuxiuvat.de, das weiter in der Entstehung ist und bei dem ich fast ausschließlich auf statische Inhalte setze. Wer selbst am überlegen ist, ob er einen Ubuntu-LTS- oder Debian-Server in Zukunft aufsetzen und einen Webserver betreiben möchte, findet hier vielleicht die richtigen Informationen.
Der Artikel kann nicht die gesamte Dokumentation zu Lighttpd ersetzen. Wer aber meine kommentierte Konfigurationsdatei liest und die Abschnitte zu den verschiedenen Modulen dazu in Beziehung setzt, sollte einen guten Überblick bekommen, wie man mit ein paar Handgriffen einen ressourcenschonenden Webserver mit SSL und Authentifizierung für einen eigenen Webauftritt gestalten kann.

Warum Lighttpd?

Für ein privates Projekt mit fast ausschließlich statischen Inhalten ist Lighttpd bestens geeignet. Sein Speicherverbrauch ist äußerst gering, was ihn ideal für eine vServer-Umgebung macht. Im Regelfall zeigt mir htop nach einer Basisinstallation an, dass Lighty ungefähr 1% von den verfügbaren 225 MB des vServers für sich beansprucht und auch mit ein paar zusätzlichen Modulen steigt dieser Wert kaum an.
Lighttpd hat in der Vergangenheit bei viel größeren Projekten bewiesen, dass er sich ideal zum Ausliefern von statischen Inhalten eignet. Außerdem ist die Dokumentation ausgezeichnet und die bedingte Konfiguration empfand ich als übersichtlich und logisch.
Das weitere Angebot an freien Webservern ist wirklich groß. Einen guten Überblick verschafft z.B.

aptitude search '~shttpd'


Nginx ragt hier als weitere sehr gute Alternative heraus. Doch alle müssen sich mit der Referenz, Apache, messen lassen. Die Wahl hängt wie immer von den eigenen Ansprüchen ab, weswegen man nicht pauschal einen Webserver zum Non plus ultra erklären kann.
Wer es wirklich genügsam haben möchte, sollte sich Busybox merken, denn das bringt neben vielen UNIX-Werkzeugen auch einen eigenen Webserver mit! 🙂

Installation

aptitude install lighttpd

Wichtige Fakten

  • Zentrale Konfigurationsdatei: /etc/lighttpd/lighttpd.conf
  • Zusätzliche Konfiguration: /etc/lighttpd/conf-available/
  • Aktivieren bzw. Deaktivieren von Modulen: lighty-enable-mod Name_des_Moduls bzw. lighty-disable-mod Name_des_Moduls. Konfigurationsdateien werden von /conf-available/ nach /conf-enabled/ verlinkt und somit aktiviert.
  • Einziger Benutzer: linuxiuvat
  • Standard-Webserver-Root: /var/www/server
  • Ohne SSL: Symlink von /var/www/linuxiuvat.de -> /home/linuxiuvat/linuxiuvat.de
  • Mit SSL: Zwei Subdomains munin.linuxiuvat.de und stats.linuxiuvat.de
  • Standardmodule: mod_access, mod_alias, mod_compress, mod_redirect, mod_expire
  • Zusätzliche Module: mod_ssl, mod_cgi, mod_auth, mod_status, mod_accesslog

Meine lighttpd.conf

Meine eigene lighttpd.conf in kommentierter Fassung. Fragen, Anregungen oder Kritik bitte jederzeit in die Kommentare posten.

lighttpd.conf

Konfiguration

Virtuelle Hosts

Um virtuelle Hosts zu verwalten, bietet Lighttpd verschiedene Möglichkeiten an. Für größere Projekte empfiehlt sich das schlichte und effektive mod_simple_vhost oder das verbesserte mod_evhost. Wer selbst zum Webhoster werden möchte und zahlreiche Domains verwalten muss, sollte sich die datenbankgestützte und programmierbare Lösung namens mod_mysql_vhost genauer anschauen.
Für kleine Projekte mit einer überschaubaren Anzahl von Domains und Subdomains ist aber Lightys bedingte Konfiguration vollkommen ausreichend.

Hauptseite ohne SSL

Die Inhalte werden auf der Hauptseite unverschlüsselt ausgeliefert, wozu die $SERVER["socket"]-Bedingung Anwendung findet. Das Dokumenten-Wurzelverzeichnis wird in das Home-Verzeichnis des Benutzers linuxiuvat verlinkt. Neue Inhalte werden dort eingestellt. Die Host-Bedingung prüft, ob entweder www.linuxiuvat.de oder nur linuxiuvat.de aufgerufen wurde und führt danach alle Anweisungen im Konfigurationsblock aus. Zusätzlich zur Datei access.log, die später noch vorgestellt wird, ist hier noch der Pfad zu einer angepassten 404-Fehlerseite zu sehen, sowie der Pfad zur error.log.

$SERVER["socket"] == "134.0.24.218:80" {
	$HTTP["host"] =~ "^(www.)?linuxiuvat.de$" {
		server.document-root = "/var/www/linuxiuvat.de"
		server.error-handler-404 = "/e404.htm"
		accesslog.filename = "/var/log/lighttpd/linuxiuvat.de/access.log"
		server.errorlog = "/var/log/lighttpd/linuxiuvat.de/error.log"
    }
}

Mit der folgenden Bedingung lässt sich verhindern, dass die Webseite direkt über die Eingabe der IP-Adresse aufgerufen werden kann, wobei das Modul mod_access Anwendung findet.

$HTTP["host"] =~ "134.0.24.218" {
	url.access-deny = ( "" )
}

mod_cgi

Die einzige CGI-Datei, die ich z.Z. benutze, befindet sich im Verzeichnis /cgi-bin/. Sie kommt zum Einsatz, wenn jemand einen Kommentar in meinem mit Chronicle erzeugten Newsblog hinterlassen möchte.
Das Modul wird mit

lighty-enable-mod cgi


aktiviert.

$HTTP["url"] =~ "^/cgi-bin/" {
	cgi.assign = ( "" => "/usr/bin/perl" )
}

mod_accesslog

Mit dem Modul mod_accesslog werden alle Anfragen an den Webserver mitgeloggt. Aktiviert wird es mit

lighty-enable-mod accesslog


1. /etc/lighttpd/conf-available/10-accesslog

server.modules += ( "mod_accesslog" )
accesslog.filename = "/var/log/lighttpd/access.log"

Damit die Datei access.log für jeden Host einzeln angelegt wird, kann man sie wie bei Lighttpd üblich in eine bedingte Konfiguration einbinden.

accesslog.filename = "/var/log/lighttpd/linuxiuvat.de/access.log"

mod_expire

Das Modul mod_expire hilft dabei statische Inhalte aggressiv zu cachen, d.h. Bilder, CSS- und Javascriptdateien erhalten bei der Übertragung an den Webbrowser ein Verfallsdatum bis zu dem der Browser die Dateien aus seinem Cache lädt anstatt sie neu vom Server anzufordern. Das spart Bandbreite und führt zu schnelleren Ladezeiten.
Aktivieren mit

lighty-enable-mod expire


Die Bedingung lässt sich z.B. so schreiben, dass nur Dateien mit einer bestimmten Dateiendung zwischengespeichert werden sollen. In diesem Fall beträgt die Verfallszeit sieben Tage vom ersten Aufruf an.

	$HTTP["url"] =~ ".(jpg|gif|png|css|js)$" {
	     expire.url = ( "" => "access 7 days" )
	}

Natürlich kann man die Bedingung auch so schreiben, dass die Dateien nur aus zwei verschiedenen Verzeichnissen gecached werden sollen.

	$HTTP["url"] =~ "^/img/|/stats/oa/icons/" {
	     expire.url = ("" => "access 7 days")
	}

Mit Hilfe des Firefox-Plugins Live-HTTP-Headers oder mit curl kann man schnell feststellen, ob tatsächlich der richtige HTTP-Header verschickt wird.

curl -I http://linuxiuvat.de/img/openarena.jpg


Quelle: Forum von nixcraft.com.

mod_ssl

Zum Aktivieren einer verschlüsselten SSL-Verbindung per HTTPS genügt wieder ein
lighty-enable-mod ssl
Das SSL-Zertifikat habe ich mir selbst ausgestellt, was ich für kleine Projekte, bei denen man der einzige Betrachter der verschlüsselten Seite ist auch empfehlen kann. Wer jedoch eine Shop-Seite zusammenzimmert sollte seine Kunden wenn möglich nicht mit einer Warnmeldung im Browser verschrecken und ein "richtiges" Zertifikat kaufen. 🙂

Als Superuser:

openssl req -new -x509 -keyout linuxiuvat.de.pem -out linuxiuvat.de.pem -days 365 -nodes


Die Pem-Datei wurde nach /etc/lighttpd/ssl/linuxiuvat.de/linuxiuvat.de.pem kopiert und die Dateirechte aus Sicherheitsgründen mit chmod 400 eingeschränkt.

1. /etc/lighttpd/conf-available/10-ssl.conf
Ich habe die Konfiguration getrennt und den Teil, der sich um die SSL-Engine selbst dreht in der 10-ssl.conf belassen. Wichtig ist hier nur die richtige Adresse für den Socket einzutragen, also eure IP-Adresse und den Port des Webservers. Alternativ kann man auch :443 oder 0.0.0.0:443 schreiben, wenn man möchte, dass der Webserver auf allen Interfaces Anfragen entgegennimmt. Die Schreibweise muss aber überall die gleiche sein.

$SERVER["socket"] == "134.0.24.218:443" {
     ssl.engine = "enable"
     ssl.pemfile = "/etc/lighttpd/ssl/linuxiuvat.de/linuxiuvat.de.pem"
     ssl.cipher-list = "ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM"
     ssl.honor-cipher-order = "enable"
}

2. /etc/lighttpd/lighttpd.conf
Durch die bedingte Konfiguration sind die beiden Subdomains munin.linuxiuvat.de und stats.linuxiuvat.de nur über HTTPS zu erreichen. Es wurde jeweils das Dokumenten-Wurzelverzeichnis geändert, so dass es auf den Standardausgabepfad von Munin und Awffull zeigt. Die Statusseite ist über https://munin.linuxiuvat.de/status zu erreichen und wird durch das Modul mod_status aktiviert.

$SERVER["socket"] == "134.0.24.218:443" {
		$HTTP["host"] =~ "(^|.)munin.linuxiuvat.de$" {
			server.document-root = "/var/cache/munin/www"
			status.status-url = "/status"
		}
		$HTTP["host"] =~ "(^|.)stats.linuxiuvat.de$" {
			server.document-root = "/var/www/awffull/"
		}
}

mod_auth

Das Authentifizierungsmodul ist notwendig, um den Zugriff auf einzelne Verzeichnisse einzuschränken. In meinem Fall genügt es, dass ich die Munin- und Awffull-Statistiken anschauen kann. Das Modul mod_auth wird mit

lighty-enable-mod auth


aktiviert. Es gibt zwei verschiedene Methoden sich zu authentifizieren - Basic und Digest. Je nach Methode existieren unterschiedliche Backends, wie die Passwörter aufgebaut und gespeichert werden. Ich habe mich für Digest und htdigest entschieden, wodurch das Passwort nicht in Klartext übertragen wird und als MD5-Hash abgespeichert wird. Alle Methoden sind dennoch nur dann wirklich sicher, wenn das Passwort über eine verschlüsselte Verbindung übertragen wird.
1. /etc/lighttpd/conf-available/10-auth.conf

server.modules += ( "mod_auth" )
auth.backend = "htdigest"
auth.backend.htdigest.userfile = "/etc/lighttpd/.passwd"
auth.debug = 2
$HTTP["host"] =~ "(^|.)munin.linuxiuvat.de$" {
 auth.require = ( "" =>
    (
    "method" => "digest",
    "realm" => "privat",
    "require" => "valid-user"
    ),
 )
}

Auth.debug=2 ist sehr gesprächig, aber hilfreich, wenn man mehr über erfolgreiche und nicht erfolgreiche Loginversuche wissen möchte. Die versteckte Passwortdatei .passwd mit den benötigten Inhalten lässt sich wie folgt erstellen. Der "Realm" kann beliebig gewählt werden.

htdigest -c /etc/lighttpd/.passwd 'privat' Bob


Das Programm htdigest befindet sich im Paket apache2-utils und wird nur für diese eine Aufgabe benötigt. Danach hat nur noch der Benutzer Bob mit dem zuvor eingegebenen Passwort Zugriff auf das Verzeichnis, wobei die gesamte Verbindung gegenüber Dritten per SSL abgesichert ist.

mod_status

Mit mod_status gibt es Auskunft über Uptime, Anfragen pro Sekunde und aktive Verbindungen, kurz zusammengefasst also über den Status des Webservers. Die HTML-Seite ist schlicht und übersichtlich. Um die Daten per Munin mit einem Graphen zu visualisieren kann man noch ein ?auto an die URL anhängen, wodurch die Ausgabe als Text dargestellt wird. Hierzu in einem anderen Artikel mehr.
Das Modul wird mit
lighty-enable-mod status
aktiviert. Die Zeile

status.status-url = "/status"

muss wie in der Konfiguration gezeigt innerhalb der bedingten Host-Konfiguration eingefügt werden.

Was sonst noch?

Lighttpd bietet noch weit mehr Möglichkeiten und Module. Das sind zur Zeit aber alle, die ich für mein Projekt und dieses Beispiel verwende. Man sollte im Hinterkopf noch mod_evasive und die Variablen

server.kbytes-per-second
connection.kbytes-per-second

behalten, wenn man den Traffic auf dem Webserver besser steuern möchte.
Für Lighttpd gilt: Fast jedes Problem lässt sich mit der bedingten Konfiguration lösen.

Links

Chronicle: Bloggen mit dem Blogkompilierer

Chronicle ist ein sogenannter Blogkompilierer, der aus einfachen Textdateien, Markdown und HTML ein vollständiges Blog mit Schlagworten, Archiv und RSS-Feeds erstellen kann. Ich hatte ursprünglich vorgesehen alle Webseiten von Hand zu erstellen, da linuxiuvat.de hauptsächlich zur Beschreibung von Spielen, Dokumentation und für Statistiken gedacht ist, für die ein CMS mit dynamischen Inhalten über das Ziel hinaus schießen würde. Auf die Idee nach einem statischen Webseitengenerator wie Chronicle zu suchen, hat mich ein Kommentator gebracht, der gerne mit Hilfe eines RSS-Feeds auf dem Laufenden bleiben wollte.
Wie man Chronicle konfiguriert und bedient, darum geht es in diesem Beitrag.

Installation und Konfiguration

aptitude install chronicle


Es gibt zwei Möglichkeiten Chronicle zu verwenden. Man kann den Blogkompilierer entweder direkt auf dem vServer installieren oder ebenso praktisch auf dem eigenen Rechner zu Hause und verschiebt dann die generierten Seiten per FTP/SSH zum Webserver. Die Einstellungen werden global entweder in /etc/chroniclerc oder für jeden Benutzer einzeln in ~/.chroniclerc vorgenommen.

# Hiervon werden die Blogeinträge gelesen
input = /home/apo/blog/input
# In diesem Verzeichnis liegt später das fertige Blog
output = /home/apo/blog/news
# Name des Themas. Die Themen liegen in /usr/share/chronicle/themes
theme = default
# Anzahl der Blogeinträge auf der Startseite
entry-count = 10
# Anzahl der RSS-Einträge
rss-count = 10
# Wir schreiben die Artikel in HTML. Alternativen sind Markdown und Textile
format = html
# Kommentarfunktion einschalten
no-comments = 0
# Der Name des Blogs
blog_title = Linux iuvat /news

Die Standardeinstellungen sind sinnvoll und es gibt nur noch wenige zusätzliche Optionen. Um einen Blogartikel zu erstellen, genügt es eine Textdatei im Input-Ordner mit dem folgendem Format zu erstellen.

Title: Hallo Welt
Tags: Neuigkeiten, Debian, Ubuntu
Date: 21st April 2012
<h2>Wichtige Nachrichten</h2>
<p>Mein Blog ist online!</p>

Lediglich die Datumsangaben müssen in englischer Notation erstellt werden. Die Ausgabe kann aber mit der Option --lang=german angepasst werden.
Nachdem auf die gleiche Weise alle Blogartikel geschrieben wurden, wird das gesamte Blog mit
chronicle
generiert und landet im vorher definierten Output-Verzeichnis.

Kommentare

Wie im letzten Artikel erwähnt, ist der Nachteil eines statischen Webseitengenerators, dass eine Kommentarfunktion entweder extern ausgelagert oder serverseitige Skripte zusätzlich installiert werden müssen. Im Falle von Chronicle wird aber schon ein CGI-Skript mitgeliefert, dass es möglich macht Kommentare zu verfassen. Diese werden in einer Textdatei gespeichert und beim Neukompilieren des Blogs in die statischen Seiten integriert.
Drei Einstellungen sind in der comments.cgi zu ändern.

my $COMMENT = "/var/www/comments/"
my $TO = 'root@localhost';
my $FROM = 'www-data@vps.example.com';

Der Ordner in dem die Kommentare gespeichert werden, sollte aus Sicherheitsgründen außerhalb des Webserver-Root-Verzeichnisses liegen. Die Benachrichtigungsadresse lässt sich beliebig wählen. Anschließend muss die Datei nur noch in das CGI-Verzeichnis des Webservers kopiert werden. Wer z.B. Lighttpd benutzt, kann das entsprechende CGI-Modul mit
lighty-enable-mod cgi
aktivieren. Zusätzlich muss noch folgendes bedingtes Konstrukt zur Konfiguration in der lighttpd.conf oder /etc/lighttpd/conf-available/10-cgi.conf hinzugefügt werden.

$HTTP["url"] =~ "^/cgi-bin/" {
cgi.assign = ( "" => "/usr/bin/perl" )
}

Die Kommentare werden mit dem Befehl
chronicle --comments=Pfad_zum_Kommentar_Ordner
eingebunden. Es gibt verschiedene Ansätze wie man dem Spamproblem entgegnen kann. Da ich bisher noch keine Probleme damit hatte, ein anderes Mal mehr dazu.

Fazit

Einige Ideen wie Chronicle aussehen kann, findet ihr im Blog des Machers, Steve Kemp, auf der Homepage von Kai Wasserbäch oder auf meiner News-Seite bei linuxiuvat.de.
Die Themen lassen sich mit etwas HTML-Kenntnissen gut anpassen. Chronicle ist schlicht, aber dadurch meiner Meinung auch einfach zu erlernen. Man erhält mit lediglich einem Befehl ein vollständiges Blog mit Schlagworten, Feeds und Archiven, dass ressourcenschonend und schnell ist. Wem das noch nicht zusagt, sollte auch einen Blick auf die Alternativen werfen.

Die eigene Homepage: CMS, Blogkompilierer und statisches XHTML

Ich stand vor der Entscheidung wie ich die Homepage für mein neues Spieleserverprojekt gestalten sollte. Ich schwankte anfangs zwischen einem dynamischen Portal für freie Spiele und selbst geschriebenen statischen HTML-Seiten. Ich habe mich schließlich gegen PHP und Datenbanken entschieden und auf statische Inhalte gesetzt, die zum einen durch Chronicle, einen Blogkompilierer, und zum anderen durch manuell erstelltes XHTML erzeugt werden. Die restlichen Statistiken und Graphen für die einzelnen Spiele werden täglich durch das Auswerten von Logdateien und mit Hilfe von Munin dargestellt.

Die Frage bei so einem Projekt ist: Wie viel Interaktion möchte man eigentlich haben?
Linuxiuvat.de ist keine Clan- oder Gildenseite, sondern lediglich das Erscheinungsbild des virtuellen Servers, auf dem einige freie Spiele laufen. Ich übernehme hier die klassischen Aufgaben als Serveradmin und Macher der Homepage, kann aber natürlich nicht alle Mitglieder eines Clans ersetzen.
Meiner Meinung nach sind Foren oder sogar ein Wiki nur dann sinnvoll, wenn man gleichzeitig eine Community rund um die Spiele aufbauen will, die das Projekt mit Leben füllt. In meinem Fall gibt es nur mich und die Idee irgendwann das Ganze abzuschließen und zum Fazit zu kommen, dass die Möglichkeiten des vServers ausgeschöpft sind. Danach möchte ich nur noch das Bestehende weiterpflegen, selbst eine Runde spielen und zum nächsten Projekt weiterziehen.
Vor diesem Hintergrund und der Tatsache, dass der Spieleserver auch ein praktisches Beispiel ist (es macht vor allem Spaß), wie man mit Freier Software, wenig Ressourcen und auch kostengünstig ein Projekt gestalten kann, wollte ich die Interaktion auf das Notwendige und Sinnvolle beschränken.

Hilfreiche Software

Es gibt sehr viele Möglichkeiten die eigene Homepage zu gestalten. Einige Ideen finden sich z.B. bei Debian und Ubuntu mit

aptitude search '~sweb'


In der Sektion "Web" stecken zahlreiche Content-Management-Systeme, Blogsoftware und Hilfsmittel statische Inhalte zu erschaffen. Eigenes Vorwissen, die verwendete Programmiersprache, Performance und verfügbare Angebote des Webhosters spielen natürlich eine Rolle. Bei einem eigenen VPS kann man aus dem Vollen schöpfen, da es keine technischen Beschränkungen gibt.

Bekannte Content-Management-Systeme

Es gibt hervorragende freie CMS darunter die großen Joomla, Drupal, Typo3, Movable Type und WordPress. Allen ist gemein, dass sie hochentwickelt, stark erweiterbar und vielfältig einsetzbar sind. Vom kleinen Linuxblog bis zur Unternehmenskette mit eigenem Franchise ist alles denkbar. Inhalte und Seitengestaltung sind unabhängig voneinander. Wissen über HTML oder Skriptsprachen ist nützlich jedoch nicht zwingend notwendig. Jeder kann Dank des umfangreichen Backends Inhalte einstellen und verwalten.

  • Anforderungen: PHP, MySQL/PostgreSQL
  • Vorteile: Dynamische Inhalte, Interaktion mit Benutzern ist einfach, unzählige vorgefertigte Plugins und Themen, große Gemeinschaft, gute Dokumentation, sehr flexibel
  • Nachteile: Speicherintensiv, Datenbank und PHP wird benötigt, potentielle Sicherheitslücken, komplexe Bedienung, Einarbeitungszeit notwendig

Eher unbekannte Content-Management-Systeme

Dann gibt es die eher unbekannten CMS, die meist weniger Feature als die großen haben, aber nicht weniger geeignet sind, um kleinere dynamische Projekte zu verwirklichen. Mir fielen insbesondere Zine, PyLucid und TDiary auf, da ich ein wenig mit Zine wegen der Programmierung in Python geliebäugelt habe. PyLucid ist ebenfalls in Python geschrieben und benutzt Django, während TDiary in Ruby verfasst wurde. Hier sind Japanisch- und Englischkenntnisse von Vorteil. Eine weitere interessante Alternative ist WebGUI in Kombination mit Perl und MySQL und DotClear. Leider forderten alle mindestens noch die Installation einer zusätzlichen Datenbank.

  • Anforderungen: Python, Ruby, Perl, MySQL/PostgreSQL
  • Vorteile: Dynamische Inhalte, einfache Interaktion mit Benutzern, einige zusätzliche Plugins und Themen, flexibel, interessante Programmiersprachen
  • Nachteile: Relativ speicherintensiv, Datenbank, Python oder Ruby notwendig, potentielle Sicherheitslücken, weniger umfangreich als die großen CMS

Die Welt der statischen Webseitengeneratoren

Ein Trend unter Techies sind sicherlich Webseitengeneratoren wie Jekyll für Ruby und Hyde für Python, die mit Hilfe von Templates aus Text, Markdown oder HTML die komplette Seitenstruktur einer Webseite unabhängig vom Inhalt erstellen können.
Etwas einfacher aufgebaut, aber nicht weniger effektiv, sind z.B PubTal (Python), WebGen (Ruby) und Blazeblogger.
Mein Favorit, für den ich mich schließlich entschieden habe, war Chronicle, den ich im nächsten Beitrag etwas ausführlicher vorstelle.

Was ist so toll an statischen Blogkompilierern und Webseitengeneratoren?

Ich habe mich für diesen Typ entschieden, weil ich sie für sicher, leichtgewichtig und effizient halte. Natürlich kann man auch Plugins für ein CMS benutzen, die den dynamischen Inhalt in statischen überführen (Stichwort: WP-Super-Cache). Ein Blogkompilierer wie Chronicle macht das von Haus aus. Statische Inhalte werden extrem effizient durch den Webserver ausgeliefert, so dass selbst bei einem mickrigen vServer die Performance selbst unter mittelgroßer Last nicht leiden wird.
Ein normales Projekt benötigt nicht einmal ansatzweise alle Funktionen eines CMS. Hier geht es auch darum realistisch zu bleiben. Weniger ist oft mehr. Außerdem sind diese Generatoren einfach zu bedienen und benötigen weder Datenbank noch eine Skriptsprache um zu funktionieren, was im Regelfall gleichbedeutend ist mit mehr Leistung und geringeren Kosten.
Einen Haken hat die Sache. Interaktion ist ohne zusätzliche Software nicht möglich, woraus ein neues Problem erwächst.

Disqus und Co. sind böse

Wirklich, ist das so? Fakt ist, wenn man auf ausschließlich statische Inhalte setzt, muss man dennoch irgendeine serverseitige Anwendung/Skript installieren, damit Kommentare von Besuchern irgendwie in die Webseite eingebunden werden können. Viele verfallen dann auf externe Dienstleister wie Disqus oder IntenseDebate.
Als Webseitenbetreiber muss man lediglich ein Stück Javascript-Code einbinden und schon werden Kommentare an die Server von Disqus und Co. weitergeleitet und dann auf der eigenen Webseite dargestellt. Disqus macht es wirklich einfach. Keine Spam-Probleme, keine Last auf dem Server, perfekte Integration mit Sozialen Netzwerken. Als Alternative könnten Besucher z.B. eine E-Mail schicken und man bindet dann den Inhalt manuell in die Seite ein, aber hey, wer macht das schon. 😉
Ich bin nicht wirklich der Typ, der hinter jedem erfolgreichen Internetunternehmen den nächsten faschistischen Weltbeherrscher vermutet. Man sollte sich aber schon die Frage stellen, ob man für jede Webseite die Kontrolle über seine Daten an eine externe Stelle abgegeben muss oder nicht. Diese Bedenken hat Jeremy Scheff auf den Punkt gebracht.
Ich persönlich denke, dass man Interaktion und Kontrolle über die Daten auch anders haben kann und das auch nutzen sollte. Im Falle von Chronicle war das z.B. das einfache Einbinden einer einzigen CGI-Datei. Andererseits vielleicht sollten wir einfach an einem wirklich quelloffenen und freien Disqus arbeiten!

Fazit

Die Wahl der Software hängt entscheidend von den eigenen Ansprüchen ab. Wem Geschwindigkeit und Sicherheit wichtig ist, sollte statische Inhalte veröffentlichen, die bevorzugt mit einem Blogkompilierer oder Webseitengenerator erzeugt werden oder auf die händische Methode zurückgreifen. Für mein kleines Projekt werde ich diesen Weg auf jeden Fall weitergehen.

Haiku: Poesie und ein freies Betriebssystem

Als Haiku bezeichnet man eine kurze japanische Gedichtform, deren Ideale stille Kraft, Eleganz und Einfachheit auch das gleichnamige Betriebssystem Haiku teilt. Es gehört zu der Gruppe von Freien Betriebssystemen abseits von Linux, die ich mir näher anschauen wollte, da Haiku nicht nur ein freies und quelloffenes Betriebssytem ist, sondern sich durch die geringen Hardwareanforderungen auch als Alternative zu Linux auf älteren Computern eignet.
Die Wurzeln von Haiku reichen in die 90iger Jahre zurück als BeOS sich aufmachte ein Konkurrent zu Microsoft Windows, MacOS und Linux zu werden. Be Inc., die treibende Kraft hinter BeOS, wollte das Beste aus allen drei Welten verbinden und richtete das Betriebssystem auf Privatanwender und den Heimbereich aus. Zentrale Merkmale des jungen BeOS waren ein sauberes und einheitliches Erscheinungsbild des Desktops und die besondere Ausrichtung auf Multimedia-Anwendungen.
Während Linux von seiner Vielseitigkeit und Freier Software profitierte, konnte das kommerzielle und proprietäre BeOS niemals die kritische Masse erreichen, um gewinnbringend am Markt bestehen zu können, weshalb 2001 Be Inc. Konkurs anmelden musste und die Entwicklung an BeOS offiziell eingestellt wurde.
In den Jahren des Bestehens gelang es BeOS jedoch, trotz wechselnder Ausrichtung auf verschiedene Zielgruppen, eine leidenschaftliche Gruppe von Benutzern und Entwicklern für sich zu gewinnen, die schon kurz nach dem Ende von BeOS zuerst OpenBeOS ins Leben riefen und dieses dann später in Haiku umbenannten. Die Idee zum Namen geht auf die Fehlermeldungen des BeOS eigenen Browsers NetPositive zurück, der diese in Form von Haikus darstellte. 2003 folgte dann eigens die Gründung von Haiku Inc., einem gemeinnützigen Verein, der durch öffentliche Spenden die Weiterentwicklung von Haiku bis heute unterstützt.
Wichtigstes Ziel von Haiku ist es BeOS so originalgetreu wie möglich nachzubauen und dabei die Stärken des einheitlichen Desktops in ein Freies Betriebssystem zu überführen. Viel Starthilfe im Sinne von Quellcode gab es leider nicht. Lediglich der Dateimanager und das Startmenü (Deskbar) wurden damals als Freie Software veröffentlicht, weswegen alle anderen Systemkomponenten inklusive Kernel, Dateisystem und Kernanwendungen von Grund auf neu geschrieben werden mussten. Damit ist Haiku ein von den verschiedenen Linuxdistributionen vollständig abgegrenztes und eigenständiges Projekt und unterscheidet sich auch deutlich von anderen BeOS-Nachfolgeprojekten wie z.B. ZevenOS, dass das Erscheinungsbild von BeOS zwar nachbildet, dabei aber beim Unterbau auf Ubuntu und Debian setzt.

Voraussetzungen und Installation

Laut offizieller Dokumentation wird zumindest ein Pentium III mit 256 RAM zur Inbetriebnahme empfohlen. Es gibt aber auch schon positive Berichte über 128 MB bzw. nur 64 MB RAM mit einem Pentium II Rechner. Wie der Zufall so spielt, benutze ich noch ein paar Laptops dieser Leistungsklasse, darunter auch den Dell Inspiron 4000, der für diesen Test wie geschaffen war.
Zum Herunterladen gibt es die zur Zeit aktuelle dritte R1 Alpha-Version von Haiku als empfohlenes "Anyboot-Abbild" und als ISO-Image, das sich auf eine CD schreiben lässt. Die Anyboot-Variante kann man auch auf USB oder, so wie ich es getan habe, direkt auf die Festplatte mit dd schreiben. Für alle, die sich nicht extra einen älteren Laptop zum Testen ersteigern wollen, bietet sich auch das Abbild für eine virtuelle Maschine an. Ein vorgefertigtes Image zum Ausprobieren für Virtualbox lässt sich auch von virtualboxes.org herunterladen, dass bei mir sehr gut funktionierte.

Ein Überblick

In meinem Fall gelang das Installieren von Haiku durch direktes Schreiben des Abbildes auf die Ersatzfestplatte des Laptops. Nach dem Einschalten begrüßt einen zu erst einmal der Bootsplash.

Trotz meiner immerhin 13 Jahre alten Ersatzfestplatte dauerte der gesamte Bootvorgang weniger als 30 Sekunden vom Start bis zum ersten Anblick des Desktops. Einen Loginmanager wie GDM oder KDM gibt es nicht. Haiku selbst ist zur Zeit noch ein Einbenutzer-System, erst später soll es möglich sein auch mehrere Benutzer gleichzeitig am Rechner arbeiten zu lassen. Eine Portierung auf andere Architekturen außer i386 hängt in großem Maße von der Zeit der Entwickler und weiterer Hilfe ab.
Es gab keine großen "Showstopper" während des Tests. Ich hatte Netzwerkzugang, konnte im Internet surfen und Filme abspielen. Die Anwendungen ließen sich flüssig bedienen. Lediglich das Herunterfahren dauerte unverhältnismäßig lange.

Arbeitsfläche

Haiku erinnert an mehr als nur einer Stelle an die Konzepte moderner Desktopumgebungen mit einer reinen Fenstermanager-Lösung. Wer Openbox oder Fluxbox kennt, wird sich schnell an das Rechtsklick-Menü gewöhnen. Anwendungen, Orte und Befehle lassen sich von dort aufrufen und ausführen.

Standardmäßig befindet sich am oberen rechten Rand die Deskbar, praktisch das Startmenü und die Taskleiste für Haiku. Je nach Vorliebe lässt sie sich ganz leicht mit der Maus an jeden gewünschten Bildschirmrand positionieren und so ausrichten, dass die Deskbar dem klassischen Erscheinungsbild entspricht. Fenster lassen sich wie bei Fluxbox gruppieren (Stack&Tile), so dass Webbrowser und Dateimanager in einem Fenster durch Tabs getrennt erscheinen und beide Anwendungen zusammen wie eine einzelne bewegt und verändert werden können. Das alles wird gut in Haikus Dokumentation zur Benutzeroberfläche erklärt.

Anwendungen

Haiku hat auch einige typische Unix-Elemente zu bieten. So gibt es zum Beispiel einen Terminal, indem sich bekannte Unix-Kommandos ausführen lassen, auch wenn nicht jeder gewohnte Befehl verfügbar ist.

Wie der Screenshot auch zeigt, ist der Ressourcenverbrauch von Haiku gering, so dass 256 MB RAM problemlos zum Ausprobieren ausreichten. Alle Bildschirmaufnahmen ließen sich mit dem Screenshot-Programm dokumentieren. Anschließend konnten sie entweder über den eingehängten USB-Stick oder per SSH auf einen anderen Rechner transferiert werden. Ein SSH-Server ist standardmäßig installiert.
Bei Verwendung von Datenträgern mit einem anderen Dateisystem als Haikus BFS, erscheint eine Warnung, dass man diese nur lesend einhängen sollte. Empfehlenswert, da Haiku noch in einem Alpha-Stadium ist. Ich hatte dennoch keine Probleme die Bilder auf den mit EXT3 formatierten Stick zu schreiben.

In Anlehnung an NetPositive heißt Haikus Browser "Webpositive". Das Web leitet sich von der zu Grunde liegenden WebKit-Engine her, womit Webpositive jetzt wohl der 24. Webkit-Browser ist. 🙂
Das Surfen im Internet gelang auf Anhieb Dank der Möglichkeit eines kabelgebundenen Internetzugangs für meinen Laptop. WLAN funktioniert hingegen zur Zeit nur eingeschränkt unter Haiku. Es wird zwar sowohl unverschlüsseltes als auch nach dem WEP-Standard verschlüsseltes WLAN angeboten, jedoch ist letzteres nicht mehr sicher und da WPA noch nicht möglich ist, ist es auch nicht für den täglichen Gebrauch in unsicheren Netzwerken zu empfehlen.
Die Bilder lassen sich z.B. mit Wonderbrush nachbearbeiten, eines der vielen weiteren Programme, die mit Haiku mitgeliefert werden. Der Philosophie entsprechend gibt es für jeden Anwendungsfall ein Programm. Mit den Applikationen lassen sich die wichtigsten Standardaufgaben erledigen, auch wenn ein Audiorecorder oder das TV-Programm noch auf der ToDo-Liste stehen.

Da Haiku sich als freier Nachfolger von BeOS sieht, durften Multimediafähigkeiten nicht fehlen. Der Media-Player nutzt als Backend ffmpeg, kann damit alle gängigen Formate abspielen und ist für die Zukunft erweiterbar. Verschiedene Anwendungen lassen sich wie bekannt auf mehrere Arbeitsflächen verschieben, die sich in Haiku wiederum frei auf dem gesamten Desktop bewegen lassen.

Den Fensterrahmen kann man beliebig mit der Maus verschieben. Fenster lassen sich nur schließen oder mit der Zoom-Funktion automatisch an den Inhalt anpassen. Eine Verkleinern- oder Vergrößernfunktion sucht man vergeblich, ist aber auch unnötig. Insgesamt ließen sich alle Anwendungen ruckelfrei bewegen und in der Größe anpassen.

Dokumentation und Gemeinschaft

Die hier kurz angesprochenen Anwendungen sind nur ein kleiner Teil dessen, was man sonst noch mit Haiku entdecken kann. Der Webauftritt sowie die bisherige Dokumentation laden zum Stöbern ein. Haikus User Guide bietet einen guten Überblick zum Umfang des Projekts. Der meiste Text ist auch in deutscher Sprache verfügbar, auch wenn hier und da Englisch sicher nützlich sein kann. Mehr Bilder zu Haiku finden sich auch bei einem Rundgang mit der Haiku-Tour.
Kommuniziert wird über Mailinglisten, Foren und dem IRC. Regelmäßig finden auch Treffen statt, wie z.B. vor zwei Wochen BeGeistert in Düsseldorf.

Fazit

Die erste Frage, die sich wohl jeder stellt: Warum brauchen wir Haiku? Die Antwort geben die Entwickler in der FAQ als Antwort auf die Frage: "Why not Linux?" Ziel ist es ein kohärentes System zu schaffen, dass sich nicht in einer Vielzahl von Details und Einstellungsmöglichkeiten verliert, sondern schlicht und einfach funktioniert. Eine Aussage, die Haiku mit ReactOS, mit dem Code ausgetauscht wird, teilt.
In der Tat wollen viele Menschen einfach nur einen Computer haben, der funktioniert und für die es keine Rolle spielt, ob ein X-Server für die Darstellung der Grafik verantwortlich ist oder nicht. Haiku bietet mit seiner leichtgewichtigen und einheitlichen Oberfläche ein Argument für diese Benutzer.
Dennoch finden sich unter Linux ebenfalls sehr gute Distributionen, die ein ebenso vollständiges und leichtgewichtiges Desktoperlebnis garantieren. Ich denke, womit Haiku wuchern kann, ist die Tatsache, dass es eben nicht Linux, sondern etwas Eigenständiges ist. Wenn es nur darum ginge, dass immer nur die größten und am weitesten verbreiteten Betriebssysteme eine Chance bekommen sollten, hätte es Linux sicher auch nicht gegeben.
Haiku funktioniert schon sehr gut und verdient meiner Meinung nach mehr als nur einen Blick. Problematisch kann hingegen die Hardwareunterstützung sein. Größtes Problem von Haiku ist weder Konzept noch Technik, sondern Zeit und eine relativ kleine Nutzergemeinde. Vielleicht hilft der Artikel ein wenig positiv in diese Richtung. 😉
Ich kann Haiku für alle empfehlen, die ein leichtgewichtiges Betriebssystem suchen und mit dem jetzigen Alpha-Status umgehen können oder einfach nur das Besondere wollen. Es macht auf jeden Fall mehr Spaß über Haiku (und die japanischen Gedichte) zu lernen als die x-te Linuxdistribution anzutesten, die nur die Desktopumgebung austauscht.

Lubuntu: Der Weg von LXDE zu einem reinen Openbox-Desktop mit Tint2 und Conky

Ich wollte meinem Lubuntu einen neuen Anstrich verpassen und die standardmäßige LXDE-Desktopumgebung gegen meinen Openbox-Arbeitsplatz austauschen. Ziel war es aber nicht wie üblich von einer minimalen Installation das System aufzubauen, sondern so wenig wie möglich an den vorinstallierten Einstellungen von Lubuntu zu ändern. Ich habe die einzelnen Schritte hier noch einmal dokumentiert, nützliche Quellen angegeben und meine eigene Konfiguration vorgestellt. Ich hoffe, es ist für diejenigen nützlich, die eine schnelle Lubuntu-Installation schätzen, aber anschließend gerne mit wenig Aufwand den Desktop an die eigenen Vorstellungen anpassen möchten.

Vorher und Nachher

Lubuntu benutzt von Haus aus das LXPanel am unteren Bildschirmrand und den Dateimanager PCManFM zum Verwalten des Desktops und der darauf befindlichen Icons. Damit entsteht das klassische Desktopgefühl, wodurch Lubuntu sich in der Standardeinstellung als perfekter Ersatz für all diejenigen eignet, die Gnome 3 und den zahlreichen Gnome-Shell-Varianten nichts abgewinnen können.
Mit ein paar Handgriffen lässt sich aus Lubuntu aber auch ein typischer Openbox-Desktop machen mit Rechsklickmenü, Tint2-Panel und Conky. Zusätzlich habe ich noch Ubuntu One installiert, in das PCManFM-Menü integriert und mir die Alpha des Lubuntu-Software-Centers angeschaut.

vorher
nachher

Konfiguration

Die folgenden Abschnitte sollen nur kurz erklären, was installiert und konfiguriert wurde ohne dabei zu sehr jedes Detail auszuschmücken. Im Idealfall könnt ihr meine Konfigurationsdateien an den entsprechenden Ort kopieren und die Textdateien bearbeiten, wonach sich das entsprechende Ergebnis einstellen sollte.
Wer mehr Informationen zu LXDE und Openbox haben möchte, sollte einen Blick auf die Artikel im Wiki von ubuntuusers.de oder meine kurze Übersicht "Erste Schritte mit Openbox" werfen.
Diese Pakete haben ich insgesamt entfernt oder zusätzlich installiert.

  • Entfernte Pakete: lxpanel
  • Installierte Pakete: tint2, conky, menu, obmenu, nitrogen, ubuntuone-client, ubuntuone-control-panel, lubuntu-software-center

Hintergrundbild

Der einfachste Teil des Ganzen. Damit nicht mehr PCManFM das Hintergrundbild zeichnet, bietet sich dafür z.B. das Programm Nitrogen an, das leicht zu bedienen ist. Programm aufrufen, Bilderverzeichnis mit dem gewünschten Hintergrundbild auswählen, fertig. Eine gute Alternative dazu bleibt weiterhin feh. Das Bild habe ich auf wallbase.cc gefunden.

Openbox- und GTK-Thema

Das Thema des Fenstermanagers lässt sich mit obconf, die Themen der GTK-Anwendungen bequem mit LXAppearance ändern. Ich habe mich erneut für Alghattas entschieden, da es mir schon als Thema für meinen Openbox-Desktop mit Arch Linux gefiel. Ein Problem scheint derzeit zu sein, dass Alghattas nicht für GTK3-Applikationen geeignet ist oder LXAppearance hier einfach schlapp macht.
Lösungen: Wählt ein anderes Thema, tauscht die GTK3-Anwendungen aus oder ignoriert das Ganze. 😉
Entpackt Alghattas nach ~/.themes/ und ihr solltet keine Probleme haben das neue Thema mit obconf und LXAppearance auszuwählen.

Conky

Normalerweise bevorzuge ich eher schlichte Conky-Themen. Mir genügen die wichtigsten Systeminformationen in Textform. Das wars. Langweilig, ich weiß. Für den Showeffekt habe ich deswegen mal nach etwas anderem gesucht und bin bei webupd8.org fündig geworden. Ihr könnt euch das Original des Benutzers despot77 von gnome-look.org herunterladen.
Ich habe die Version leicht angepasst, die Farben geändert und das Lubuntu-Logo verwendet. Mit diesem Conky-Beispiel sieht man recht gut die Möglichkeiten von Lua, womit die Kreise und die Uhr dynamisch gezeichnet werden.
Damit Conky sauber beim Abmelden beendet wird, ist es derzeit noch notwendig in der Datei /etc/lxdm/PostLogout
pkill -9 conky
einzutragen.
Download: Mein Conky
Kopieren nach: ~

Tint2

Ich weiß auch nicht genau, was mich an Tint2 so begeistert. Ich denke, es ist dieser schlichte, aber trotzdem so effektive Ansatz. Aufmerksame Leser erkennen auch hier wieder die Vorlage von Crunchbang Linux. Dieses Mal habe ich mich für einen transparenten Hintergrund und vier Arbeitsflächen entschieden. Da ich mit Conky schon Datum und Uhrzeit darstelle, entfiel der entsprechende Konfigurationsteil bei Tint2. Die Anzahl der Desktops lässt sich mit obconf unter dem Reiter "Arbeitsfläche" ändern.
Download: Meine tint2rc
Kopieren nach: ~/.config/tint2/

Autostart

Es ist ziemlich umständlich bei jedem Neustart das neue Panel, Conky und Nitrogen manuell auszuführen. Damit dies automatisch geschieht, gibt es eine Autostartfunktion, die man bei Lubuntu meiner Meinung nach an zu vielen Stellen suchen muss.
LXDE greift auf die freedesktop.org Standards zurück, was ungewohnt erscheint, wenn man es bisher lediglich mit der Datei autostart im Ordner ~/.config/openbox/ zu tun hatte.
Anwendungen lassen sich bei Lubuntu global in /etc/xdg/lxsession/Lubuntu/autostart automatisch ausführen. Diese Datei sieht bei mir so aus.

@nitrogen --restore
@xscreensaver -no-splash
@xfce4-power-manager
@/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1

Wo sind Tint2 und Conky geblieben? Aus Gründen, die ich nicht nachvollziehen konnte, wurden beide trotz des Eintrags nicht gestartet. Die Alternative ist eine .desktop Datei, z.B. tint2.desktop, anzulegen, sie gemäß dem folgenden Muster zu editieren und dann nach ~/.config/autostart/ zu kopieren.

[Desktop Entry]
Encoding=UTF-8
Name=Tint2
Comment=Panel
GenericName=Tint2
Categories=GTK;Utility;
Exec=tint2
Icon=/usr/share/pixmaps/gksu.png
Terminal=false
Type=Application
NoDisplay=false
StartupNotify=true

Mehr Informationen dazu gibt es im Wiki von ubuntuusers.de unter dem Stichwort Menue.

Rootmenü

Mir gefällt das Openbox-Menü, weil ich hiermit schnellen Zugriff auf alle Anwendungen an jedem Punkt der Arbeitsfläche haben kann, indem ich nur die rechte Maustaste drücke. Im Zusammenspiel mit Tastenkürzeln ist das eine große Zeitersparnis. Zuerst muss man das Menü wie folgt aktivieren.

Rechsklick auf den Desktop -> Einstellungen der Arbeitsfläche -> Fortgeschritten -> Option "Menü mit Fenstermanager anzeigen" aktivieren.

Um den Vorgang rückgängig zu machen, kann man pcmanfm --desktop-pref in einem Terminal ausführen.
Ein Nachteil ist aber am Anfang, dass man dieses Menü zum einen mit obmenu manuell an seine Vorstellungen anpassen muss. In der Regel ändere ich aber nur einige wenige Einträge von Hand, der Rest wird automatisch mit Hilfe des Debian-Menüs generiert. Nach der Installation von menu, trägt man noch folgende Zeilen an die passende Stelle in ~./config/openbox/lubuntu-rc.xml ein.

<!-- You can specify more than one menu file in here and they are all loaded,
       just don't make menu ids clash or, well, it'll be kind of pointless -->
<file>debian-menu.xml</file>
<file>menu.xml</file>

Die beiden Namen zwischen den tags verweisen auf die gleichlautenden Dateinamen in ~/.config/openbox/. Mit dem Befehl update-menus als normaler Benutzer wird das spezielle Debian-Menü neu generiert. Einziger Nachteil, wenn man es nicht global benutzt: Man muss nach dem Entfernen oder einer Neuinstallation von Software update-menus erneut ausführen, damit das Menü angepasst wird.
Download: Meine Openbox-Konfiguration
Kopieren nach:~/.config/openbox/

Ubuntu One und Software-Center

Ubuntu One und das Software-Center werden beide standardmäßig bei Lubuntu nicht vorinstalliert. Sie lassen sich aber schnell mit
aptitude install ubuntuone-client ubuntuone-control-panel software-center
nachinstallieren. Möchte man mit PCManFM Ordner zur Synchronisation freigeben, kann man sich einen zusätzlichen Menüeintrag im Dateimanager erstellen.

Rechtsklick auf einen Ordner -> Öffnen mit -> Befehlszeile -> u1sdtool --create-folder %f

Das Kommandozeilenprogramm u1sdtool lässt sich dann auch genauso zum Auflisten und Entfernen von Ordnern aus UbuntuOne benutzen.
u1sdtool --list-folder
u1sdtool --delete-folder "ID"
Lubuntu entwickelt zusätzlich zum normalen Software-Center noch eine leichtgewichtige Version, die schlicht Lubuntu-Software-Center heißt. Es lässt sich aus dem Lubuntu-Desktop PPA einbinden. Da es sich um eine Entwicklungsversion handelt, sollte man dementsprechend mit dem Paket umgehen. Zur Zeit bemerkt man deutlich das reaktionsfreudige Verhalten, einige der Funktionen des normalen Software-Centers wurden aber noch nicht integriert.

Fazit

Ich denke die größte Hürde bei der Umstellung auf einen klassischen Openbox-Desktop ist zum einen das Finden der passenden Stelle für den Autostart und das Anpassen des Rechtsklickmenüs. Der Rest ist Geschmackssache und schnell erledigt. Zum Schluss noch der Desktop ohne geöffnete Fenster.

Ein Zwischenstand: Meine leichtgewichtigen Freien Betriebssysteme

Es gibt irgendwann den Moment, wenn man ein Problem mit älterer Hardware lösen möchte aber feststellt, dass man mit dem bisherigen Ansatz nicht mehr weiterkommt. Man beginnt sich nach Alternativen umzuschauen, die genau für diesen Anwendungsfall wie gemacht scheinen und fängt an Vergleiche zu ziehen. Ich habe das in der Vergangenheit auch getan und verschiedene Freie Betriebssysteme auf meinen älteren Rechnern ausprobiert. Dabei habe ich stets nach Ideen und Lösungen gesucht, die eigene Wege gehen und nicht einfach Bestehendes abkupfern und für mich ein paar Prinzipien und Ideale definiert, die ein solches Betriebssystem schließlich auszeichnen sollte.
Die folgende Aufzählung schließt nicht nur Linuxdistributionen ein, sondern auch Freie Betriebssysteme, die auf Hardware funktionieren, für die Linux nie vorgesehen war. Es gab noch eine Reihe von anderen Distributionen, die ich mir angeschaut habe, aber letztendlich stachen diese hier aus der Masse heraus.
Außerdem ist das auch ein Zwischenstand und Rückblick. Welche anderen Freien Betriebssystem bieten so viel Mehrwert, dass es sich lohnt hier in der Zukunft Zeit zu investieren? Was muss man noch gesehen haben?
Ich habe bewusst auf eine Rangfolge verzichtet, da das vollkommen belanglos wäre und alles alphabetisch sortiert. Ich denke alle hier genannten Distributionen schlagen sich hervorragend auf moderner, älterer und ältester Hardware und jede davon setzt eigene Akzente.

Arch Linux

Arch Linux ist sicherlich eine der bekanntesten Distributionen, wenn es darum geht ein leichtgewichtiges System von Grund auf an die eigenen Bedürfnisse anzupassen. Archs größte Stärken sind die breitgefächerte Benutzerbasis und die herausragende Dokumentation, die zum Besten gehört, was die Freie Softwarewelt zu bieten hat. Ich mag Arch, weil es eigene Wege beschreitet und sich durch technisch einfache Lösungen von den zahllosen Distributionen abhebt, die nur den Standarddesktop austauschen.
Besondere Merkmale:
K.I.S.S. Prinzip, informierte Gemeinschaft, exzellente Dokumentation, effizienter Paketmanager
Erfolgsgeschichte:
Läuft bei mir parallel zu Debian Sid auf einem Multiboot-System auf dem Inspiron 4000. War eine meiner ersten Erfahrungen mit Gnome 3.
Schlagwort: ArchLinux

ConnochaetOS

Sicherlich wäre Arch Linux die ideale Distribution, wenn sie noch ältere Pentium-Rechner unterstützen würde. Man muss gar nicht so weit in die Ferne schweifen, denn ConnochaetOS erfüllt all diese Wünsche und noch mehr.
Dem Hauptentwickler Henry Jensen ist es mit viel Einsatz und geringsten Mitteln gelungen nicht nur eine Distribution auf Basis von Arch Linux zu gestalten und für ältere Rechner zu optimieren, sondern auch ausschließlich Freie Software nach den GNU-Richtlinien für diese zu verwenden. Das ist sicher nicht der einzige Grund, weswegen ConnochaetOS jeden Respekt verdient, auch wenn ich nicht vollständig mit jedem Punkt dieser Art von Freiheit einverstanden bin.
Besondere Merkmale:
Vorteile von Arch Linux auf i586 Hardware, Freie Software nach den GNU-Richtlinien
Erfolgsgeschichte:
Erfahrungen mit ConnochaetOS auf dem Thinkpad 600
Schlagwort: ConnochaetOS

Crunchbang Linux

Seit dem Umstieg auf Debian Stable hat sich bei Crunchbang im Hintergrund einiges verändert und Philip Newborough, der Lenker des Projekts, hat sich entschieden mit dieser schlanken Openbox-Distribution selbständig zu werden. Drum herum ist eine größere Community mit Forum und Wiki entstanden. Herausragendes Merkmal von Crunchbang ist der benutzerfreundliche und effizient eingerichtete Openbox-Desktop, der einem viel Konfigurationsaufwand abnimmt und dessen Voreinstellungen sich ideal als eigener Startpunkt beim Einstieg in ein reines Fenstermanagererlebnis eignen.
Besondere Merkmale:
Hervorragende Openbox-Konfiguration mit dem äußerst zuverlässigen Debian Stable.
Erfolgsgeschichte:
Lief einwandfrei auf dem Inspiron 4000 und ebenso problemlos auf dem Core Duo.
Schlagwort: Crunchbang

CRUX

CRUX ist etwas Besonderes, da es zwei Welten miteinander verbindet. Nicht zufällig wurde Archs Begründer, Judd Vinet, von CRUX inspiriert. Kombiniert man die einfache Konfiguration eines BSD-Systems, mit den Konfigurationsmöglichkeiten einer quellbasierten Distribution und stellt dem Ganzen noch einen Kern von vorkompilierten Paketen zur Verfügung, entstehen die vielseitigsten Möglichkeiten in den Händen erfahrener Anwender wie z.B. ein grafischer Desktop mit Awesome, 16 MB RAM und einem 120 MHz Rechner.
Besondere Merkmale:
Mischung aus Source- und Binärdistribution. K.I.S.S Prinzip noch ausgeprägter als bei Arch Linux, ungeahnte Anpassungsmöglichkeiten.
Erfolgsgeschichte:
Viele Experimente in einer virtuellen Maschine. Der Wirklichkeitstest auf einem realen Rechner steht noch aus. Kommt bald. ™
Schlagwort: Crux

Debian

Von Debian wurden mehr Derivate abgeleitet als bei jeder anderen Distribution und es bleibt mein bevorzugtes Betriebssystem insbesondere auf älteren Rechnern. Die Softwareauswahl ist riesig, der technische Unterbau exzellent. Hier Zeit zu investieren lohnt sich, denn auf die gleiche Technik setzen 2/3 aller Linuxdistributionen. Mit Debians Netzinstallation ist es ohne weiteres möglich ab 64 MB RAM ein minimales Debian zu installieren. Wer mit einem reinen Konsolensystem leben kann und Debian von einem anderen System implantiert, für den genügen auch schon 32 MB RAM.
Besondere Merkmale:
Das universelle Betriebssystem, äußerst skalierbar, unterstützt mehr Architekturen und vorkompilierte Software als jede andere Distribution.
Erfolgsgeschichte:
Benutze ich auf dem 14 Jahre alten Thinkpad 600, dem 13 Jahre alten Toshiba Portégé, dem 11 Jahre alten Inspiron 4000 und dem 3 jährigen Core Duo.
Schlagwort: Debian

FreeDOS

Es gibt nicht viele Freie Betriebssysteme, mit denen es möglich ist 20 Jahre alte Hardware wieder in Betrieb zu nehmen und Funktionen wie Netzwerken und USB-Support auszuprobieren, an die viele zu dieser Zeit noch gar nicht gedacht haben. FreeDOS bietet zusätzliche Software, die die alten DOS-Fähigkeiten um ein Vielfaches erweitert. Nicht nur als Musikbox und Plattform für alte DOS-Spiele geeignet.
Besondere Merkmale:
Funktioniert selbst mit 8086 Rechnern. GNU-Programme erweitern die alten DOS-Funktionen. Startzeit von unter 2 Sekunden selbst auf ältester Hardware.
Erfolgsgeschichte:
FreeDOS Multiboot System mit dem Toshiba Satellite 220CS
Schlagwort: FreeDOS

Grml

... ein paar Shells

Ich bin bei auf Debian basierenden Distributionen äußerst kritisch und erwarte bei einer neuen Distribution mehr als nur den Austausch der Desktopumgebung. Grml erscheint zuerst nur für Administratoren oder zur Systemrettung zu taugen. Doch weit gefehlt: Viele ältere Rechner laufen noch exzellent, wenn man anstatt grafischer Programme Anwendungen für die Konsole verwendet und das System mit ein paar Befehlen in einem Terminal steuert. Genau für diese Anwendungsfälle bringt Grml haufenweise Ideen mit. Selbst der größte Zweifler hat am Ende des Tages eine neue Leidenschaft entdeckt: Die zsh.
Besondere Merkmale:
Viele interessante Tipps für die Konsole, zsh lovers, Debian + Fluxbox
Erfolgsgeschichte:
Grmls zsh und vim Konfiguration ist nun auf allen Rechnern installiert.
Schlagwort: Grml

KolibriOS

Du denkst, du hast alles gesehen und plötzlich zückt jemand eine alte 3,5 Zoll Floppy mit der Aufschrift KolibriOS aus der Tasche, mit der dein 16 Jahre alter Laptop in eine grafische Oberfläche bootet. Wohlgemerkt wir reden hier von einem Betriebssystem, das vollständig im RAM läuft und neben einer Entwicklungsumgebung noch einen Dateimanager, Musikabspieler, Systemprogramme, Spiele, Demos und viele weitere Anwendungen an Bord hat.
Besondere Merkmale:
Komplettes in Assembler programmiertes Betriebssystem. Passt auf eine 1,44 MB Floppy, läuft mit 8 MB Arbeitsspeicher mit grafischer Oberfläche im RAM
Erfolgsgeschichte: KolibriOS auf einer Floppy und noch ein paar Bilder dazu. Ist mittlerweile auf jedem Laptop parallel installiert.
Schlagwort: KolibriOS

Lubuntu

Wenn man mit Ubuntu zufrieden ist, aber eine Standardinstallation nur noch träge auf älterer Hardware funktioniert, ist Lubuntu der richtige Weg aus dem Dilemma. Die LXDE Desktopumgebung mit dem Openbox-Fenstermanager und viele vorinstallierte leichtgewichtige Programme beweisen, dass man den Konfigurationsaufwand niedrig und die Produktivität hoch halten kann. Funktioniert bei mir sehr gut ab 256 MB RAM, 128 MB ist die absolute Untergrenze.
Besondere Merkmale:
Einsteigerfreundlich, sehr gute Dokumentation, voller Zugriff auf die Ubuntu-Repositorien
Erfolgsgeschichte:
Ist im direkten Vergleich mit Ubuntu auf dem Core Duo meine bevorzugte Ubuntu-Variante.
Schlagwort: Lubuntu

Puppy Linux


Puppy Linux bietet eine Gemeinschaft, die sich voll und ganz leichtgewichtiger Software und dem Weiterbetrieb älterer Hardware verschrieben hat. Besonders interessant ist die Möglichkeit Puppy Linux zu remastern und für die eigenen Bedürfnisse als RAM-Distribution anzupassen. Insbesondere für Computer ohne Festplatte oder einfach nur als äußerst genügsame RAM-Distribution zu empfehlen.
Voraussetzungen: Mindestens 128 MB RAM sollten es sein, bei 256 MB RAM und einem Pentium III gab es keine Probleme.
Besondere Merkmale:
Auf ältere Rechner fokussierte Community. Viele eigenentwickelte Werkzeuge zur Anpassung des Desktops. Fokus auf leichtgewichtige Software. RAM-Distribution.
Erfolgsgeschichte: Lief problemlos auf dem Inspiron 4000.
Schlagwort: Puppy Linux

Slitaz

Slitaz ist in vieler Hinsicht etwas Besonderes. Zum einen lässt sich dieses äußerst effiziente Betriebssystem gut als Livedistribution für unterwegs verwenden. Mit den eigenentwickelten Werkzeugen ist es möglich Software auf den betagtesten Rechnern zu verwalten und Slitaz ist mit Sicherheit eine der wenigen Distributionen, mit der sich von CD oder USB noch direkt ein Linux auf einen Laptop von 1996 mit 16 MB RAM installieren lässt. Dazu gibt es Unterprojekte wie Tiny Slitaz, die es per Webfrontend ermöglichen ein Miniimage zusammenzustellen, das diese Grenze noch auf 8 MB RAM senken kann.
Besondere Merkmale:
Hocheffiziente Distribution. Einfache Kreation von neuen Slitaz-Varianten möglich. Läuft bereits ab 16 MB RAM, mit Tiny Slitaz auch weniger möglich. Eignet sich sehr gut als Live CD/USB.
Erfolgsgeschichte:
Slitaz in der Minimalinstallation auf dem Toshiba 220CS und Slitaz auf dem Thinkpad 600.
Schlagwort: Slitaz

Tiny Core Linux

Speicherverbrauch und Fluff

Nehmen wir mal an bei dir zu Hause liegt noch dieser 128 MB USB-Stick vom Anfang des Jahrtausends herum und du suchst eine Linuxdistribution, mit der man diesen noch sinnvoll einsetzen kann.
Deine Suche hat ein Ende. Mit Tiny Core Linux passt ein Browser, der Xorg Server und eine komplette grafische Oberfläche dort hinein und du kannst die andere Hälfte noch zum Sichern deiner wichtigsten Daten und Konfigurationsdateien benutzen.
Besondere Merkmale:
Winziges Installationsimage, braucht sehr wenig Speicherplatz. Schnelle Bootzeiten, läuft immer im RAM, sehr effizient und reaktionsfreudig selbst auf ältester Hardware.
Erfolgsgeschichte:
Tiny Core Linux und der Thinkpad 600
Schlagwort: TinyCore
Das waren meine bisherigen Favoriten. Ich sage hier bewusst "bisher", denn ich habe mich z.B. im Bereich Slackware und Gentoo noch nicht umgesehen. Vielleicht habt ihr aber schon gute Erfahrungen mit anderen leichtgewichtigen Betriebssystemen gemacht. Welche setzen davon eurer Meinung nach Akzente und eignen sich insbesondere für ältere Hardware?

mtPaint: Ein Grundlagen-Tutorial mit Lubuntu

Es wird oft über GIMP geredet, wenn es um die Manipulation von Bildern geht. Ohne Frage ich mag GIMP und halte es für ein hervorragendes Programm. Ich denke nur, viele Menschen kommen schon mit sehr viel weniger Funktionen aus. Gerade für Standardaufgaben mit Bildern hat Lubuntu mit mtPaint ein kompaktes, schnelles und vielseitiges Bildbearbeitungsprogramm vorinstalliert, welches nicht nur einige der am häufigsten wiederkehrenden Probleme löst, sondern auch vollkommen anspruchslos an die Hardware ist und bei mir auf einem 10 Jahre alten Laptop noch eine Startzeit von weniger als 2 Sekunden hat.
Mit dem folgenden kleinen Tutorial möchte ich zeigen, wie man einige typische Basisaufgaben mit Hilfe von mtPaint bewältigen kann. Mein Beispiel dreht sich um das Aufnehmen eines Bildschirmfotos, dem Zurechtschneiden des Bildes und der Markierung und Beschriftung von Objekten.
In Lubuntu 11.10 ist das ressourcenschonende scrot zum Aufnehmen von Screenshots voreingestellt. Seine vielfältigen Funktionen und wie man es in ein Openbox-Menü einbindet, hatte ich vor ein paar Monaten vorgestellt.
In der Regel wird durch Drücken der Druck-Taste der gesamte Bildschirm aufgenommen. Durch die Kombination Alt+Druck und ein paar anschließenden Mausbewegungen hat man die Möglichkeit einen Ausschnitt des Bildschirms als Bild festzuhalten. Dieser wird dann standardmäßig im Home Ordner gespeichert.
Wovon kaum jemand Gebrauch macht: mtPaint, Mark Tylers Painting Program, kann ebenfalls Bildschirmfotos schießen. Dazu gibt es drei Möglichkeiten

Ein Bildschirmfoto aufnehmen

  1. Terminalemulator

    In Lubuntu 11.10 das LXTerminal aufrufen und
    mtpaint -seingeben.

  2. Tastaturkürzel

    Die Datei ~/.config/openbox/lubuntu-rc.xml öffnen und nach dem Eintrag für scrot suchen. Erstellt euch danach wie folgt ein Tastenkürzel für STRG+Druck und mtPaint.

    <keybind key="C-Print">
         <action name="Execute">
          <execute>mtpaint -s</execute>
         </action>
    </keybind>
    

    Damit die Bildschirmaufnahme um 5 Sekunden verzögert wird, kann man anstelle von mtpaint -s auch
    sleep 5; mtpaint -s
    schreiben und natürlich je nach Wunsch die Anzahl der Sekunden variieren.

  3. Innerhalb von mtPaint

    Klickt auf Datei -> Neu -> Erzeuge Screenshot

Ein Bildschirmfoto manipulieren

Vorbemerkung: Solltet ihr Probleme mit einem Werkzeug haben, könnt ihr mit der ESC-Taste die Funktion abwählen. Falls ihr einen Schritt rückgängig machen wollt, hilft wie immer STRG+z, STRG+r holt ihn wieder hervor.

Ausgangsbild

Zurechtschneiden

Egal für welche Methode ihr euch entschieden habt, das Bildschirmfoto sollte nun direkt in mtPaint geöffnet sein. Wer nur an einem Vollbild interessiert war, kann jetzt schon zu "Datei -> Speichern als" springen und den gewünschten Dateityp wählen. Anderenfalls könnt ihr jetzt noch einen Teil des Bildes ausschneiden. Dadurch wird die Bilddatei auch kleiner, was Bandbreite spart und Ladezeiten von Webseiten verbessert.
Um das Objekt zu markieren, wählt ihr das Auswählen -Werkzeug. Damit lässt sich z.B ein Rechteck um das mtPaint-Programm ziehen, welches für dieses Beispiel im Fokus stehen soll.
Für mich ging es am schnellsten, wenn man mit dem Auswahl-Werkzeug an der rechten unteren Ecke des Programmfensters beginnt, ein Rechteck beliebiger Größe aufzieht und an der gegenüberliegenden oberen linken Ecke, es auf die perfekte Größe zieht. Hat man die passende Auswahl gefunden, genügt das Drücken der Entf-Taste, um den Bildbereich auszuschneiden.

Details hervorheben

Shutter bietet z.B. die Möglichkeit eine elliptische Auswahl um einen Teilbereich zu ziehen, der dadurch besser visualisiert wird. Mit mtPaint lässt sich das ganz leicht so machen:
Benutzt wieder das Auswahl Werkzeug, umrandet den zu markierenden Bereich und klickt auf Ellipse-Umriss .
Die Strichstärke und die Farbe lässt sich links in der Palettenvorschau verändern. Das rote Quadrat repräsentiert Farbe A (rot), das zweite Quadrat Farbe B (blau), das rote Rechteck das Muster (keines) und der weiße Kreis die Größe und Form des Pinsels und in diesem Fall die Strichstärke unserer Ellipse.

Text schreiben

Mit Hilfe des Textwerkzeuges lässt sich noch ein erläuternder Text schreiben. Für mein Beispiel habe ich als Schriftart "Sans" und Schriftgröße "20" gewählt. Nicht vergessen die "Antialias"-Checkbox für ein besseres Schriftbild zu selektieren (existiert nur bei Bildern im RGB-Format). Bei gedrückter linker Maustaste lässt sich die Textbox verschieben, ein Klick auf die rechte Maustaste fixiert den Text an der Stelle. Dieser Vorgang kann mehrmals wiederholt werden.

Eine gerade Linie ziehen

Schließlich lässt sich noch der Text und das mit der Ellipse umrandete Objekt mit einer geraden Linie verbinden, wozu ihr dieses Werkzeug braucht. Der Vorgang ist selbsterklärend. Anfangs- und Endpunkt bestimmen und mit Hilfe der Palette Farbe und Strichstärke festlegen.

Optional: Bild skalieren

Lässt sich im Menü unter Bild -> Größe der Zeichenfläche ändern einstellen oder mit der Taste Bild nach oben.

Fazit

Sowohl Shutter als auch GIMP hätten das Problem lösen können. Ich denke der Vorteil von mtPaint ist, dass es sich universell auf nahezu jedem Computer, der in den letzten 15 Jahren verkauft wurde, einsetzen lässt. Für eine leichtgewichtige Desktoplösung oder für Rechner mit begrenzten Ressourcen ist es eine gute Wahl und für all diejenigen, die nur alltägliche Aufgaben mit ihrem Bildbearbeitungsprogramm erledigen wollen, eine gute Alternative. Darüber hinaus bietet es noch die Arbeit mit Ebenen und eine Reihe von Effekten an. Hier aber ins Detail zu gehen, würde den Rahmen der Anleitung sprengen.

Ergebnis

Links

mtPaint Dokumentation (Englisch)
mtPaint Blog mit Tutorials, Beispielen, Tricks&Tipps (Englisch)
Lubuntu Screencast: mtPaint create Wallpaper (Englisch)
Lubuntu Screencast: mtPaint Basics (Englisch)

Vorstellung, Installation und Eindrücke von FreeDOS

In meiner Erinnerung war DOS lange Zeit ein Thema, mit dem ich mich gewollt oder ungewollt beschäftigen musste. Noch eine Weile früher hatten mich der C64 und der AMIGA 500 begeistert und an Workbench, die grafische Oberfläche des AmigaOS, kann ich mich noch heute gut erinnern. Was aber ebenfalls hängen geblieben ist, ist die Zeit mit meinem ersten PC, einem Pentium I mit 60 Mhz und 8 MB RAM, den ich später mit einem Overdrive-Prozessor auf sagenhafte 120Mhz aufrüstete. Meinen Vater bringe ich heute noch zum Lachen, wenn ich ihm von unseren gemeinsamen Versuchen config.sys und autoexec.bat zu beherrschen erzähle.
Die Zeit von MS-DOS lief dann langsam aber sicher zu Gunsten von Windows 98 ab, wo MS-DOS kaum noch eine große Rolle spielte. Mit Windows 2000 und XP war dieses Kapitel in Computergeschichte schließlich endgültig abgeschlossen.
Seitdem sich 1994 abzeichnete, dass Microsoft den Support für DOS einstellen würde, gibt es mit FreeDOS ein Projekt, welches eine freie und kompatible Alternative zum proprietären DOS schaffen soll. Im September 2006 erschien die finale Version 1.0 mit zahlreicher Freier Software, die den ursprünglichen Funktionsumfang von DOS um ein Vielfaches erweitern konnte.
Nachdem ich lange Zeit unabsichtlich einen Bogen um andere Freie Betriebssysteme abseits von Linux gemacht habe, dies aber versuche nun Schritt für Schritt zu korrigieren, sind hier ein paar Eindrücke von FreeDOS in der aktuellsten Version 1.0 und warum ich denke, dass dieses OS eine perfekte Alternative für ältere oder mit knappen Ressourcen versehene Hardware sein kann.
Für den Anfang ist es sicherlich am einfachsten FreeDOS in einer virtuellen Maschine zu installieren. Die folgenden Möglichkeiten sollten sich problemlos mit Debian und Ubuntu nachvollziehen lassen.

Installation

Unetbootin

Ich habe zuerst einen USB-Stick mit FAT32 formatiert und anschließend unetbootin benutzt, um FreeDOS automatisch auf den Stick zu installieren. Dabei ließ sich unetbootin auch als normaler Benutzer ausführen und man musste nicht, wie vom Programm gefordert, root werden. Die Installation ist trivial. FreeDOS als Distribution auswählen und die Partition des USB-Sticks beschreiben.

mkfs.vfat /dev/sdb1
unetbootin



Danach wird fdboot.img vom offiziellen FreeDOS Archiv heruntergeladen. Dieses Abbild beinhaltet aber nur die essentiellen Komponenten von FreeDOS und dient laut Angaben der Entwickler hauptsächlich dazu bei Bootproblemen zu helfen. FreeDOS wurde danach mit Hilfe von Plop problemlos auf dem USB-Stick erkannt, den ich danach erfolgreich auf dem Thinkpad 600 testen konnte.

DOSEMU

DOSEMU ist ein DOS-Emulator für Linux, der FreeDOS standardmäßig integriert hat und mit dem sich DOS oder Windows 3.11 Programme in Linux ausführen lassen, wie z.B. dieses vertraut erscheinende Spiel hier, welches sich mit dosemu PACPC2.EXE starten lässt.


Der Freeware-Pacman-Klon, Pac PC II, lässt sich auf dosgamesarchive.com herunterladen, wo es noch ein paar hundert weitere Klassiker zum Spielen gibt.
Ebenfalls interessant ist der Terminalmodus. Einfach mal dosemu -t eingeben, aber nicht erschrecken. 😉 Erfordert volle Konzentration, wenn man sich per SSH in seinen Linuxserver einloggt, danach automatisch dieses Kommando ausführen lässt und man erst einmal wieder alte DOS-Befehle hervorkramen muss. 🙂 Verlassen kann man den Modus wieder mit exitemu.

Virtualbox

FreeDOS lässt sich in Virtualbox testen, indem man sich eine neue virtuelle Maschine erstellt und als Betriebssystem "Other" und Version "DOS" auswählt und eine der beiden ISO-Dateien herunterlädt. Ich habe das fdbasecd.iso als Datenträger eingebunden und dann erfolgreich FreeDOS installiert. Mit dem fdbasews.iso lässt sich FreeDOS auch direkt als Live-CD ausprobieren.
Es gab früher noch eine komplette CD mit der ganzen Freien Software, die mit FreeDOS entstanden ist und heute auch noch einzeln auf der FreeDOS-Homepage heruntergeladen werden kann. Leider hat man sich entschlossen den Downloadlink zu entfernen. Man findet diese FreeDOS-Distribution namens fdfullcd.iso aber noch auf den alternativen Spiegelservern des Projekts. Meiner Meinung nach lohnt sich der Download, wenn man Gefallen an FreeDOS gefunden hat und auch die ganzen Besonderheiten wie ein auf FreeDOS portiertes Vim, diverse Linuxbefehle und Programme wie wget, ls, more und Freie DOS Spiele parat haben möchte. Die Installation der kompletten FreeDOS-Distribution klappt zwar unter Virtualbox, leider scheitert bei mir danach das Booten. Momentan habe ich keine Lösung dafür.

Qemu

Natürlich lässt sich FreeDOS auch in Qemu installieren. Mir ist bei der Suche zu FreeDOS dieser englische Artikel zur Installation zum Thema aufgefallen, den ich empfehlen kann.

qemu-img create freedos.img 400M
qemu -hda freedos.img -cdrom fdfullcd.iso -boot d

Damit lässt sich ein 400 MB großes RAW-Image mit Qemu erstellen und anschließend das fdfullcd.iso als virtuelles CD-ROM-Laufwerk für die Installation auf dem freedos.img benutzen. Die Installation ist natürlich identisch zu der in Virtualbox. Mir ist nur noch nicht klar, warum die Virtualisierung so viel langsamer als unter Virtualbox ist und welche Optionen ich scheinbar beim Start von Qemu vergessen habe zu übergeben. Mit Hilfe von dd lässt sich das Abbild auch auf eine Festplatte oder einen USB-Stick übertragen. Z.B. mit

dd if=freedos.img of=/dev/sda bs=1M

Bilder sagen bekanntlich mehr als 1000 Worte, deshalb hier einige Screenshots von der Installation.

Die Installation ist insgesamt nicht schwierig, einige Abfragen empfand ich aber als überflüssig. Man hätte hier sicherlich einige Punkte zusammenführen können. Offiziell wird Deutsch als Systemsprache angeboten, doch scheinbar vermischt sich Deutsch und Englisch auf Grund eines Bugs während der Installation und auch später bei einigen Programmen. Um das zu beseitigen, sollte man laut FreeDOS-Wiki in der config.sys das Leerzeichen vor den abschließenden Anführungsstrichen bei "SET lang=DE " entfernen.
Man sollte bei einer Festplatteninstallation die FreeDOS-Partition mit FAT32 oder FAT16 formatieren, kann das aber auch mit Hilfe von XFDISK während der Installation nachholen. Die Pakete lassen sich mit der Space-Taste ab- oder auswählen. Mit fdfullcd hat man Zugriff auf zehn verschiedene Anwendungsgruppen.

  1. base. Liefert die essentiellen FreeDOS-Programme mit, die das ursprüngliche Verhalten von MS-DOS originalgetreu nachbilden.
  2. compress. Freie Programme zur Datenkompression (7zip, bzip2, gzip usw.)
  3. driver. Freie Treiber für Netzwerk oder USB
  4. edit. Editoren, darunter sogar VIM!
  5. games. Freie DOS-Spiele, darunter DOOM Legacy. Übrigens ist Doom seit 2011 nicht mehr in Deutschland indiziert. 😉
  6. gui. Open GEM als grafische Oberfläche mit einigen Anwendungen. Viele mehr finden sich als Freeware bzw. Shareware Programme im Internet.
  7. media. MPXPlay (Musik hören!), ogg vorbis, lame, cdrtools
  8. lang. Freie Compiler.
  9. net. Arachne (Webbrowser!), VNC, SSH, wget, Mail Client usw.
  10. util. Zubehör, mit dem sich DOS in eine Linuxshell verwandelt (4DOS, du, cal, uptime, locate, und mehr)

Lob und Kritik

Was mir negativ aufgefallen ist, ist die leider verstreute und schlecht geordnete Dokumentation. Es gibt zum einen die FreeDOS-Projektseite auf sourceforge.net und die Hauptseite auf www.freedos.org. Sucht man nach Dokumentation wird das alte FreeDOS Documentation Project als erster Treffer hervorgehoben, welches gut strukturiert erscheint, dessen Artikel aber zum neuen FreeDOS-Wiki größtenteils verschoben wurden. Das Wiki hingegen ist leider nicht sehr intuitiv und ausschließlich in Englisch.
Alternativen sind z.B. das deutschsprachige FreeDOS-Kompendium, welches zwar auf einem älteren Stand ist, aber noch den ein oder anderen Tipp vermitteln kann. Das gleiche gilt für die deutsche Seite ankreuzen.de.
Sehr beeindruckend ist auf jeden Fall der Funktionsumfang und die Kompatibilität zum alten MS-DOS. FreeDOS eignet sich hervorragend, wenn man aus irgendwelchen Gründen gezwungen ist alte DOS-Programme weiterhin zu benutzen. Ein bekanntes Beispiel sind Werkzeuge zum Flashen des BIOS.
Wo Linux auf Grund seiner Beschränkung auf i386-Hardware scheitert, ist FreeDOS eine Freie Alternative auf sehr alter Hardware und bietet Unterstützung selbst für 8086 Rechner. Der Speicherverbrauch ist in der Tat winzig, womit sich ein alter Laptop zur Jukebox umrüsten lässt oder man klassische DOS-Spiele mit einem Freien Betriebssystem spielen kann. Insbesondere die vielen Linuxfeature wie TAB-Vervollständigung, wget oder einen SSH-Client lassen Herzen höher schlagen.
FreeDOS wird immer noch von einigen Personen weiterentwickelt und es gibt auch unregelmäßig Neuigkeiten auf freedos.org zu lesen. Alles in allem muss die Zukunft zeigen, wie sich FreeDOS auf diesem Laptop hier schlägt. Doch wenn vor 17 Jahren 8 MB kein Problem waren, sollten die üppigen 16 MB des Toshiba Satellite 220CS mehr als ausreichend sein. 😀