Zsh und vils: Leerzeichen von Dateinamen in Vim durch Unterstriche ersetzen

Ich habe vor einiger Zeit aus Neugier die Bash mit Zsh ersetzt und dabei auf die sehr nützliche Konfiguration von .zshrc und .zshrc.local von Grml zurückgegriffen. Seitdem habe ich auf jedem Rechner mit Ausnahme des Toshiba Satellite 220cs, dort läuft immer noch die ash von Busybox, die Shell ausgetauscht.
An dieser Stelle will ich nicht lange über Zsh schwärmen und davon erzählen, warum euer Leben sinnlos ist, solange ihr Zsh nicht selbst ausprobiert habt. (Es gibt genug Seiten, die das tun.) Nein, womöglich kommt man als normaler Mensch auch wunderbar mit der Bash aus, sowie das bei mir jahrelang der Fall war. Dennoch...der Austausch war einfach und ich konnte mir das Installieren der bash-completion und die farbenfrohe Veränderung der Bash dank Grml sparen.
Abgesehen davon, dass ich nun eine phänomenale Tab-Vervollständigung habe und nicht mehr nur eine großartige, dass meine Tippfehler praktischerweise korrigiert werden und ich mit Hilfe von vils problemlos Dateien und Ordner in Vim umbenennen kann, musste ich mich bisher auch kaum umstellen.
Mehr über vils lässt sich auf freshports.org erfahren, wo es zwei Links zum Herunterladen dieses kleinen Skripts gibt.

Das Skript sollte man mit chmod u+x ausführbar machen und am besten gleich nach /usr/local/bin kopieren, damit man es im $PATH benutzen kann.
Die Bedienung ist simpel. Man führt es im Verzeichnis aus, indem man die Dateien oder Unterverzeichnisse umbenennen möchte, wodurch alle Namen in Vim importiert werden und dann beliebig geändert werden können. Speichert man danach, werden alle Dateien und Ordner dementsprechend umbenannt.
Als Hinweise werden im Skript genannt:

  1. Man solle die Nummern vor jeder Zeile nicht entfernen.
  2. Wenn man eine Zeile löscht und abspeichert, wird die Datei nicht gelöscht.
  3. Man kann jedes Zeichen zum Ersetzen benutzen, nur muss man doppelt angeben.
  4. Es wird vor dem Überschreiben gleichlautender Dateinamen gefragt.
  5. Man kann den Dateinamen von zwei oder mehr Dateien nicht austauschen.
  6. Man kann gezielt einzelne oder mehrere Dateinamen in Vim laden, indem sie auf der Kommandozeile übergeben werden. (vils datei1 datei2 datei3)

Leerzeichen mit Unterstriche tauschen

Ich entferne im Visual-Block-Modus immer die vorangestellten Nummern und füge sie nach der Umbenennung wieder ein. STRG+v, dann d zum Löschen und später p zum Einfügen. Das ist ein Weg um zu verhindern, dass das erste Leerzeichen zwischen der Nummer und dem Dateinamen durch einen Unterstrich ersetzt wird. Danach genügt im Normalmodus:
:%s/ /_/g
Nachdem die Nummern wieder eingefügt und alles abgespeichert wurde, sind sämtliche Leerzeichen durch Unterstriche ersetzt worden.
Wenn man sich nun noch ein paar Reguläre Ausdrücke vorstellt, lässt sich so ziemlich jedes Umbenennungsproblem innerhalb von Vim mit Hilfe von vils lösen und man kann auf diese Lösung, die aber ebenso gut funktioniert, verzichten.

FreeDOS: Multiboot-System mit dem Toshiba Satellite 220cs

Es macht Spaß FreeDOS in einer virtuellen Maschine unter Linux auszuprobieren oder das sehr praktische DOSEMU zum Starten von DOS-Programmen und Spielen zu benutzen. Ich denke, das ist die einfachste Möglichkeit um mit FreeDOS den Einstieg in die DOS-Welt zu wagen. Natürlich war mein nächstes Ziel das Freie Betriebssystem auch auf dem Toshiba Satellite 220cs zum Laufen zu bringen, was schon fast als logische Konsequenz für einen Laptop aus dem Jahr 1996 mit 16 MB RAM anmutet.

Installation

Ich habe mich erneut für die Installation mit Qemu entschieden, die Festplatte des 220cs ausgebaut und mit Hilfe des USB-IDE-Adapters und mit dd ein Abbild der Festplatte erzeugt. Der große Vorteil liegt darin, dass man gleichzeitig ein Backup hat und bedenkenlos experimentieren kann. Eine einfache Lösung ist sicherlich ein leeres Raw-Image zu erstellen, FreeDOS zu installieren und mit dd auf die Festplatte zu schreiben. Wie es geht, hatte ich bei meiner Vorstellung von FreeDOS gezeigt.
Da ich die bestehenden Betriebssysteme Slitaz und KolibriOS behalten wollte, habe ich das Dateisystem meiner Slitazinstallation verkleinert und anschließend die Partition mit fdisk verändert. Mit Hilfe der Debian Netzinstallations-CD habe ich im Rettungsmodus folgendes gemacht.

e2fsck - f /dev/hda2
resize2fs -p /dev/hda2 600M


Mit fdisk wurde die Partition hda2 neu angelegt und auf 700M verkleinert und zusätzlich hda3 als dritte primäre Partition mit W95 FAT32 erstellt. Nach einem Neustart in Slitaz konnte ich dort erneut

resize2fs -p /dev/hda2


ausführen, damit das Dateisystem exakt an die neue Partitionsgröße angepasst wurde. Bei der Operation muss auf jeden Fall das Dateisystem vor der Partitionierung verkleinert werden, ansonsten kommt es zum Datenverlust. Mit dem zusätzlichen "resize2fs"-Schritt ohne Angabe der Größe wird das Dateisystem schließlich exakt an die Partitionsgröße angepasst.
Hat man diese Vorbereitungen abgeschlossen, kann man FreeDOS mit Hilfe von Qemu installieren, wobei das Installationsprogramm automatisch die erste FAT32-Partition als Laufwerk C: erkennt. Wem das nicht geheuer ist, kann es auch mit xfdisk überprüfen.

