Apt-Pinning für die Mutigen

Apt-Pinning. Ein oft genanntes Stichwort bei Debian und Co. Manchmal möchte man eine neuere Softwareversion installieren als diejenige, die in einer bestimmten Veröffentlichung von Debian- oder Ubuntu vorhanden ist. Die Gründe sind vielfältig. Vielleicht ist man lediglich an einem neuen Feature interessiert, andererseits kann man aber genauso gut auch auf ein neues Paket angewiesen sein oder es ausschließlich aus Neugier installieren.
Für Debian Stable gibt es genau aus diesem Grund das offizielle Backport-Projekt, mit dem sichergestellt ist, dass ausgewählte Pakete zwar aktueller sind als die bestehenden, aber immer noch stabil mit dem Gesamtsystem harmonieren.
Mit Apt-Pinning gibt es eine weitere Möglichkeit für erfahrene und fortgeschrittene Anwender aktuellere Software zu installieren. Insbesondere ist diese Methode für Debian Testing und Unstable interessant, wenn man z.B. Pakete aus dem Experimental Zweig zusätzlich installieren möchte und es kann unter Umständen auch für Debian Stable eine Option sein, wenn keine Backports vorhanden sind.
Meine Motivation für diesen Beitrag waren zwei Pakete in Debian Testing, die nicht aktualisiert wurden, obwohl in Unstable eine Version vorhanden war, die Bugs beseitigte.
Im Regelfall bin ich der typische, langweilige Debianbenutzer. Bei meinen Stable-Installationen läuft nur Stable, bei Testing nur Testing und bei Unstable...nur Unstable. Das ist zwar wenig aufregend, hat mich bisher aber immer vor instabilem Paket-Mischmasch bewahrt.
Manche ätzen, dass das Mischen von Paketen später nur mit der Suche nach Hilfe in irgendwelchen Foren oder IRC-Channels enden kann, wo die Methusalems dich erst einmal zu Abbitte und Buße auffordern. Du möchtest nicht wissen, was mit Leuten passiert, die eingestehen Ubuntu-PPAs mit Debianpaketen gemischt zu haben. Ihr seid also gewarnt! 😈
Apt-Pinning wird ausführlich und gut mit man apt_preferences erklärt. Hilfreich finde ich außerdem

Apt-Pinning anhand eines Beispiels

Bei meinem konkreten Problem ging es um Vim und Iceweasel. Vor einem Monat wurde ich durch Zufall auf #debian im IRC auf einen Bug in Vim aufmerksam gemacht, den ich zwei Stunden später dann per Reportbug gemeldet habe. Die Bearbeitung und Lösung des Problems war mustergültig. Der Paketverwalter bestätigte den Fehler und knapp zwei Wochen später war der Bug durch Upstream gefixt worden und das neue Paket in Debian Unstable. Doch auch Wochen danach kam davon nichts in Testing an. Mittlerweile hat es das Paket zwar nach Testing geschafft, doch gerade in so einem Fall kann Apt-Pinning weiterhelfen.
Mein anderer Favorit ist Iceweasel. In der Regel folge ich den Anweisungen auf mozilla.debian.net und habe zum gleichen Thema auch schon einen Beitrag geschrieben. Im Moment dauert es aber mal wieder mit dem Versionswechsel von 7 auf 8 und 9 ist nicht mehr weit entfernt.

Apt-Pinning Pin-Priorität

In einem solchen Fall ist Apt-Pinning sehr einfach global einzurichten. Standardmäßig wird jedem Paket, jeder Installation und Aktualisierung eine Priorität zugewiesen, von der man in der Regel gar nichts mitbekommt. Alle installierten Pakete haben Prioriät 100, alle anderen Pakete innerhalb einer Version wie z.B. Squeeze 500. Überprüfen lässt sich das mit

apt-cache policy

Die Zahlenwerte haben laut man apt_preferences eine unterschiedliche Gewichtung. Im Allgemeinen gilt umso höher der Zahlenwert, desto höher die Priorität ein Paket aus einer anderen Version zu installieren. Für mich funktioniert das Folgende ziemlich gut:
Erstellt euch in /etc/apt/apt.conf.d/ eine Datei mit beliebigem Namen. Ich habe hier 10default-release gewählt und editiert sie mit folgendem Inhalt. Z.B.:

APT::Default-Release "testing";

Das gilt natürlich nur für Debian Testing und sollte auf die entsprechende Debian Version geändert werden, die man gerade benutzt. Führt man danach ein aptitude update aus und anschließend apt-cache policy stellt man fest, dass sich die Priorität für die Pakete in Debian Testing auf 990 erhöht hat.
Zwar wäre das Folgende auch ohne diese Festlegung machbar gewesen, mir hilft es aber sicherzustellen, dass bei zukünftigen Updates immer Testing Pakete vor allen anderen bevorzugt werden.
Um nun Vim oder Iceweasel aus Debian Unstable zu installieren, muss man zuerst die Paketquellen in /etc/apt/sources.list aktualisieren und z.B. folgenden Eintrag für Unstable hinzufügen.

deb http://ftp.de.debian.org/debian unstable main

Danach lässt sich Iceweasel oder Vim aus Unstable mit

aptitude -t unstable install iceweasel vim

installieren. Bei zukünftigen Updates prüft Apt, ob die Version aus Unstable oder Testing neuer sein sollte. Da Testing bei mir eine höhere Priorität bekommen hat, wird im Zweifelsfall immer aus Testing installiert.
Das ist natürlich noch nicht alles. Apt kann mehr, viel mehr. Wenn ihr Ubuntu benutzt lässt sich z.B. explizit festlegen, ob ihr nur Pakete aus 10.04 bevorzugt oder doch besser 11.04. Wie wäre es, wenn man festlegen könnte, ob man nur bis Version X aus Debian Testing installiert und danach nur noch Pakete aus Experimental installiert? Wie schränke ich meine Prioritäten nur auf KDE-Pakete ein?
Apt ist ein wirklich sehr mächtiges und smartes Programm. Doch in der Regel kommt man wie oben beschrieben schon mit sehr wenig Aufwand aus und sollte beim Mischen von Paketen verschiedener Versionen immer skeptisch bleiben. Für alle, die sich eine maßgeschneiderte Preferences-Datei anlegen möchten, empfehle ich wie schon gesagt einen Blick in man apt_preferences zu werfen oder sich das folgende fortgeschrittene Beispiel anzuschauen.
Raphael Hertzog bezeichnete vor sieben Monaten die Installation von Gnome 3 aus Debian Experimental in Testing als "apt-pinning for the brave". Das zu bewerten, liegt wie immer bei euch. 😉

