Dropbox lässt sich auf Debian nicht updaten

Problem:
Ich wollte eben Dropbox unter Debian Wheezy updaten, nach dem Update geht leider Dropbox nicht mehr an.
Ein dropbox start in der Konsole zeigt das Problem.

VerificationError: importing '/home/myuser/pylinux/__pycache__/_cffi__xa0c4f46bx1d95b4de.so': No module named _cffi__xa0c4f46bx1d95b4de

Auf anderen Rechnern hat das Update funktioniert.

Lösung:
Siehe Bugreport
http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1183618.html
Offensichtlich passiert das nur, wenn die bisherige Installation veraltet / zu alt ist.


sudo rm -rf /var/lib/dropbox/.dropbox-dist
dropbox start -i

Und schon läufts wieder!

Freetz Trunk lässt sich nicht auf Debian Testing compilen

Problem:
Ich wollte mal wieder mein Freetz-Image aktualisieren, also ab in die Sources und ein „svn update“ durchgeführt – soweit sogut. Im Anschluss führe ich make clean aus und folgende Meldung erscheint.

boss@devil:/opt/freetz-box/freetz-devel$ make clean
ERROR: The header file sys/acl.h was not found in /usr/(local/)include.
ERROR: The header file sys/capability.h was not found in /usr/(local/)include.
Makefile:133: *** Some build prerequisites are missing! Please install the missing packages before trying again. Schluss.

Lösung:
Ich habe apt-file nach den fehlenden Dateien befragt und dadurch die Lösung erhalten. Es muss die Installation der folgenden Pakete durchgeführt werden, im Anschluss funktioniert der Freetz-Buildtree wieder wie gewohnt!

apt-get install libacl1-dev libcap-dev

Happy Freetzing!

Wann und wieso die Dateien nicht mehr vorhanden waren, habe ich nicht weiter untersucht. Geht ja wieder alles ^^

XBMC 12.3 Frodo Bugfix Relase

Problem:
Die letzte unter Windows XP installierbare, offizielle XBMC-Version ist v12.2 Frodo. Die Entwicklung scheint sich auf den Nachfolger „Gotham“ zu konzentrieren, Versionen >13.0 Alpha 6 verweigern aber die Installation unter XP und setzen zwingend Vista oder höher voraus. Näheres siehe XMBC Blog-Post.

Lösung:
Es wird noch an einem Bugfix-Relase Frodo 12.3 gearbeitet. Bereits die Test-Builds von Nov/Dez 13 zeigen Optimierungen wie eine verringerte CPU-Last im Idle sowie eine verbesserte Stabilität. Auf meinem System mit AMD Radeon-Grafikkarte konnte ich zudem eine deutliche Verbesserung bzgl. ruckelnder Video-Ausgabe beobachten.

Aktuelle Builds sind jeweils unter http://mirrors.xbmc.org/test-builds/win32/ zu finden und sind an der Bezeichnung …-Frodo.exe im Dateinamen zu erkennen.

Weitere Infos im entsprechenden XBMC Forum-Thread.

Guake Style Terminal für Windows

Problem:
Unter Gnome habe ich den Guake Terminal-Emulator schätzen gelernt, der sich per Hotkey über die GUI blenden lässt, ohne ein extra Terminal aufzurufen oder die Konsole wechseln zu müssen. Unter Windows wäre sowas auch ganz praktisch…

Lösung:
Tatsächlich hat ein findiger Entwickler unter Sourceforge ein Pendant names „Windows Quake Style Console“ veröffentlicht. Das Projekt ist zwar leider schon abgekündigt, aber die letzte Version ist brauchbar und zu finden unter:

http://sourceforge.net/projects/winqconsole/

Hint:
Obwohl F12 unter Windows nicht belegt ist wird er von WQSC nicht als Hotkey akzeptiert und die Standardbelegung Win+Tilde funktioniert in einem deutschsprachigen System nicht. Als Alternativen bieten sich F7 und F9 an.

svchost.exe 100% CPU bei Windows XP Update