qemu -hda toshiba.img -cdrom fdfullcd.iso -boot d

Da ich schon ein vollständiges FreeDOS-Abbild hatte, verzichtete ich dieses Mal auf die meisten zusätzlichen Anwendungen und installierte nur base, games und media.

GRUB-Menü in Slitaz anpassen

Slitaz 3.0 benutzt noch GRUB 1. Meine /boot/grub/menu.lst sieht momentan so aus.

title Slitaz GNU/Linux (Kernel 2.6.30.6-slitaz)
root (hd0,1)
kernel /boot/vmlinuz-2.6.30.6-slitaz root=/dev/hda2 vga=788
title KolibriOS
root (hd0,1)
kernel /boot/memdisk
initrd /boot/kolibri/kolibri.img
title FreeDOS
rootnoverify (hd0,2)
chainloader +1
makeactive

FreeDOS-Einstellungen

Ein paar Änderungen der Voreinstellungen halfen mir auf dem 220cs Laptop weiter. Wer gerne Startzeiten von Betriebssystemen vergleicht, wird sich bei FreeDOS über die 2 Sekunden von GRUB bis zum Prompt freuen. Dazu sollte in der fdconfig.sys
MENUDEFAULT=3,0
stehen. Dabei stellt die Zahl 3 sicher, dass FreeDOS mit dem HIMEM-XMS-Memory-Treiber geladen wird, um Programme im erweiterten Speicher ausführen zu können und mit 0 wird die Verzögerung bei der Wahl des Menüpunkts auf 0 Sekunden gesetzt.
Standardmäßig werden zwei Treiber in den XMS-Speicher geladen, die 12 MB von 16 MB RAM belegten. Um später das Musikprogramm Mpxplay starten zu können, musste ich zumindest einen davon in der fdconfig.sys für Auswahl 3 deaktivieren.
12?DEVICEHIGH=C:FDOSbincdrcache.sys FDC0001 CDRCACH0 6000
Erwähnenswert ist auch, dass man die Energiesparfunktionen mit fdapm APMbios oder fdapm APMoff des BIOS ein- und ausschalten kann, was verhindert, dass die Festplatte nach jedem Kommando in den Ruhezustand versetzt wird. FreeDOS APM-Modus lässt sich mit fdapm APMdos wieder einschalten.

Mpxplay

FreeDOS bringt das Freie Musikprogramm Mpxplay mit, mit welchem sich zahlreiche Formate wie z.B. mp3, ogg oder FLAC abspielen lassen. Damit Mpxplay funktionierte, änderte ich die DMA-Einstellung für den Soundblaster-Treiber in der autoexec.bat für die Yamaha-Opl3sa2-Soundkarte von 1 auf 0.
SET BLASTER A220 I5 D0 H5 P330
Soundkarte und Lautsprecher des Toshiba Laptops sind zwar nach wie vor vermutlich nicht die beste Lösung für eine audiophile Umgebung, um einen Raum zu beschallen sind sie aber ausreichend. Leider habe ich noch nicht das Screenshotprogramm gefunden, deswegen hier nur ein Foto. Ich bin auf jeden Fall beeindruckt. MP3- und OGG-Dateien ließen sich problemlos abspielen.

USB und Netzwerk

USB und Internet waren in den 80igern und Anfang der 90iger noch in weiter Ferne. Erst mit Windows 95 gab es später eher schlecht als recht USB-Support. Umso mehr überrascht es deswegen vielleicht, dass es sowohl USB-Support als auch Netzwerkunterstützung für FreeDOS gibt. Im folgenden finden sich einige Links zu Seiten, die ich für lesenswert halte und für die Zukunft hier dokumentiere.

  • USB with DOS - Ein Artikel von 2003 zum USB Support mit DOS
  • cholla.mmto.org - Englischer Beitrag zum Thema Netzwerken mit DOS
  • FreeDOS on a Compaq Contura Aero - Englische Anleitung zur FreeDOS Installation auf einem Compaq Laptop von Ulrich Hansen (empfehlenswert)
  • Networking FreeDOS - Ulrich Hansens 40 Seiten umfassende Arbeit zum Thema FreeDOS und Networking im Wiki Format (beeindruckend, sehr empfehlenswert, es gibt auch ein nahezu identisches pdf Dokument namens dosnet.pdf, welches sich leicht im Netz finden lässt)
  • Das Dokument wurde auch ins Deutsche übersetzt und befindet sich in der FreeDOS Hilfe und lässt sich dort als Netzwerken unter FreeDOS finden.
  • FreeDOS Hilfe in Deutsch

Scheinbar wird darin sogar die Inbetriebnahme einer meiner 3com-Netzwerkkarten beschrieben, weswegen ich zuversichtlich bin, dass ich später einmal mit FreeDOS im Internet unterwegs bin. 😉
Ich denke die Installation der Treiber und das Einrichten des Netzwerks ist momentan mit Slitaz zwar einfacher. KolibriOS und FreeDOS ergänzen den Laptop jedoch um einige coole Funktionen. Die Installation von FreeDOS empfand ich als eher einfach, die Soundkarte war mit einer kleinen Änderung sofort einsatzbereit und zahllose Spiele für FreeDOS gibt es obendrauf. Für ein Multibootsystem auf jeden Fall mehr als einen Blick wert.

Debian Live: Installations-Images

Mir ist im Rückblick zu dem Beitrag Zurück zu den Wurzeln noch aufgefallen, dass es Debian neuen Benutzern noch einfacher machen könnte die richtige Wahl zu treffen. Vielleicht mit einer Grafik und den passenden Fragen, welche Geschmacksrichtung von Debian zu einem passt und man dann dadurch die Alternativen gezeigt bekommt.
Ich benutze mittlerweile ausschließlich nur noch die Multiarch-Netzinstallation für amd64 und i386, die auch besonders deutlich oben rechts auf www.debian.org verlinkt ist.