Textverarbeitung, Tabellenkalkulation und Präsentation auf der Konsole

Ich habe keine Probleme damit zuzugeben, dass ich mittlerweile eine große Anzahl von Konsolenanwendungen regelmäßig benutze und ich sie nicht nur als letztes Mittel für Jahrzehnte alte Laptops, sondern auch für eine leichtbedienbare und effiziente Alternative für moderne Computer halte.
Es gibt aber auch Bereiche, in denen der Einsatz von Programmen für die Konsole unbefriedigend ist oder wo ich gespaltener Meinung bin. Ich käme nicht auf die Idee Bild- und Videobearbeitung ausschließlich auf der Konsole durchzuführen, obwohl natürlich das massenhafte Zurechtschneiden und Konvertieren von Bildern mit den geeigneten Programmen und seiner Lieblingsshell hervorragend funktioniert.
Auch 3D-Spiele sind nichts, wofür ich zwingend nach einer Konsolenalternative suchen müsste. Und dann wären da noch die sogenannten Büroarbeiten - Textverarbeitung, Tabellenkalkulation und die viel geliebten Präsentationen.

Textverarbeitung

Bei der Textverarbeitung sehe ich die geringsten Probleme. Tatsache ist, dass zu viele Texte "zu früh" oder gar unnötig mit Bürosoftware formatiert werden. In vielen Fällen würde es eine gut strukturierte Textdatei auch tun, die mit Hilfe von Editoren wie Vim oder Emacs verfasst wird. Außerdem spricht oft nichts dagegen Texte solange wie möglich in der Rohfassung zu belassen bis sie im letzten Schritt in ein ansprechendes Format gesetzt werden können. Für private Korrespondenz benutze ich deshalb nach wie vor entweder LibreOffice oder AbiWord und ansonsten einen schlichten Editor.

Tabellenkalkulation

Tabellenkalkulation wird immer dann praktisch, wenn man eine Teilnehmer- oder Getränkeliste erstellen will oder seine Finanzen planvoll ordnen möchte. Doch selten kommt es in privaten Haushalten vor, dass man zehntausende Zeilen Daten auswerten und zahllose Makros für Datenimport und -export verfassen muss. Mal abgesehen davon, dass ich Tabellenkalkulation im Allgemeinen nicht für die interessanteste Aufgabe halte, sehe ich abseits von automatisierten Prozessen kaum eine Notwendigkeit für eine Konsolenapplikation.
Das soll aber nicht heißen, dass es hier keine Alternativen geben würde. Als Lektüre empfehle ich K.Mandlas Tutorial "How to use teapot like a pro" und "Howto: Use Oleo like..like...like..". Ich gebe zu, dass ich nach dem Lesen des Tutorials zu Teapot der Vorstellung einer Tabellenkalkulation für die Konsole positiver gegenüberstehe und mir nun nicht nur mehr vorstellen kann damit einmal zu arbeiten.
Meine ersten Schritte mit Teapot habe ich dazu genutzt, den Wert der Laptops im zuletzt vorgestellten Post als Beispiel zu visualisieren, wozu ich den Preis für einen Neukauf und den für die gebrauchten Laptops gegenübergestellt habe. Ich weiß nicht gerade eine Herkulesaufgabe, für die es auch etwas Kopfrechnen getan hätte. In Teapot lassen sich aber auch beliebige Formeln eingeben, die sich mit den entsprechenden Funktionen natürlich auch in mehrere Zellen kopieren lassen und deren Werte automatisch bei einer Änderung in einer anderen Zelle angepasst werden.

Leider findet sich zur Zeit kein Paket in Debian, weshalb ich kurzerhand Teapot mit meiner Archlinux-Installation auf dem Inspiron 4000 ausprobiert habe. Das entsprechende PKGBUILD lässt sich wie in diesem Beitrag schon vorgestellt in AUR finden und mit makepkg -s schnell selbst bauen. Man sollte nur sicherstellen, dass make installiert ist.
Teapot besitzt viele grundlegende Funktionen, die man von jeder Tabellenkalkulation her kennt, einen vollwertigen Ersatz für LibreOffice Calc oder Gnumeric sollte man aber nicht erwarten.

Präsentation

Ok, hier muss ich passen. Präsentationen sind genauso etwas wie Schlipse, von denen ich hoffe, dass in Zukunft die Welt davon nur noch in Geschichtsbüchern lesen und sich darüber köstlich amüsieren wird. Ich habe schon eine Menge Präsentationen erstellt, aber noch nie eine rein für private Zwecke. Auch wenn ihr nun vielleicht schmunzelt, das soll nicht heißen, dass es keine Alternativen für die Konsole gäbe. Erwähnt seien hier die Programme Beamer, tpp und xsw. Ich habe davon noch keines ausprobiert, obwohl die reine Vorstellung auf den entsprechenden Webseiten vielversprechend aussieht.
In Zukunft soll das heißen: Selbst wenn ich in Sachen Konsolenapplikationen auch einmal skeptisch sein sollte. In der Regel hat mich vermutlich vor Jahren schon irgendjemand eines besseren belehrt. 🙂

Die trivialen Dinge über die keiner spricht

Was haben Raumschiff Enterprise Folgen und Blog-Artikel über Leben auf der Konsole gemeinsam?
Beide verschweigen gerne die trivialen Dinge des Lebens. Womöglich habt ihr euch auch schon einmal gefragt, wie Captain Picard und Co. es eigentlich mit den Sanitären Anlagen halten? Üblicherweise wird dieses nur allzu menschliche Detail in jeder Star Trek Folge geflissentlich ausgeblendet.
Posts zum Thema Linux und Konsole verhalten sich ähnlich. Man erfährt schnell, dass man mit einem zehn Jahre alten Laptop problemlos das Wetter der Erde in Echtzeit rendern kann, doch das "Wie kopiere ich eigentlich Texte im Terminal von A nach B" wird als selbstverständlich vorausgesetzt. Hier ist mein Versuch das Geheimnis um die Bedienung der Muscheln zu lüften.

GPM - General Purpose Mouse