Problem:
Ich habe 3 Rechner mit WinXP SP3 Slipstream neuinstalliert. Leider ist es über den IE6 nicht möglich, die ausstehenden MS Updates einzuspielen da das System mit der svchost.exe auf 100% Auslastung hängt.

Ich habe einige Dinge ausprobiert, im Internet finden sich haufenweise Beschreibungen des Fehlers, welcher wohl im Jahr 2011 unter XP SP2 schon aufgetreten ist. Dementsprechend sind die Lösungen auch nicht praktikabel, da die vorgeschlagenen Patches schon in SP3 integriert sind.

Am 3. Tag habe ich dann mal nebenbei die Lösung für das Problem gefunden – endlich!! =)

Wichtig: svchost.exe kann 100% Auslastung verursachen, das ist prinzipiell kein Fehler und „muss so sein“!
Wenn aber nach 12 Stunden keine Veränderung zu sehen ist, dann kann nachfolgendes hilfreich sein.

Workaround:
2 manuell-installierte Dinge haben die Lage entspannt und endlich Windows Updates ermöglicht.

1. Installieren der aktuellen Root Zertifikate von Microsoft
http://www.microsoft.com/de-de/download/details.aspx?id=38918

2. Installieren des Internet Explorers 8
http://www.microsoft.com/de-de/download/internet-explorer-8-details.aspx

Nach einem Neustart sollte das Windows Update Tool wieder Ergebnisse liefern!

Richtig chrooten unter Linux zur Reparatur

Problem:
Kurze Nachlässigkeit beim Updatevorgang und schon bootet der Rechner nach dem nächsten Neustart nicht mehr.

Lösung:
Es sollte ein Bootmedium zur Hand sein! Schön ist es, wenn man zB die GRML Bootdisk in GRUB eingebunden hat. Das vereinfacht die Prozedur natürlich ein wenig.

Wichtig: für eine 32bit Installation benötigt man auch ein 32bit Medium um die nachfolgenden Aktionen auszuführen. Kurzum: Die Architecture des Bootmediums muss stimmen!

Ich boote also das Rettungssystem ganz normal. Ich melde mich am System an, werde root und prüfe, wie die Partitionen des kaputten Systems lauten.
su root -
fdisk -l

Wenn die benötigten Partitionen bekannt sind, dann mountet man die Dateisysteme nach und nach an einen beliebigen Punkt. Ich finde /mnt passend. =)
# erstelle meinen Zielordner
mkdir -p /mnt/rescue
# auf /dev/sda2 befindet sich /
mount /dev/sda2 /mnt/rescue
# auf /dev/sda4 befindet sich /home
mount /dev/sda4 /mnt/rescue/home
# /dev wird für die Geräte benötigt
mount -o bind /dev /mnt/rescue/dev
# /proc wird auch benötigt
mount -t proc /proc /mnt/rescue/proc

Unterhalb von /mnt/rescue sind nun alle wichtigen Dinge gemountet und nun kann die Reparatur via chroot beginnen.
chroot /mnt/rescue /bin/bash
Ab hier sollten alle Systembefehle wie gewohnt verfügbar sein. Grub kann so zB neu geschrieben werden.
Nach der Reparatur einfach rebooten, sonst muss nichts beachtet werden.

snmpd – Basis Einrichtung unter Linux

Problem:
Ich möchte per SNMP einige Geräte mit Cacti überwachen.

Lösung:
Ich installiere snmpd und konfiguriere spartanisch
apt-get install snmpd
vi /etc/snmp/snmpd.conf

Meine modifizierten Variablen wie folgt:
agentAddress udp:161
view systemonly included .1.3.6.1.2.1
sysLocation Sitting on the Dock of the Bay
sysContact Me

Zuletzt den Dienst nochmal durchstarten, fertig!
/etc/init.d/snmpd restart

Der String .1.3.6.1.2.1 ist in der RFC1213-MIB spezifiziert und wird in einem O’relly Dokument recht gut erklärt wie ich finde.