Ich persönlich finde mich auch sofort auf der Seite Debian auf CDs zurecht und auch die Übersicht zur Installation von Debian Squeeze, welche Installationsmedien es gibt, verstehe ich. Aber wenn ich dann mehrmals drauf schaue und versuche mich in jemanden zu versetzen, der nur an einem Betriebssystem für den Desktop, sprich für die I386- und AMD64-Architektur, interessiert ist, erscheinen mir die vielen Links eher verwirrend als förderlich zu sein.
Dabei besteht leicht die Möglichkeit, dass ein weiteres tolles Angebot untergeht.

Debian Live: Installations-Images

Wer sich noch unschlüssig ist, zu welcher Desktopumgebung er überhaupt tendiert, hat hier die Möglichkeit einen Überblick zu gewinnen. Praktischerweise lässt sich dann Dank des grafischen Debian-Installer alles auch direkt auf eine Festplatte installieren. So sieht dann z.B. Debian Live mit LXDE-Desktop aus.

Was jetzt noch fehlt sind werbewirksame Namen wie
Kebian für KDE
Lebian für LXDE
Xebian für Xfce
und natürlich Debian für Gnome
Voilà schon sind wieder ein paar neue Distributionen geboren. 😉

gambaru.de ist nun auch über den Planeten von ubuntuusers.de zu empfangen

Ich wurde letzte Woche von svij vom Ikhayateam auf ubuntuusers.de angeschrieben, ob ich in Zukunft nicht Lust hätte Beiträge an den Planeten zu schicken, die dort mit Hilfe von Feeds aggregiert werden. Ich habe kurz überlegt und dann ja gesagt.
Wer sich unter dem Planeten nichts vorstellen kann, er bietet im Grunde genommen eine Übersicht über Nachrichten und Blogs aus dem Bereich Ubuntu, Linux und Open Source. Meine Bedenken, dass ich nicht nur zu Ubuntu schreibe, hat svij mit dem Hinweis auf die anderen Themen "Linux und Open Source" zerstreut. Also steht nun einer Flut von Slitaz, TinyCore oder Posts zu Konsolenapplikationen in Richtung Planet nichts mehr im Wege. 😛
Nein, ich denke ich werde nicht jeden Beitrag zum Planeten schicken und versuchen ausgewählte Beiträge vorzustellen oder in Zukunft die ein oder andere Anwendung mit Lubuntu testen anstelle mit Distribution XY. Wirklich, alles ist irgendwie austauschbar.
Ich habe auch ein paar kritische Stimmen zum ubuntuusers.de Planeten auf linuxundich.de oder picomol.de gelesen, kann aber aus Mangel an Erfahrung den Eindruck weder bestätigen noch widerlegen.
Ansonsten ist mir wichtig, dass alle meine Beiträge unter CC-BY-SA stehen und jeder sie nach der Lizenz auch so verwenden darf. In Zukunft werden alle Posts für den Planeten mit dem Schlagwort ubuntuusers versehen. In diesem Zusammenhang wollte ich auch mal auf ein tolles Feature von WordPress hinweisen, mit dem man einzelne Schlagworte oder Kategorien per Feed abonnieren kann, obwohl das in der Beschreibung selten auftaucht.
Wer also nur an Slitaz interessiert ist kann das Schlagwort mit dieser Adresse abonnieren, wer nur über die Kategorie Distributionen etwas lesen möchte kann es mit diesem Link versuchen. Das Prinzip ist immer das Gleiche.
Ansonsten wird sich nichts verändern und alles bleibt beim Alten.

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. 😀

Zurück zu den Wurzeln: Welches Debian ist das Richtige

Viele Distributionen setzen auf Debian als Unterbau. Im Grunde genommen tauschen die meisten davon nur die Oberfläche aus, darunter bleibt aber alles gleich. Mit dem Original lässt sich das gleiche Ergebnis erreichen. Debian hat verschiedene Zweige, die auch als Repositorien oder Distributionen bezeichnet werden. Dabei bietet Debian schon heute vom fortlaufend aktuellen Desktopsystem bis zur grundsoliden Serverdistribution alle Optionen an. Hier eine kurze Übersicht über die Möglichkeiten.

Experimental

Experimental ist im Grunde genommen kein vollständiger Zweig, sondern lediglich die Spielwiese der Debianentwickler und ist nicht für Endbenutzer gedacht. Hier werden Alpha-Versionen von Software und wie der Name schon andeutet experimentelle Pakete hochgeladen. Sie haben standardmäßig die Pin Priorität 1, was verhindert, dass automatisch ein Upgrade auf Pakete in Experimental stattfindet. Ich benutze Experimental im Regelfall äußerst selten, wenn ich z.B. eine Beta-Version von Iceweasel ausprobieren möchte.
Die Quintessenz: Wenn du fragen musst, ob Experimental das Richtige für dich ist, ist es das nicht.

Unstable alias Sid

Wenn der Entwickler zuversichtlich ist, dass sein Paket eine gewisse Reife erlangt hat und alle Abhängigkeiten erfüllt werden, wird es Zeit für das Einstellen in Unstable. Sid ist nie fertig und fortlaufenden Änderungen unterworfen. Es gibt deswegen auch keine Installations-CDs. Debian Unstable wird in der Regel über ein dist-upgrade von Stable oder Testing installiert.
Debian Sid ist der Zweig, der in der Regel von Entwicklern und Nutzern gewählt wird, die immer am aktuellsten Stand der Technik interessiert sind. Wenn du dazu beitragen möchtest Debian noch besser zu machen und Fehlerberichte zu verfassen, ist Debian Unstable die perfekte Wahl. Die Benutzung erfolgt aber auf eigene Gefahr. Es ist keine Frage, ob Fehler mit der Zeit auftreten, sondern nur wann.
Ich habe Debian Sid auf dem Dell Inspiron 4000 Laptop und für ein Spielesystem auf dem Core Duo installiert. Meine Erfahrung ist, dass ein leichtgewichtiges und minimales System mit Debian Sid sich ohne weiteres pflegen lässt, wenn man folgende Punkte beachtet.
Man muss bereit sein temporär auf bestimmte Software zu verzichten und sie mit vergleichbarer ersetzen, z.B. Iceweasel mit Chromium tauschen oder umgekehrt. Man sollte wissen wie ein Downgrade funktioniert oder wie man Pakete auf "hold" setzt, damit sie nicht durch ein Update ersetzt werden. Ein entsprechendes Problem mit Bugs hatte ich dieses Jahr mit Midori und Claws Mail.
In vielen Fällen hilft apt-listbugs, um die schwerwiegendsten Fehler schon vor einem Update zu erkennen. Das einzige wirklich gravierende Problem hatte ich dieses Jahr nur mit dem Nvidia-Treiber, der bekanntermaßen unfrei ist. Mit Hilfe von Backups, Downgrades oder dem Wechsel zu freien Treibern ließ sich das Problem lösen.
Wenn diese Beschreibung eher Magendrücken als Begeisterung ausgelöst hat, ist Debian Unstable nicht der richtige Zweig. Auf der anderen Seite ist es ideal, wenn man Debian besser machen möchte.