Ich gebe zu, ich kann nicht alle Gewohnheiten ablegen, die sich in Jahren der Arbeit mit grafischen Oberflächen angesammelt haben. Instinktiv suchte ich deshalb nach einer Lösung wie man Texte mit der Maus markieren kann, um sie dann durch Kopieren und Einfügen an eine andere Stelle zu bewegen.
In der Regel erfüllt GPM diesen Zweck hervorragend. Bei gedrückter linker Maustaste markiert man den Text, wechselt zum Programm, in das man ihn einfügen möchte und drückt die rechte Maustaste. Mehr braucht es nicht um Wörter und Texte von A nach B zu kopieren. Vorausgesetzt natürlich man hat nur zwei Tasten zur Verfügung. Bei einer Drei-Tasten Maus ist die mittlere Taste die Einfüge-Taste.

Kopieren und Einfügen mit Screen

Wem die Maus suspekt erscheint, hat mit dem Terminalmultiplexer Screen (Tmux hat eine ähnliche Funktion) die Möglichkeit Texte mit der Tastatur in einen Buffer zu kopieren und auch wieder zum Vorschein zu bringen.

  1. STRG+A ESC startet den Kopiermodus. Ein danach erneut gedrücktes ESC bricht ihn ab. Im Copy Mode lässt sich wie im Vim Editor navigieren. h,j,k,l oder mit den Pfeiltasten. Mit g und G springt man zum Anfang und zum Ende.
  2. Space-Taste. Drückt man nach der STRG+A ESC Sequenz die Space-Taste markiert man somit den Anfang des Textes, den man kopieren möchte. Der Vorgang lässt sich durch einen weiteren Druck auf die Space-Taste beenden. Danach befindet sich die Kopie im Buffer.
  3. STRG+A ] Mit dieser Kombination wird schließlich der Text an der gewünschten Stelle wieder in Screen eingefügt.

Native Copy&Paste Funktionen der Konsolenprogramme

Die Notizbuch-Anwendung hnb z.B. lässt in Sachen Kopieren, Ausschneiden und Einfügen keine Wünsche offen. Dies funktioniert mit der bekannten Tastenkombination STRG+c, STRG+x und STRG+v.
Da man Kopieraufgaben hauptsächlich in Editoren benötigt, empfiehlt sich natürlich Vim. 😉 Mit vim -p datei1 datei2 datei3 usw. lassen sich mehrere Dateien gleichzeitig in verschiedenen Tabs öffnen. Zwischen diesen kann man im Kommandomodus mit gt oder gT navigieren. Im selben Modus lassen sich neue Tabs mit dem Befehl :tabnew öffnen.
Kopieren wird bei Vim yanking genannt. Startet man den Visuellen Modus mit v lässt sich der Text mit den gewohnten Bewegungstasten markieren und mit y kopieren und mit p einfügen. Yanking funktioniert auch im Kommandomodus z.B. mit yy für eine Zeile oder y3w für das Kopieren von 3 Wörtern. Der Löschen Befehl dd, d3w usw. lässt sich zugleich auch zum Ausschneiden benutzen.
Soweit zum Thema. Die man Seite zu Screen hat hier z.B. noch einiges zu Copy&Paste zu bieten. Momentan machen die vorgestellten Alternativen das Leben für mich auf der Konsole ein gutes Stück angenehmer.

apt-listbugs: Mehr Schutz vor schweren Bugs

Ich bin erst vor ca. 3 Monaten auf apt-listbugs aufmerksam geworden, obwohl ich seit längerer Zeit auf verschiedenen Rechnern Debian Unstable benutze. Mir war nicht sofort klar, wie das Programm funktionieren würde und ob ich es explizit aufrufen musste, um potentiell fehlerhafte Pakete zu finden.
Tatsächlich ist es äußerst einfach damit umzugehen. Man installiert es und fertig.
Jedesmal wenn ich ein Update mit Debian mache, überprüft apt-listbugs automatisch, ob im Bug Tracking System bei Debian ein schwerwiegender Fehler zu einem Paket gemeldet worden ist. Falls dies der Fall ist, gibt es eine Warnmeldung und die Abfrage, ob man das neue Paket wirklich installieren möchte.
Bisher hatte ich zwei Erfahrungen gemacht. Entweder der gemeldete Fehler war nicht von so schwerwiegender Natur und ich konnte ihn ignorieren oder aber apt-listbugs konnte mir den Fehler nicht melden, weil er nicht im neuen Paket auftrat, sondern sich in einem schon installierten befand, aber erst wirksam wurde nachdem ich die neue Software installiert hatte.
Der letzte Fall war auch das Problem bei dem weitläufigen Nvidia Bug und Xorg 1.11, der nicht nur mich, sondern eine Reihe anderer Leute auch betraf. Leider wurde die angestoßene Diskussion auf debian-devel nicht fortgeführt. Hier gäbe es sicher noch Verbesserungspotential.
Also alles Mist? Überhaupt nicht. Vor wenigen Tagen rettete mich apt-listbugs vor der Installation von Chromium 15. Das Paket war komplett unbrauchbar, so dass Chromium rein gar keine Webseite mehr darstellen wollte. In diesem Fall entschied ich mich bei meinem alten Chromium 14 zu bleiben und besser auf die Fehlerbehebung zu warten.
Wer also viel mit Debian Sid oder sogar Experimental zu tun hat, dem kann ich apt-listbugs auf jeden Fall empfehlen. Es ist zwar nicht perfekt, aber es schützt einem mit Sicherheit vor der ein oder anderen brenzligen Situation.

Wenn das System verrückt spielt

Es ist ein wunderschöner Morgen, der frisch gebrühte Kaffee dampft aus meiner schwarzen Tasse, die Sonne scheint, die Vögel zwitschern und ich vergnüge mich mit dem Anblick des brandneuen Gnome-3-Desktops von Debian. Das Glück könnte nicht schöner sein und schon beginne ich mit dem wiederkehrenden Ritual eines Systemupdates.

aptitude update
aptitude safe-upgrade

Keine berauschenden Neuheiten dieses mal, aber es kann auch nicht immer der 08. November sein. Doch was ist das? Zwei libwebkitgtk-Pakete wollen sich nicht per safe-upgrade installieren lassen. Unerschrocken versuche ich es mit einem full-upgrade. Schon erwarte ich, dass irgendein Paket endgültig deinstalliert werden muss, um das Update zu ermöglichen, doch nein, Apt signalisiert nur die zusätzliche Neuinstallation der zwei Pakete. Dann beginnt der Spaß.