Dazu gibt es im Debian Zweig noch ein MIB-Downloader Paket welches ich installiere

apt-get install snmp-mibs-downloader
# damit sind die MIBs auch schon runtergeladen

Dann muss in /etc/default/snmpd noch folgende Zeile ergänzt werden:

# Don't load any MIBs by default.
# You might comment this lines once you have the MIBs downloaded.
export MIBS=UCD-SNMP-MIB

Jetzt muss nur noch der snmpd neu gestartet werden.

Nachtrag:
Der Service loggt standardmäßig doch recht viel, das kann in der Datei /etc/default/snmpd abgeändert werden.

DebugLog:
# snmpd options (use syslog, close stdin/out/err).
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid'

WarningLog:
# snmpd options (use syslog, close stdin/out/err).
SNMPDOPTS='-LS0-5d -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid'

Die -L Option wird auf der Projektseite des PerlModuls näher erklärt
http://net-snmp.sourceforge.net/docs/man/snmpcmd.html

Nachtrag:
Netzwerk-Verbindungsüberwachung, zB für klassisches DSL oder PPTP VPN funktioniert nur solange die Verbindung besteht. Wird diese getrennt, dann kann snmpd nichts mehr liefern – Auch wenn die Verbindung wieder hergestellt ist!!
Abhilfe schafft hier ein einfaches, ausführbares (chmod 755) Script /etc/ppp/ip-up.d/snmpd-restart.sh

#!/bin/sh
/etc/init.d/snmpd restart

Damit wird bei jeder neuen, erstellten Verbindung der SNMP Dienst neu gestartet. Quick & Dirty

OSX – DMG Datei via Terminal installieren

Problem:
Installation von einfachen DMG Dateien über die Kommandozeile via Remote Shell.

Lösung:
Im Prinzip meldet man sich via SSH am OSX Rechner an, lädt die Datei auf den Rechner und führt dann folgende Schritte aus

Man mountet die DMG
hdiutil mount ExampleApp.dmg

wechselt dann in das korrespondierende Verzeichnis in /Volume
cd /Volume/ExampleApp

kopiert die Applikation in den Zielordner
cp -R "Example App Demo.app" /Application

wechselt zurück und unmountet DMG Datei
cd -
hdutil unmount ExampleApp.dmg

Apache Rewrite Cheatsheet

Hier eine Auflistung sinniger und unsinniger Weiterleitungsregeln
Zu fehlerfreien Nutzung ist ein Grundwissen über Webserver Statuscodes (nach RFC 2616) nötig. Nachfolgende wichtige sind auf der Seite http://www.debianhelp.co.uk/errorcodes.htm zu finden. Auch auf Wikipedia findet sich eine detailierte Auflistung aller Codes.

Error code categories

Successful Client Requests:
200 OK
201 Created
202 Accepted
203 Non-Authorative Information
204 No Content
205 Reset Content
206 Partial Content

Client Request Redirected:
300 Multiple Choices
301 Moved Permanently
302 Moved Temporarily
303 See Other
304 Not Modified
305 Use Proxy

Client Request Errors:
400 Bad Request
401 Authorization Required
402 Payment Required (not used yet)
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable (encoding)
407 Proxy Authentication Required
408 Request Timed Out
409 Conflicting Request
410 Gone
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type

Server Errors:
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported

1. Einfache, permanente Weiterleitung (Status 301) an eine andere Adresse (kein DocumentRoot im Vhost notwendig!)

Redirect permanent / https://www.anderedomain.de/

2. URL Umschreibung zur Kanonisierung (SEO)

RewriteCond %{HTTP_HOST} !^www.kommuniziertedomain.de
RewriteRule (.*) http://www.kommuniziertedomain.de%{REQUEST_URI} [R=301,QSA,L]

3. URL immer auf https umschreiben

RewriteCond %{HTTPS} off
RewriteRule (.*)$ https://www.meinedomain.de%{REQUEST_URI} [R=301,QSA,L]

stuff that matters