Testing

Nachdem ein Paket in der Regel 10 Tage in Unstable verbracht hat, migriert es automatisch nach Testing, solange alle Abhängigkeiten erfüllt werden und das Paket keine "RC Bugs", veröffentlichungskritische Bugs, beinhaltet.
Im Gegensatz zu Unstable verändert sich das System weniger dramatisch bei jedem Update und man ist vor den offensichtlichsten Fehlern geschützt, die in Sid abgefangen werden. Leider hat Testing momentan zwei Nachteile, die man vor der Benutzung sich in Erinnerung rufen sollte.
Sollte wider Erwarten ein Fehler in Testing auftreten, erfolgt keine zeitgerechte Beseitigung des Problems. Das neue Paket wird in Unstable eingestellt und erneut dauert es 10 Tage bis es in Testing ankommt. In besonders kritischen Fällen kann der Paketbetreuer entscheiden dem Paket eine höhere Priorität zuzuordnen und es gelangt dann nach 5 oder 2 Tagen nach Testing. Debian Testing wird zur Zeit nicht vom Sicherheitsteam betreut! Unter Umständen kann das bedeuten, dass man 10 Tage oder länger auf die Lösung eines kritischen Sicherheitsproblems warten muss.
Problematisch ist auch, dass Pakete aus Testing vom Debian Release Team entfernt werden können, wenn sie auf Grund von Fehlern andere Pakete blockieren. Eine Initiative namens CUT versucht diese Probleme langfristig zu lösen.
Ich benutze Testing auf meinem leistungsfähigsten Rechner und habe bisher nur Probleme mit dem Nvidia-Treiber gehabt. Für mich funktioniert Testing zur Zeit ausgesprochen gut. Um Sicherheitsprobleme zu lösen oder gezielt neuere Software zu installieren, greife ich auf Apt-Pinning zurück.
Prinzipiell gilt das Gleiche wie für Unstable, wobei Testing weniger schnell bricht als Unstable, dafür die Lösung des Problems teilweise länger auf sich warten lässt. Wer keine Server betreiben muss und bereit ist nach der Lösung eines Problems zu recherchieren sollte sich Testing merken.

Stable

Alle Wege führen zu Stable. Dies ist die Version, die veröffentlicht wird, der Fels auf den alle anderen Debian-Derivate bauen. Wer sich unschlüssig ist, welchen Zweig er wählen muss, sollte immer zu Stable greifen.
In der Vergangenheit habe ich Debian Stable benutzt und ich komme nur zu einem Schluss: Es eignet sich nicht zum Bloggen! Keine heftigen Bugs oder katastrophalen Systemabstürze. Einfach nur total langweilig!
Egal was ich vorher geschrieben habe, Stable ist davon nicht betroffen. Sicherheitsprobleme werden schnell gefixt, dies ist der Zweig, den man einsetzen sollte, wenn einem Stabilität wichtiger als die neuesten Feature ist.
Das Einzige was Benutzer bemängeln sind veraltete Software oder schlechte Hardwareunterstützung. Dieses Problem haben natürlich die Debianentwickler schon lange erkannnt. Eine Lösung dafür sind Debians Backports.
Ansonsten bereiten höchstens Webbrowser wie Chromium oder Iceweasel ein Problem. Die Anleitung auf mozilla.debian.net oder mein Beitrag zu Iceweasel zeigen aber die Alternativen auf.
Abgesehen von Browsern sehe ich keinen Grund, warum man als durchschnittlicher Benutzer immer und überall die neueste, aber instabile Software haben müsste. Mit der Installation von Stable ist man in der Regel für zwei Jahre vollkommen von allen Computerproblemen befreit.

Oldstable

Nach der Veröffentlichung von Debian Stable wird die vorangegangene Version zu Oldstable und noch ein weiteres Jahr mit Sicherheitsaktualisierungen versorgt. Insbesondere für Server lohnt es sich deshalb mit dem Upgrade zu warten, solange neue Feature nicht gebraucht werden. Wer als Desktopbenutzer zufrieden mit seinem System ist, schätzt den langen Support von Debian.

Jahresrückblick 2011: Spiele mit Linux

Das Jahr geht zu Ende, was man daran erkennt, dass sie im Radio wieder John Lennons Happy Xmas spielen: "Another year over, what have you done?"

Ein Blog macht es ziemlich einfach diese Frage zu beantworten. Bis zum Ende des Jahres wollte ich ein paar Themen einfach mal Revue passieren lassen und mit dem sicherlich angenehmsten anfangen: Spiele mit Linux

Oft höre ich irgendwo die Frage, ob Spiel XY für Windows auch unter Linux laufen würde. Meistens entscheidet sich dann nach der Antwort für den Fragesteller, ob er Linux wohlgesonnen ist oder nicht. Warum eigentlich? Es ist ja nicht die Schuld einer Distribution, von Linux und Freier Software im Allgemeinen, dass ein für eine andere Plattform entwickeltes Spiel nicht funktioniert und mit Sicherheit lässt es keine Rückschlüsse über die Bedienbarkeit und Qualität Freier Software zu.
Die Hersteller argumentieren natürlich aus betriebswirtschaftlichen Gründen, dass für eine so kleine Zielgruppe wie Linuxspieler sich eine offizielle Unterstützung aus Kostengründen nicht lohnen würde. Doch wenn es keinen Port gibt, wird die Zahl dieser Gruppe weiter klein bleiben. Ein Teufelskreis?