Dpkg meldet mir gleich zwei gzip-Lesefehler und aptitude verabschiedet sich danach mit einem "segmentation fault (core dumped)"-Fehler. Die ZSH-Shell macht es kurz und drückt mit einem Emoticon meine momentane Stimmung aus. 🙁
Weitere Versuche die Pakete zu installieren schlagen fehl. Geistesgegenwärtig mache ich noch einen Screenshot für den späteren Debian-Fehlerbericht. Hier wurde ja offensichtlich gemurkst!
Ich versuche Iceweasel zu starten um nach dem Fehler zu recherchieren. Bestimmt gab es noch andere, die das gleiche Schicksal teilten.
Iceweasel startet nicht mehr.
Ich öffne die Gnome-Shell um eine andere Anwendung zu starten. Gnome-Shell stürzt ab. Wieder mit diesem unglücklichen Emote, dass die Gedanken des Gegenüber nicht besser ausdrücken könnte. 🙁 Fortschritt ist wunderbar.
Ich schaue in den Terminal und probiere es mit dmesg.

aptitude[3080]: segfault at 1dcbe0 ip 0828a86e sp bfc33df0 error 4 in aptitude-curses[8048000+3a3000]
[  527.464217] aptitude[3235]: segfault at 77b3255b ip 0828a88a sp bfd5a920 error 4 in aptitude-curses[8048000+3a3000]
[  549.243137] gnome-shell[3243]: segfault at b46c0120 ip b5e948ff sp a7c738b0 error 7 in libglib-2.0.so.0.2800.8[b5e33000+f0000]
[  551.414108] [drm] nouveau 0000:02:00.0: Unexpected pageflip in channel 4.
[  551.431058] [drm] nouveau 0000:02:00.0: PGRAPH - DATA_ERROR INVALID_BITFIELD
[  551.431063] [drm] nouveau 0000:02:00.0: PGRAPH - DATA_ERROR
[  551.431067] [drm] nouveau 0000:02:00.0: PGRAPH - ch 4 (0x0001c70000) subc 5 class 0x8297 mthd 0x1454 data 0x02050185
[  551.432188] [drm] nouveau 0000:02:00.0: Unexpected pageflip in channel 4.

Mir schwant nichts Gutes und ich beschließe einen Neustart zu machen. Da ich über ein Multiboot-System verfüge, kann ich meine dunklen Vorahnungen sofort überprüfen.
Ich boote in mein leichtgewichtiges Debian-Sid-Spielesystem, doch der Rechner hängt sich nach dem Login direkt auf. Bei Ubuntu, meinem dritten System, ereilt mich das gleiche Schicksal. Womit ich einen neuen Vorteil für ein Multiboot-System gefunden habe. Es kann wunderbar als Indikator für Hardwareprobleme dienen.
An dieser Stelle bin ich mir schon ziemlich sicher, dass es ins Geld gehen könnte. Ich zögere nicht und greife mir die nächst erreichbare Grml Linuxdistribution und starte aus dem Bootmenü der CD das Programm Memtest86. Memtest gehört zu der Sorte von Programmen, von denen man hofft, dass man sie nie benutzen muss, die aber, wenn es darauf ankommt, extrem hilfreich sind.
Ich lasse das Programm 20 Minuten ohne Fehlermeldungen laufen als plötzlich die Anzeige von blau auf rot springt und sich die Fehler beginnen zu summieren. 10000, 20000, 100000....Ich denke, ich bin fündig geworden. Die Warnmeldungen begannen erst in einem Speichersegment > 2GB, weshalb ich die Hoffnung habe, dass der Defekt nur auf einen meiner 2GB RAM Riegel beschränkt ist.
Ich öffne das Gehäuse, stelle fest, dass jetzt genau der richtige Moment für eine Reinigungsaktion ist *hust*, entferne Staub und einen der RAM-Riegel (50/50 Chance), verschraube wieder alles, boote erneut mit der Grml-CD und lasse Memtest86 laufen. Ich scheine das richtige Bauteil erwischt zu haben. Zumindest werden mir nun nur noch 12 Fehler angezeigt. Das ist zwar nicht toll, aber immerhin besser als 100000.

Die Moral von der Geschichte

Genauso wie bei Festplattenproblemen ist nicht immer die Software Ursache allen Übels. In den meisten Fällen warnt Linux durch scheinbar beängstigende Fehler bei einem Hardwaredefekt. Ich habe mal wieder gelernt, dass in PCs von der Stange oft Komponenten verbaut sind, die nicht nur günstig, sondern auch billig sein können. Mit Sicherheit achte ich in Zukunft wieder mehr auf Qualität oder zumindest suche ich mir nur noch Hersteller, die auf ihren RAM eine Garantie von 10 Jahren geben, ein Zeitfenster, was gut zu der anderen Hardware des Haushalts passt. Um schnell herauszufinden, welche Art von Speicher überhaupt im eigenen Rechner verbaut worden ist, eignet sich besonders das Standardwerkzeug dmidecode. Mit dem Befehl dmidecode -t memory lässt sich hier genaueres erfahren.
Ansonsten scheint alles heil geblieben zu sein. Der Core Duo hat jetzt nur noch 2 GB RAM, aber da ich selten an die 1GB-Speichergrenze stoße, spielt es kaum eine Rolle, ob 3 GB frei sind oder nur 1 GB. 😛

Schriftgröße des Standardthemas Adwaita in der Gnome-Shell ändern

Nachdem ich mein altes Thema Orta für Gnome 3 gefunden hatte, habe ich mich nun doch entschieden vorerst bei Adwaita, dem Standardthema, zu bleiben. Erst bei genauerem Hinschauen erkennt man einige kleine Fehler im neuen Orta-Design und ehrlich gesagt gefällt mir Adwaita einfach besser. Eine Kleinigkeit gab es dann doch noch zu ändern.
Die Schriftgröße in der Gnome Shell bei den Anwendungen ist sehr klein geraten. Gerade einmal 7.5pt wurde dafür ausgewählt. Ändern lässt sich diese Einstellung in /usr/share/gnome-shell/theme/gnome-shell.css. Dort muss man zu folgendem CSS Block navigieren und den Parameter font-size von 7.5pt auf z.B. 11pt setzen.