Ich habe 2008 für mich entschieden unter diese Logik einen Schlussstrich zu ziehen und mein damals ausschließlich für World of Warcraft betriebenes DualBoot-System mit Windows XP endgültig einzustampfen und ab sofort WoW mit Wine zu spielen. Seitdem kaufe ich nur noch Spiele, die entweder unter Wine laufen oder für die es eine native Linuxversion gibt.

Dass auch sehr bekannte Spiele gut mit Linux funktionieren, beweist Blizzard Entertainment mit seinen Titeln. Starcraft II läuft ausgezeichnet mit Linux und Wine und seit Mai spiele ich mit dem minimalen Debian Sid und mit Crossover Games, die zusammen mit allen Freiwilligen des Wine Projekts maßgeblich für die gute Spielbarkeit mit Linux verantwortlich sind.
Wie gut oder wie schlecht ein Spiel unterstützt wird, bleibt aber weiterhin in der Verantwortung des Entwicklers und ich denke die beste Antwort, die man als Kunde liefern kann, ist es nur solche Spiele zu kaufen, die auch mit einem Freien Betriebssystem spielbar sind. Außerdem, wirtschaftliche Gründe hin oder her, es hängt auch von der eigenen Unternehmensphilosophie ab wie wichtig einem Kompatibilität wirklich ist. Dass es auch anders geht, hat in der Vergangenheit Id Software bewiesen.
Spiele unterscheiden sich in einem wesentlichen Punkt von allen anderen Softwarekomponenten. Sie sind absolut optional, auch wenn jetzt sicher einige Zocker aufstöhnen werden. Ich beurteile sie deswegen auch anders als z.B. einen Webbrowser, eine Datenbank oder Blogsoftware. Während man Transparenz und Standards bei Freier Software nicht hoch genug einschätzen kann, geht die freie Welt nicht davon unter, wenn der Quellcode von Starcraft 2 verschlossen ist.

Sicherlich in einer perfekten Welt könnte man jedes Spiel quelloffen veröffentlichen und die Entwickler bekämen trotzdem ihre Entwicklung belohnt. Leider sind wir noch nicht soweit, unmöglich ist es aber auch nicht, wie z.B. das Online Rollenspiel Ryzom zeigt.
In vielen Fällen ist die Lebensdauer und die Bedeutung eines Spiels zu gering. Was heute in ist, ist morgen out. Doch lässt man zwanzig Jahre verstreichen, werden alte Spielkonzepte plötzlich wieder neu und angesagt, man braucht eben nur ein modernes Spielgerät. Aber vielleicht bin ich auch einfach Reif fürs Museum.

Dieses Jahr habe ich einige gute Spiele in den Humble Bundles gefunden. Meine Favoriten: Trine, VVVVVV, Aquaria und Shank. Trotzdem die meisten dieser Indiespiele mit sehr wenig Personal gestemmt werden, ist der Spielspaß hoch und wie es Aquaria zeigt auch möglich ein zuerst verschlossenes Spiel unter der GPL zu veröffentlichen.
Wenn man also mit Linux spielen will, ist sicher ein guter Weg sich zuerst einmal die Übersicht bei holarse.de anzuschauen. Auch 2011 habe ich noch nicht alle Spiele durchgespielt, die dort aufgeführt sind. Oder wenn es schnell gehen soll, lädt man sich einfach eine Live-Distribution für native und quelloffene Spiele herunter.
Fasziniert dieses Jahr hat mich auch das Zusammenspiel von Freier Software und Musik, die unter einer Creative-Commons-Lizenz veröffentlicht wird. M.A.R.S und Obsidian Shell machen es möglich.

Schließlich ist alles nur eine Geduldsfrage. Wartet man lange genug, lässt sich jedes Spiel irgendwann in einem Emulator spielen. ScummVM ist zwar kein Emulator, aber dennoch einer meiner langjährigen Favoriten. Auch 2011 haben Indiana Jones und das Schicksal von Atlantis oder The Dig nichts von ihrem Charme verloren. Wie oft ich schon gewünscht habe, dass diese beiden Titel verfilmt worden wären und nicht was uns stattdessen mit dem letzten Indy Teil oder Armageddon vorgesetzt worden ist. 🙄
Alles in allem ist die Liste mit Linuxspielen auch dieses Jahr wieder größer und nicht kleiner geworden. Kann man mit Linux spielen? Auf jeden Fall!

Humble Indie Bundle 4, Shank, Bit.Trip Runner und Aquaria im Überblick

Der Verkauf des Humble Indie Bundle 4 läuft schon seit einigen Tagen, doch ich wollte mir dieses Mal etwas Zeit nehmen um drei Spiele aus dem aktuellen und erst vor kurzem zu Ende gegangenen letzten Bundle vorzustellen.
Zuletzt habe ich ein paar kritische Stimmen wie z.B. auf linuxundich.de gelesen, ob man als Blog wirklich jedes neue Bundle ankündigen muss, wenn mittlerweile in jeder Linuxecke des Internets darüber berichtet wird. Da ist was Wahres dran. Ich sehe den Sinn eines Blogs ebenfalls nicht in Ankündigungen und Nachrichtenmeldungen. Es gibt mehr als genug Seiten, die sich darauf spezialisiert haben.
Beim Humblebundle werde ich dennoch eine Ausnahme machen, auch wenn die Meldungen nicht immer zeitnah erscheinen. Zum einen ist es schwer einzuschätzen, wie viele Menschen tatsächlich schon die Humble-Bundle-Aktionen kennen und zum anderen kann ich zumindest mit dem Verlinken auf die entsprechenden Spieleseiten oder Rezensionen ein kleines Nachschlagewerk zu Indiespielen mit Linux für mich erstellen, dass ich unter dem Schlagwort Humblebundle schnell aufrufen kann.
Auch wenn kaum Zeit bei der in letzter Zeit hohen Frequenz bleibt alle Titel auch durchzuspielen, könnte von mir aus jeden Tag ein neues Bundle erscheinen, denn das bedeutet, dass wieder ein paar Spiele nativ für Linux angeboten werden. Und solange man frei entscheiden kann, ob man 1 Cent oder 100 Euro dafür zahlen möchte oder das Ganze ganz ignorieren kann, ist es die kurze Erwähnung für alle Linuxspieler und alle die es werden wollen sicher wert.

Aquaria

In der zweidimensionalen Unterwasserwelt von Aquaria schlüpft man in die Rolle von Naija, mit der man sich auf die Reise nach ihrer Vergangenheit begibt. Gleichzeitig erfährt man durch die Erzählerin, Naijas Stimme aus der Zukunft, über besondere Ereignisse und Orte, womit sich das Puzzle um ihre Erinnerung nach und nach zusammensetzt.
Naija ist in der Lage mit Hilfe der Aquaria durchströmenden Kraft des Verse mit Objekten zu interagieren und Zauber zu wirken. Die Entwickler haben diesen Teil des Spiels phantasievoll gelöst, indem Naija kurze Töne in einer bestimmten Reihenfolge singen oder einen Ton passend zur Farbe eines Gegenstands längere Zeit halten muss, um an den Inhalt zu gelangen.
Das Spiel vereinigt einige Rollenspielelemente wie das Zubereiten von Speisen und ein Zaubersystem mit typischen Aufgaben wie dem Erkunden der Unterwasserwelt, das Lösen von Rätseln und Kämpfe mit feindlich gesonnenen Kreaturen.
Als Adjektive zu Aquaria fallen mir charmant, bezaubernd und phantasievoll ein. Die Atmosphäre des Spiels ist dicht, wozu auch die sehr gelungene Musik und die Stimme der englischen Erzählerin beiträgt. Eine deutsche Übersetzung scheint es in Form von Untertiteln zu geben. Das Spiel ist für Kinder perfekt geeignet.
Die Installation unter Linux ist sehr gut. Es gibt sowohl 32bit- als auch 64bit-Deb- oder RPM-Pakete. Das Spiel wird nach /opt installiert. Wer eine Fehlermeldung beim Installieren erhält, die auf ein fehlendes Verzeichnis hinweist, sollte den leeren Ordner /usr/local/share/desktop-directories/ anlegen. Das Problem scheint aber ein spezifisches Problem bei einer reinen Lösung mit Fenstermanagern zu sein. Besonders auch: Die Spielengine von Aquaria wurde unter der GPL veröffentlicht.

Shank

Das Erste was mir in den Sinn kam war ein Spruch des Duke : "I'm here to kick ass and chew bubblegum and i'm all outta gum." Shank ist ein im Comicstil gezeichnetes 2D-Haudraufspiel mit Stil. Wer Desperado mochte, wird Shank lieben. Obwohl das Spiel "nur" zweidimensional ist, hat man stellenweise das Gefühl in einem echten Film zu sitzen, der alles hat, was einen guten Actionfilm auszeichnet: Rache, fiese Typen, coole Sprüche und sinnlose Gewalt.
Mit Hilfe zweier Messer und Pistolen, Granaten, einer Schrotflinte und der Kettensäge (fehlt nur noch die BFG9000) macht sich Shank auf seinen Rachefeldzug um den "Butcher" zur Strecke zu bringen. Dass er dabei nicht immer sehr subtil vorgeht versteht sich von selbst, was dem Spiel in Deutschland zu einer USK-18-Freigabe verholfen hat. Ein weiterer Bonus von Shank: Es gibt einen Mehrspielermodus.
Der Bin-Installer für Linux funktionierte problemlos. Das Spielverzeichnis lässt sich frei wählen. Das Einzige was ich bedauert habe war mein fehlender Gamecontroller, mit dem die Komboangriffe sicher noch mehr Spaß machen würden.

Bit.Trip Runner

Bit.Trip Runner ist ein in Retromanier gezeichnetes...Rennspiel? Die Spielfigur, CommanderVideo, läuft dazu ununterbrochen, worin die Schwierigkeit des Spiels liegt, zu Chiptuneklängen in dieser seitwärts scrollenden Pixelwelt. Man muss zum richtigen Zeitpunkt über ein Hindernis springen, hinunter durchgleiten oder es durch einen Tritt aus dem Weg räumen. Der Musikrhythmus passt sich dann passend zu den Aktionen an, was bei 50 verschiedenen Leveln, eben auch zu 50 vollkommen verschiedenen Musikstücken führt.
Am Anfang muss man lediglich über Hindernisse springen, der Schwierigkeitsgrad steigt, wie sollte es anders sein, von Level zu Level an. Ich hatte teilweise Probleme auf Grund der großen Pixel noch die Spielfigur und die Hindernisse zu sehen und bis man den Dreh mit dem Timing raus hat, kann es teilweise mehrere Anläufe brauchen. Ich denke das Youtube-Video zeigt das Spielprinzip ziemlich gut.
Die Installation ist dank vorgefertigter 32bit- und 64bit-Deb-Pakete ein Kinderspiel.

Ansonsten befinden sich im Humble Indie Bundle 4 noch folgende Spiele und Soundtracks.

Oh Freude: Mainboardtausch zu P5QPL-AM bewirkt Wunder

Anfang des Monats dachte ich, ich hätte alles unter Kontrolle und könnte damit leben. Schließlich hatte sich herausgestellt, dass der große und mächtige Core-Duo-Rechner zwar ab sofort nur noch mit 2 GB RAM bestückt werden konnte, merkwürdige Fehlermeldungen und Abstürze sich aber wahrscheinlich auf den aktuellen Nvidia-Treiber bezogen hatten, weswegen ich ein älteres Backup aufspielte und die betreffenden Treiber auf "halt" setzte. Zumindest von den beängstigenden Segfault-Fehlern war weit und breit nichts mehr zu sehen.
Doch dann kam der Tag als ich eine recht große Datei komprimieren wollte, bzip2 sich aber im Laufe des Prozesses schlicht weigerte fortzufahren. Interessanterweise erschien eine sehr ausführliche Fehlermeldung, dass dieser Fehler wahrscheinlich im Zusammenhang mit fehlerhaftem RAM stehen könnte....Möglicherweise war da ja was dran.