.app-well-app > .overview-icon,
.remove-favorite > .overview-icon,
.search-result-content > .overview-icon {
    border-radius: 4px;
    padding: 3px;
    border: 1px rgba(0,0,0,0);
    font-size: 11pt;
    color: white;
    transition-duration: 100;
    text-align: center;
}

Praktisch jedes Detail des Themas lässt sich in dieser Datei justieren. Und so sieht das fertige Ergebnis aus.

Die Taste zum Löschen von Dateien in Nautilus neu belegen

Scheinbar um die Benutzer vor sich selbst zu schützen, haben die Entwickler von Gnome 3 es vorgezogen die alte Löschentaste Entf durch STRG+Entf in Nautilus zu ersetzen. Wer schon immer wissen wollte, wie sich die Tastenkombinationen in Nautilus 3 neu belegen lassen, sollte sich den sehr anschaulich erklärten englischen Blogpost gnome 3 delete key not deleting/working in nautilus nicht entgehen lassen.
In Kürze funktioniert das Umändern so:

  1. dconf-tools installieren
  2. ALT+F2 drücken und den dconf-editor starten.
  3. Zu org > gnome > desktop > interface navigieren und die Variable can-change-accels selektieren.
  4. Nautilus öffnen und eine beliebige Datei auswählen.
  5. Zu Bearbeiten im Nautilusmenü wechseln und den Eintrag "In den Müll verschieben" mit der Maus auswählen.
  6. Zweimal die Taste drücken, mit der die Funktion belegt werden soll. In diesem Fall Entf.

Anschließend ist das alte Verhalten in Nautilus wieder hergestellt.

GPA oder Nautilus-Actions: Dateien intuitiv mit GnuPG verschlüsseln

Die seahorse-plugins waren früher für mich immer der Garant dafür, dass ich mit einem simplen Rechtsklick in Nautilus eine Datei ganz leicht mit GnuPG verschlüsseln oder entschlüsseln konnte. Wie im letzten Beitrag zu Gnome 3 erwähnt, dauert es mit der Wiedereinführung dieses Pakets noch bis Gnome 3.4. Zwar lassen sich die wichtigsten GnuPG-Kommandos auch schnell in der Konsole ausführen, ein grafisches Frontend für die Gnome-Desktopumgebung macht den Umgang mit den vielfältigen Optionen aber deutlich bequemer. Wer nicht warten möchte, hat eine Reihe von Alternativen. Für mich funktionieren die folgenden ganz gut.

Gnu Privacy Assistant (GPA)

Eine Möglichkeit viele Dateien auch mit verschiedenen Schlüsseln bequem mit Hilfe eines grafischen Frontends zu verschlüsseln, bietet das Programm Gnu Privacy Assistant kurz GPA genannt. Im Prinzip lässt es sich wie ein gewöhnlicher Dateimanager bedienen. Zu verschlüsselnde Dateien werden über den "Öffnen"-Dialog importiert, wonach man sie signieren, verschlüsseln und natürlich auch wieder entschlüsseln kann. GPA verwendet dabei die modularisierte und erweiterte Version 2 der GnuPG Software.

Nautilus Actions

Mit der Anwendung Nautilus-Actions lassen sich zusätzliche Menüeinträge zu Nautilus hinzufügen. Sie wird entweder als externes Programm in der Gnome-Shell oder mit dem Befehl nautilus-actions in einem Terminal gestartet. Mit dieser Erweiterung zum Dateimanager Nautilus ist es möglich angepasste Befehle, Funktionen und sogar Skripte an einen Menüeintrag zu binden.

Aktion definieren


Zuerst wird unter dem Reiter Aktion der Kontextbezeichner für den zukünftigen Menüeintrag festgelegt. In diesem Fall also Verschlüsseln oder Entschlüsseln. Zusätzlich lässt sich noch ein Symbol definieren, welches als Miniaturausgabe neben dem Eintrag erscheinen soll.

Befehl festlegen


Um GnuPG bedienen zu können und die Passwortabfrage möglich zu machen, habe ich mich entschieden meinen Terminalemulator rxvt-unicode zu benutzen. Im Prinzip ist es der gleiche "Trick" wie bei den "Benutzerdefinierten Aktionen" in Thunar, den ich im Beitrag zu GnuPG vorgestellt habe. Eigentlich hätte ich erwartet, dass dieses Verhalten standardmäßig von Nautilus-Actions unterstützt wird oder sich zumindest unter dem Reiter Ausführung festlegen lässt. Leider funktionierte das so bei mir aber nicht.
Als Pfad trägt man /usr/bin/urxvt oder den für den eigenen Terminal entsprechenden Namen ein und als Parameter dann -e sh -c "gpg -ser 11111111 %f"
Dabei muss für 11111111 natürlich euer GnuPG-Schlüsselwert stehen. Die restlichen Einstellungen kann man für "Verschlüsseln" so belassen. Der Eintrag erscheint dann bei jeder Datei und mit einem Klick darauf wird gpg in rxvt-unicode ausgeführt. Dateien werden sowohl signiert als auch verschlüsselt. %f ist der Platzhalter für die Datei.

Entschlüsseln nur für gpg und pgp Dateien anzeigen

Der Parameter für den Entschlüsseln Eintrag im Reiter Befehl sieht bei mir so aus. -e sh -c "gpg -o %w -d %f"
Dadurch erhält die entschlüsselte Datei auch wieder ihren Originalnamen (%w). Damit der Eintrag nur bei *.pgp und *.gpg Dateien angezeigt wird, müssen unter dem Reiter Basisnamen und MIME-Typen zwei Filter angelegt und die Option "Muss einem entsprechen" bei beiden ausgewählt werden.
Für Basisnamen

*.pgp
*.gpg

Für MIME-Typen

application/pgp
application/gpg

Nützliche Links

Viele vorgefertigte Schemata gibt es auf der Entwicklerseite. Diese lassen sich direkt in Nautilus-Actions importieren. Ebenfalls nützlich ist der Blogeintrag auf upubuntu.com, der Schritt für Schritt mit Bildern zeigt, wie man z.B. den shred-Befehl in das Nautilusmenü einbindet.

Debian Testing: Leb wohl Gnome 2, Willkommen Gnome 3

Am 08. November 2011 landete schließlich Gnome 3.0 beinahe vollständig (nautilus-dropbox erreichte mich gestern) in Debian Testing und damit auf dem Core Duo. An diesem Tag sollten über 100 Pakete aktualisiert oder installiert werden, wozu ein full-upgrade mit aptitude nötig war. Der ganze Vorgang verlief bei mir vollkommen reibungslos.

Gnome 3 ist da

Der Post ist etwas ausführlicher geworden als geplant und speziell für Debiannutzer gedacht, die erst seit kurzem mit Gnome 3 konfrontiert werden. Der Beitrag zeigt Alternativen zu Gnome 3 auf, meine ersten Erfahrungen und Schritte mit der neuen Desktopumgebung sowie einige Hinweise zum Entwicklungsstand spezieller Gnome-3-Pakete in Debian. Viel Spaß.
Bevor ich nun ein paar Worte über das neue Gnome 3 in Debian Testing verliere, hier gleich das Wichtigste für alle Gnome-2-Fans vorne weg. Solltet ihr längere Zeit kein Upgrade gemacht haben, Vorsicht, Gnome 3 ersetzt Gnome 2 in Testing komplett, eine beschauliche Koexistenz ist leider nicht möglich. Wer auf gar keinen Fall upgraden will hat folgende Optionen zur Hand:

Lang lebe Gnome 2!

  1. Debian Squeeze. Wer ohne das richtige Gnome 2 nicht leben kann, hat nur eine ernsthafte Alternative (ist alternativlos sozusagen) - der Wechsel zu Debian Stable. Was Debian immer von allen Desktopbenutzern angekreidet bekommt, entpuppt sich hier als zusätzliche Stärke. Die Gnomepakete sind nicht etwa veraltet, sondern genau auf dem Stand (2.32), woran Milliarden von Menschen beinahe 10 Jahre lang gearbeitet haben. Und das Beste: Gnome 2 wird noch mindestens bis 2013 unterstützt und wer sich dann weigert ein Upgrade zu machen, kommt noch einmal für ein weiteres Jahr in den Genuss von Gnome 2 in Oldstable Squeeze. Sprich Support und Sicherheitsaktualisierungen bis 2014. Außerdem wird es keine Gnome-3-Backports für Squeeze geben. Denkt darüber nach.
  2. Den Ausweichmodus benutzen. Na gut, es gibt doch ein paar Alternativen. Gnome 3 wird mit einem sogenannten Ausweichmodus ausgeliefert, der dazu gedacht ist Leuten mit Hardware- oder Treiberproblemen dennoch eine grafische Desktopumgebung zur Verfügung zu stellen. Praktischerweise bietet Debian direkt beim Login mit Hilfe von GDM3 die Möglichkeit sich zwischen dem neuen Gnome und diesem Fallbackmodus zu entscheiden. Dieser sieht dem alten Gnome 2 verblüffend ähnlich und lässt sich über das Gnome Tweak Tool (dazu später mehr) auch optisch über Themen anpassen.
  3. Eine andere Desktopumgebung muss her. Wenn dich das alles nicht überzeugt hat und du bei Debian Testing/Sid bleiben willst, kommt nur der Wechsel der Desktopumgebung in Frage, was bei auf Debian-basierenden Systemen nicht schwierig zu verwirklichen ist. Als Alternativen bieten sich hier natürlich Xfce, zumindest solange die Entwickler nicht die Xfce-Shell einführen, und LXDE an. Solltest du dich für letzteres entscheiden liegt ein selbst zusammengestelltes System mit Openbox, Fluxbox oder Awesome nicht weit entfernt und da du schon Testing oder Unstable benutzt, hast du sicherlich nichts gegen Experimente und bist flexibel.

Bringt mir ein Gebüsch Gnome 3

Gnome 2
Gnome 3

Im folgenden möchte ich speziell zu den Erfahrungen bei der Umstellung von Gnome 2 zu Gnome 3 mit Debian Testing schreiben und aus meiner Sicht erklären, was nun anders ist und wie mein "Workflow" mit der neuen Desktopumgebung funktioniert.
Nachdem das Upgrade vollendet war, startete ich den X-Server mit invoke-rc.d gdm3 restart neu und befand mich danach im sogenannten Ausweichmodus von Gnome 3.

Gnome 3 Ausweichmodus

3D Support aktivieren

Das Problem war, dass ich zur Zeit wegen eines Bugs im Nvidia-Treiber, der übrigens in Sid nun behoben ist, die Nouveau-Treiber verwende. Die Freien Treiber verfügen zur Zeit größtenteils nur über einen experimentellen 3D-Support, den man bei Debian erst durch das Installieren des Pakets libgl1-mesa-dri-experimental vollständig für meine Geforce 9600GT aktivieren konnte. Gleichzeitig muss man sicherstellen, dass die alten Nvidia-Pakete hier nicht dazwischenfunken. Der sicherste Weg ist alle installierten Nvidia-Pakete zu deinstallieren. Finden lassen sie sich z.B. mit dem Kommando aptitude search 'nvidia ~i'. Startet man danach den X-Server neu, lässt sich Gnome 3 problemlos mit den Freien Nouveau-Treibern bedienen.

Was ist deine Lieblingsfarbe? - Gnome-3-Aussehen anpassen

Gnome 3 ersetzt wie schon gesagt das alte Gnome 2. Das schließt mit ein, dass man an einigen Stellen beim Aussehen Hand anlegen muss.

Gnome 3 Shell