Ich startete den Rechner neu und sah..Schwärze. Irgendwann funktionierte dann nicht mal mehr der Einschaltknopf, weswegen ich die Faxen dick hatte und mir ein neues Mainboard kaufte.
Ich suchte zuerst nach dem identischen Modell P5N73-CM, um auch der kleinsten Möglichkeit von Inkompatibilität aus dem Weg zu gehen, musste aber leider feststellen, dass sich dieser Typ in den vergangenen 2,5 Jahren äußerst rar gemacht hatte. Ich entschied mich schließlich für das P5QPL-AM von ASUS, welches vergleichbare Spezifikationen hatte.
Natürlich schaute ich vorher noch einmal nach dem empfohlenen RAM-Speicher auf der Herstellerseite, von TEAM-RAM aber keine Spur. Ich kreuzte also alle Finger und siehe da 2x2 GB TEAM TVDD2048M800 Module laufen stabil in diesem Board. Die einzig heikle Aufgabe war es den Prozessor samt Kühler vom alten Board auf das neue zu bekommen. Ich weiß nun ungefähr wie sich ein Chirurg bei einer Operation am offenen Herzen fühlen muss. 🙂
Um alle Zweifel auszuräumen unterzog ich die Kiste seit letzter Woche noch einigen Stresstests, um mal das Wort des Jahres zu benutzen. Es wurden 2 GB große Dateien xz komprimiert, für die Wissenschaft mit Boinc gerechnet und auch Unity habe ich benutzt.
Fazit: Operation erfolgreich, Patient lebt

Mehrere Pbuilder und Hooks: rxvt-unicode-256color von Debian Sid nach Squeeze backporten

Mit Pbuilder wollte ich noch den Terminalemulator rxvt-unicode-256color von Debian Sid nach Debian Squeeze zurückporten. Dabei sind ein paar Probleme aufgetreten und die Lösungen zum Nachschlagen habe ich hier verewigt.
Wie ich hierhin gekommen bin, habe ich in den Artikeln zum Paketbau mit Debian, Mplayer für den Framebuffer, einen Backportversuch mit Pbuilder und den Beitrag zum maßgeschneiderten DWM-Fenstermanager niedergeschrieben. Du kannst dich natürlich auch sofort in die Details stürzen.
Nachdem ich DWM und Surf erfolgreich mit pbuilder kompiliert und in ein Deb-Paket verschnürt hatte, machte ich guten Mutes mit rxvt-unicode-256color weiter. Das Paket ließ sich ebenfalls problemlos übersetzen, doch als ich es auf dem Thinkpad mit Debian Squeeze installieren wollte, fehlte mir eine aktuellere Abhängigkeit von ncurses-term.
Um aber ncurses-term erfolgreich zu bauen, brauchte ich wiederum die aktuelle Version von debhelper aus dem offiziellen Backports-Archiv.

Wie man einen Backport von rxvt-unicode-256color erstellt

apt-get source rxvt-unicode-256color
apt-get source ncurses-term

Randbemerkung: Beim Verändern meiner Tastaturbelegung mit xmodmap habe ich einen 5 Jahre alten Debian Bug ausgegraben. Scheinbar löst die Tastenkombination Strg+Shift ein ISO14755 Feature aus und ein nicht zu übersehendes Rechteck wird auf dem Bildschirm angezeigt. Der Bug ist wohl in rxvt-unicode-lite behoben, in 256color aber absichtlich nicht.
Das Verhalten lässt sich ausschalten, indem man die Option --enable-iso14755 in debian/rules auf --disable-iso14755 setzt. Quellpaket danach mit dpkg -b source aktualisieren!

Kopiert man dann die unten beschriebenen Skripte bzw. Konfigurationsdatei an die richtige Stelle lassen sich DEB-Pakete für i386 und Squeeze mit dem folgenden Befehl bauen. Beim ersten Mal noch --override-config anhängen, damit die geänderte config eingelesen wird!

ARCH=i386 DIST=squeeze pbuilder build ncurses_5.9-4.dsc
ARCH=i386 DIST=squeeze pbuilder build rxvt-unicode_9.12-1.dsc

Die fertigen Pakete befinden sich danach in /var/cache/pbuilder/squeeze-i386/result
Die folgenden Skripte und Konfigurationen wurden mit geringen Änderungen aus dem Pbuilder Howto auf ubuntu.com übernommen. Empfehlenswert zum Nachlesen! Außerdem hilft man pbuilder weiter.
Hat man Pbuilder einmal so eingerichtet, lassen sich damit auch von einem Debiansystem Pakete für Ubuntu und umgekehrt erstellen, womit man ab sofort Software für 2/3 aller Linuxdistributionen leicht selbst übersetzen kann. 😉

Hooks

apt-preferences

Mit sogenannten Hooks lässt sich Pbuilder dazu bewegen, gewisse Prozesse und Abläufe mit Hilfe von Skripten automatisch während des Paketbaus oder davor und danach auszuführen. Mein Hook-Verzeichnis ist /var/cache/pbuilder/hook.d
Mit dem folgenden ausführbaren Skript E01apt-preferences wird den Paketen debhelper und lintian aus dem offiziellen Backport-Archiv eine höhere Pin-Priorität zugewiesen als den regulären Squeeze-Paketen. Damit werden beide Pakete automatisch aus Backports installiert, falls diese angefordert werden. Apt-Pinning hatte ich schon einmal allgemein vorgestellt, diese Methode hier demonstriert das Anpinnen von zwei spezifischen Paketen in /etc/apt/preferences innerhalb der Build-Umgebung von Pbuilder.

#!/bin/sh
set -e
STABLE_VERSION_REGEX='^6.0.[0-9]+