Anfangs ist noch das Standardhintergrundbild von Debian eingerichtet. Dieses lässt sich aber schnell mit einem Klick auf den Benutzernamen oben rechts -> Systemeinstellungen -> Hintergrund ändern. Auch Icons und das Thema entsprechen den Default-Einstellungen. Um zum alten Aussehen des Gnome 2 Desktops, wie auf den obigen Screenshots gezeigt, zurückzukehren, habe ich zuerst das Gnome-Tweak-Tool installiert, welches dafür da ist "fortgeschrittene" Einstellungen wie Schriften und Thema des Desktops zu ändern, die für den "gewöhnlichen" Benutzer nicht von Interesse seien, so die Beschreibung des Pakets. Das GUI-Fenster des Tweak-Tools lässt sich in Version 3.0 nicht richtig skalieren. Der Fehler läuft bei Debian unter #648005 und ist in Version 3.2 behoben.
Mein Icon-Thema ist das ausgezeichnete Faenza, welches sich auf gnome-look.org herunterladen lässt. Am besten man kopiert es nach /usr/share/icons für alle Benutzer oder lokal nach ~/.icons. Als Thema habe ich mit Gnome 2 Orta benutzt. Für die Gnome Shell gibt es eine angepasste Version auf deviantart.com. Das Thema kann im Allgemeinen nach ~/.themes für den lokalen Benutzer und nach /usr/share/gnome-shell für alle User entpackt werden. Bei mir führte die lokale Variante zu Problemen und erst nach der Installation in /usr/share/gnome-shell/theme/ funktionierte alles. Der "theme"-Ordner sollte vorher noch gesichert werden, falls man später zum Default-Thema zurückwechseln möchte. Icons, Themen und Schriften lassen sich nach der Installation dann mit dem Tweak-Tool auswählen. Solange die "Extensions" zur Gnome-Shell in Debian nicht verfügbar sind, kann man das Thema der Shell mit dem gconf-editor ändern. Dort muss man nach desktop->gnome->shell->windows suchen und die Variable theme auf z.B. Orta setzen.
Ich war mit der Deckkraft der Gnome-Shell bei diesem Thema noch nicht zufrieden. Veränderungen lassen sich bei Gnome 3 aber über CSS Dateien vornehmen. Um das Hintergrundbild deutlicher hervorzuheben, habe ich die entsprechende Stelle in der gnome-shell.css von Orta angepasst. Die letzte Zahl bei background-color löst das Problem.

/* Overview */
#overview {
    spacing: 12px;
    background-color: rgba(226,226,228,0.1);
}

Gnome-Shell-Extensions

Um den Prozess der Desktopgestaltung zu vereinfachen, gibt es Upstream das Feature Erweiterungen zur Gnome Shell zu implementieren. Das entsprechende Paket wird demnächst in Debian Experimental eingestellt. Der Vorgang lässt sich unter Bug #627515 verfolgen. Michael Biebl, einer der Gnome-Betreuer bei Debian, stellte vor wenigen Tagen auf der "pkg-gnome-maintainers"-Mailingliste einen baldigen Upload in Unstable in Aussicht. Mit den Extensions lässt sich nicht nur das Thema intuitiv ändern, sondern auch kontroverse Einstellungen wie die nicht sichtbare "Ausschalten"-Funktion verändern. Ausschalten lässt sich der Computer direkt nur, indem man auf den Benutzernamen oben rechts im Panel klickt und dann die ALT-Taste gedrückt hält, wonach die Funktion erscheint. Ich weiß. 🙄

Unico Engine

Gnome 3 anzupassen bleibt auf jeden Fall ein spannendes Thema. Es gibt z.B. das Projekt Unico, mit dem eine Engine entwickelt werden soll, mit der sich ansprechendere Themen mit Hilfe von GTK und CSS erschaffen lassen. Vielleicht so etwas wie das Gegenstück zur Murrine Engine bei Gnome 2. Bei Debian wartet das Paket noch auf die Aufnahme. Viele sehr gut bewertete Gnome 3 Themen basieren mittlerweile auf Unico, welches sich mit Ubuntu schon ausprobieren lässt.

Wie man die Heilige Handgranate bedient - Gnome 3 Workflow

Die Dash

Kurzum für mich hat sich nicht besonders viel verändert. Früher benutzte ich entweder das Panel oder das AWN-Dock um oft verwendete Anwendungen schnell starten zu können. Anwendungen lassen sich nun nicht mehr auf das Panel ziehen. Diese Funktion ist tatsächlich überflüssig geworden. Die Funktion des AWN-Docks übernimmt die Dash, welche anstatt am unteren Bildschirmrand nun auf der linken Seite angebracht ist. Hervorholen lässt sie sich mit der Super/Windows-Taste oder durch die Bewegung des Mauscursor in die obere linke Ecke. In der Regel habe ich nur eine Handvoll von Anwendungen, die ich wirklich oft brauche und die Dash spart mir hier sogar noch mehrere zusätzlich installierte Pakete.

Die Shell

Früher gab es die simple Aufteilung Anwendungen/Orte/System. Jeder wusste sofort, wo er was suchen musste. Heute lassen sich die Anwendungen direkt über die Shell suchen, die mit der Super-Taste geöffnet wird. Man kann entweder den gesuchten Programmnamen eintippen, die Anwendung mit den Pfeiltasten auswählen und das Ganze bestätigen. Oder man navigiert mit der Maus im rechten Anwendungsmenü, welches wahrscheinlich nicht ganz zufällig Erinnerungen an Gnome 2 Zeiten weckt. Wie man es nimmt, Programme zu finden ist mit Gnome 3 kein bisschen schwieriger als früher.
Gnome 3 ermutigt einen auch regen Gebrauch vom Arbeitsflächenumschalter auf der rechten Seite zu machen. Ich finde es am einfachsten die wichtigsten Programme wie z.B. Browser oder E-Mail-Anwendung auf eine separate Arbeitsfläche zu verschieben und dann mit STRG+ALT+Pfeiltaste oder ALT+TAB zwischen ihnen zu navigieren. Zwar lassen sich die alten Minimierung/Maximierung-Symbole mit dem Tweak-Tool wieder hervorholen, wenn man sich aber auf die Gnome-3-Philosophie einlässt, muss man diese Einstellung nicht in Frage stellen. Fenster müssen nicht zwangsläufig minimiert werden um Übersicht zu schaffen.

Ein kleines Fazit

Ich denke das Konzept von Gnome 3 ist schlüssig, wenn man davon ausgeht, dass der "normale" Anwender nur eine Handvoll von Programmen regelmäßig benutzt und dieser eine größtmögliche Übersichtlichkeit über laufende Anwendungen haben möchte. Die Statusanzeige am unteren Bildschirmrand, welche dezent verborgen ist, ist meiner Meinung nach gut gelungen. Diese Art von Anzeige muss auch nicht unbedingt im Panel erscheinen.
Im Moment stört mich nur die eingeschränkte und meiner Meinung nach auch benutzerunfreundliche Konfiguration von Desktopeinstellungen und der Themen. Diese Probleme werden aber schon bald ausgeräumt werden. Man sollte auch immer im Hinterkopf behalten, dass Gnome 3 noch am Anfang des Entwicklungszyklus steht. Gnome 2 brauchte auch 8-9 Jahre bis es vollständig gereift war. Das neue Gnome 3 ist definitiv anders als alle anderen Desktopkonzepte. Man kann ihm nicht vorwerfen, dass es irgendwo abgekupfert hätte. Gerade für den sogenannten Arbeitsplatzrechner halte ich Gnome 3 für geeignet. Compizfunktionen vermisste ich bei den getroffenen Designentscheidungen nicht.
Kontrovers werden auch die Entscheidungen in Debian diskutiert, warum das Metapaket gnome-core das Bluetooth-Paket als Abhängigkeit besitzt oder ob es zwingend notwendig sein muss, dass der Network-Manager immer installiert ist und dabei teilweise andere Netzwerkeinstellungen ignoriert. Nachlesen lässt sich der Thread auf der debian-devel Mailingliste.

Ausblick

Schon Gnome 3.2 bringt wieder einige Verbesserungen in Debian mit sich. Wie der aktuelle Stand von 3.2 ist lässt sich nach wie vor hier erfahren. Ich hoffe, dass bald auch wieder eine Verschlüsselungsfunktion in Nautilus mit Hilfe von Seahorse integriert sein wird. Das frühere Paket seahorse-plugins wurde komplett aus Debian auf Grund schwerwiegender Fehler entfernt. Laut den Seahorse Entwicklern ist eine Wiedereinführung für Gnome 3.4 geplant.
Zum Schluss das Wichtigste: Am besten Gnome 3 selbst installieren und sich eine eigene Meinung bilden. 😉

Alpine: Konfiguration für Fortgeschrittene

Das Konsolensetup auf dem Thinkpad 600 ist bereit. Zeit um etwas Butter bei die Fische zu geben. Debian Squeeze ist installiert und die üblichen ohne-X Verdächtigen laufen einträchtig in Screen und manchmal zusätzlich noch in FbTerm.

Das alles war eine gute Gelegenheit um einmal zu testen, ob ich mit meinen eigenen Anleitungen auch noch nach einem Jahr etwas anfangen kann. Ich konfigurierte mein Text-E-Mail Programm Alpine genau nach den Vorgaben und richtete mir zwei POP3 und einen IMAP Account ein, wobei es mir bei letzterem genügte Mails zu lesen und in den IMAP-Ordner von einem anderen Konto aus zu speichern.
Für den ersten Start reichen die alten Einstellungen vollkommen aus. Bei Alpine hilft es aber noch folgende Ideen im Hinterkopf zu behalten. Die folgenden Optionen lassen sich sowohl innerhalb von Alpine unter Setup->Config ändern als auch in der versteckten Konfigurationsdatei .pinerc im Homeverzeichnis.

  1. Bestätigungsnachfrage beim Wechsel in ein Postfach abschalten
    Auf die Dauer zeitraubend kann die ewige Nachfragerei von Alpine sein, ob man tatsächlich das POP-Postfach öffnen möchte. Diese Nachfrage lässt sich wie folgt deaktivieren:

    folder-reopen-rule=yes-ask-y
    Yes for POP/NNTP, Ask for other remote yes
    
  2. Die Felder zum Verfassen der E-Mail bearbeiten
    Ich benötigte noch BCC und das FROM-Feld. Damit lässt sich der Absender schnell ändern, wenn man eine E-Mail verfasst. Eine flexiblere Möglichkeit bieten Regeln.

    default-composer-hdrs=From,
    	To,
    	CC,
    	Bcc,
    	Attchmnt,
    	Subject
    
  3. Externe Programme definieren
    Als externen Editor bevorzuge ich Vim, als Rechtschreibprüfung aspell.

    editor=vim
    speller=aspell
    
  4. Ort des lokalen Mailordners ändern
    Mich störte ein wenig, dass der Ordner Mail in meinem Homeverzeichnis angelegt wurde. Um ihn an einen anderen Ort zu bringen oder zu verstecken, ist diese Option da:

    folder-collection=mail .mail/[]
    

    Das /[] darf am Ende des neuen Namens nicht fehlen. Der Name mail wird so innerhalb von Alpine dargestellt.

  5. Auf alle IMAP-Ordner von Google Mail zugreifen
    Mit den sogenannten Collection Lists, lassen sich auch entfernte IMAP-Ordner anzeigen. Um dies bei Google Mail zu erreichen, geht man so vor.
    Setup->Collection List->Add

    Nickname: Google Mail IMAP
    Server: imap.googlemail.com/user=DeinBenutzername/ssl
    Path: [Google Mail]
    View:
    

    Mit CTRL+X wird dieser Eintrag abgespeichert. Anschließend befindet sich unter Folder List der IMAP-Ordner von Google Mail, in dem sich wiederum alle entfernten IMAP-Ordner befinden.

Mit Hilfe von Regeln lassen sich wesentlich feinere Einstellungen treffen. Zum Beispiel können so Filter definiert werden, mit denen festgelegt wird, wohin E-Mails verschoben werden oder, wie am Anfang schon erwähnt, die FROM-Adresse an Regeln angepasst werden. Unter Setup->Rules geht es zu den Regeln.
Mein Benutzerszenario sieht so aus. Ich rufe meine beiden POP3-Accounts ab, wobei standardmäßig die E-Mails auf dem Server belassen werden. Genauso möchte ich es auch haben, da ich unterwegs auf dem Laptop nur die Mails lesen will und auf den anderen Rechnern zu Hause dann die Filter laufen lasse. Die E-Mails werden über den Smtp-Server eines POP3-Anbieters verschickt. Das IMAP-Konto dient als Zwischenspeicher und Zugriff auf alte E-Mails. Mails lassen sich mit ; selektieren und mit S abspeichern. Den entsprechenden Ordner wählt man dann manuell mit CTRL+T aus.
Insbesondere die Regeln sind bei Alpine für weitere Kontrolle empfehlenswert. Für meine bescheidenen Ansprüche brauche ich sie zur Zeit aber nicht. Wer mehr darüber lesen möchte, sollte sich auch die offizielle Dokumentation der Alpine Entwickler anschauen.
Ebenfalls möglich ist das Versenden von E-Mails über eine verschlüsselte Verbindung. Am schnellsten lässt sich das unter Setup->Config einstellen. Die Smtp-Variable wird in der für Alpine üblichen Form angepasst. Z.B.

smtp.googlemail.com/tls/user=DeinBenutzername