Es wird empfohlen das Verwenden von Backports auf das absolut notwendige Minimum zu begrenzen und so weit es geht auf die reinen Squeeze-Pakete zurückzugreifen.

Eine Shell ausführen, wenn das Bauen fehlschlägt

Das Skript wird als C10Shell in /var/cache/pbuilder/hook.d abgespeichert. Laut Pbuilder-Howto soll es für alle ausführbar sein (a+x). Ich muss hier in Zukunft einmal genauer nachforschen, ob das tatsächlich immer notwendig ist und ob man Pbuilder auch problemlos im User Mode Linux (UML) betreiben kann.

#!/bin/sh
# Shell aufrufen, wenn das Bauen fehlschlägt
apt-get install -y --force-yes vim less bash
cd /tmp/buildd/*/debian/..
/bin/bash < /dev/tty > /dev/tty 2> /dev/tty

Multiple Pbuilder und Archive: Konfiguration für pbuilderrc

HOOKDIR="/var/cache/pbuilder/hook.d/"
OTHERMIRROR="deb http://backports.debian.org/debian-backports squeeze-backports main"
# Codenamen für die verschiedenen Debian Versionen.
# Einfach editieren, falls die Codenamen sich in Zukunft ändern
UNSTABLE_CODENAME="sid"
TESTING_CODENAME="wheezy"
STABLE_CODENAME="squeeze"
STABLE_BACKPORTS_SUITE="$STABLE_CODENAME-backports"
# Liste der Debian Versionen.
DEBIAN_SUITES=($UNSTABLE_CODENAME $TESTING_CODENAME $STABLE_CODENAME
    "unstable" "testing" "stable")
# Liste der Ubuntu Versionen.
UBUNTU_SUITES=("natty" "maverick" "lucid" "karmic" "jaunty" "intrepid" "oneiric")
# Debian-Spiegel
DEBIAN_MIRROR="ftp.de.debian.org"
UBUNTU_MIRROR="mirrors.kernel.org"
# Falls die Version nicht zu ermitteln ist, durchsuche das Changelog nach Hinweisen
if [ -z "${DIST}" ] && [ -r "debian/changelog" ]; then
    DIST=$(dpkg-parsechangelog | awk '/^Distribution: / {print $2}')
    # Benutze die Unstable Version für bestimmte Versions Werte
    if $(echo "experimental UNRELEASED" | grep -q $DIST); then
        DIST="$UNSTABLE_CODENAME"
    fi
    # Benutze die Stable Version für Backports.
    if $(echo "$STABLE_BACKPORTS_SUITE" | grep -q $DIST); then
        DIST="$STABLE"
    fi
fi
# Optional: Standard Distribution/Version angeben
# z.B (${DIST:="unstable"}).
: ${DIST:="$(lsb_release --short --codename)"}
# Optional: Debians generische Namen(stable, testing, unstable) in die jeweiligen Codenamen umändern
case "$DIST" in
    unstable)
        DIST="$UNSTABLE_CODENAME"
        ;;
    testing)
        DIST="$TESTING_CODENAME"
        ;;
    stable)
        DIST="$STABLE_CODENAME"
        ;;
esac
# Optional: Die Standardarchitektur angeben. Z.B. (${ARCH:="i386"}).
: ${ARCH:="$(dpkg --print-architecture)"}
NAME="$DIST"
if [ -n "${ARCH}" ]; then
    NAME="$NAME-$ARCH"
    DEBOOTSTRAPOPTS=("--arch" "$ARCH" "${DEBOOTSTRAPOPTS[@]}")
fi
BASETGZ="/var/cache/pbuilder/$NAME-base.tgz"
# Optional: BASEPATH (und nicht BASETGZ) setzen, wenn man cowbuilder benutzt
# BASEPATH="/var/cache/pbuilder/$NAME/base.cow/"
DISTRIBUTION="$DIST"
BUILDRESULT="/var/cache/pbuilder/$NAME/result/"
APTCACHE="/var/cache/pbuilder/$NAME/aptcache/"
BUILDPLACE="/var/cache/pbuilder/build/"
BINDMOUNTS="/var/cache/archive"
if $(echo ${DEBIAN_SUITES[@]} | grep -q $DIST); then
    # Debian configuration
    MIRRORSITE="http://$DEBIAN_MIRROR/debian/"
    COMPONENTS="main contrib non-free"
    DEBOOTSTRAPOPTS=("${DEBOOTSTRAPOPTS[@]}" "--keyring=/usr/share/keyrings/debian-archive-keyring.gpg")
    #OTHERMIRROR="deb file:///var/cache/archive $DIST/"
elif $(echo ${UBUNTU_SUITES[@]} | grep -q $DIST); then
    # Ubuntu configuration
    MIRRORSITE="http://$UBUNTU_MIRROR/ubuntu/"
    COMPONENTS="main restricted universe multiverse"
    DEBOOTSTRAPOPTS=("${DEBOOTSTRAPOPTS[@]}" "--keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg")
   #OTHERMIRROR="deb file:///var/cache/archive $DIST/"
else
    echo "Unknown distribution: $DIST"
    exit 1
fi
if $(cat "/etc/debian_version" | grep -q -e "$STABLE_VERSION_REGEX"); then cat > "/etc/apt/preferences" << EOF Package: debhelper Pin: release a=squeeze-backports Pin-Priority: 999 Package: lintian Pin: release a=squeeze-backports Pin-Priority: 999 EOF fi

Es wird empfohlen das Verwenden von Backports auf das absolut notwendige Minimum zu begrenzen und so weit es geht auf die reinen Squeeze-Pakete zurückzugreifen.

Eine Shell ausführen, wenn das Bauen fehlschlägt

Das Skript wird als C10Shell in /var/cache/pbuilder/hook.d abgespeichert. Laut Pbuilder-Howto soll es für alle ausführbar sein (a+x). Ich muss hier in Zukunft einmal genauer nachforschen, ob das tatsächlich immer notwendig ist und ob man Pbuilder auch problemlos im User Mode Linux (UML) betreiben kann.

Multiple Pbuilder und Archive: Konfiguration für pbuilderrc