Category Archives: Linux

Wunderlist 1.2.4 verweigert den Dienst

Wunderlist hat mir heute ganz feige den Dienst verweigert. Vom Terminal aus gestartet hat es folgende Meldungen ausgegeben

./Wunderlist: error while loading shared libraries: libffi.so.5: 
cannot open shared object file: No such file or directory
[14:00:32:379] [Titanium.Host] [Error] Could not load module
([...]/Wunderlist-1.2.4/modules/tiui/1.2.0.RC3/libtiuimodule.so):
"Error loading module 
([...]/Wunderlist-1.2.4/modules/tiui/1.2.0.RC3/libtiuimodule.so):
libnotify.so.1: Kann die Shared-Object-Datei nicht öffnen:
Datei oder Verzeichnis nicht gefunden

Da haben sich wohl mal die Versionen geändert und Wunderlist, bekommt das nicht gebacken. Man kann dem aber mit 2 Symlinks abhelfen…

$ sudo -i
$ ln -s /usr/lib/i386-linux-gnu/libnotify.so.4 /usr/lib/i386-linux-gnu/libnotify.so.1
$ ln -s /usr/lib/i386-linux-gnu/libffi.so.6 /usr/lib/i386-linux-gnu/libffi.so.5

Unity Sidebar nicht individuell positionierbar

Nach eigenem Bekunden liegt Ubuntus Schwerpunkt auf der Benutzerfreundlichkeit[1]

Das hatte ich bisher eigentlich auch immer so empfunden und hatte an der Benutzeroberfläche von Ubuntu bisher nichts auszusetzen. Eines schönen Tages jedoch wollte ich die Unity Sidebar an den rechten Bildschirmrand verschieben und stieß dabei auf ein unüberwindbares Problem. Die Position ist fix am linken Bildschirmrand!!!

Da dacht ich mir das gibts doch nicht und bin bei der folgenden Recherche über einen langen Bugtracker Eintrag zu diesem Thema gestolpert, wo sich unter anderem Ubuntu Gründer Mark Shuttleworth[2] zu Wort meldet…

[..]I think the report actually meant that the launcher should be movable to
other edges of the screen. I’m afraid that won’t work with our broader
design goals, so we won’t implement that. We want the launcher always
close to the Ubuntu button.

status wontfix

Mark[...][3]

Also warum das an den Designzielen scheitern soll kann ich absolut nicht nachvollziehen. Hier geht es ja nicht um das Erscheinungsbild der Sidebar oder der Benutzeroberfläche, sondern lediglich um die Position eines einzelnen Bausteins.

Was auch immer die Entwickler dazu bewegt, die Sidebar zu fixieren, andere Benutzer verstehen den Sinn anscheinend auch nicht, denn obwohl der Bugeintrag von Oktober 2010 ist, wird immer noch heiß diskutiert. Was ich dabei am erstaunlichsten finde ist die Vehemenz mit der hier alle Einwände der Kommentatoren zerredet werden…

Vielleicht steckt aber auch kein “Designgoal” dahinter sondern ein ganz simples technisches Problem!
Nehmen wir mal an, dass das Kontextmenü der Application Launcher nur nach rechts aufklappen kann, dann wäre das ein Grund warum man die Sidebar nicht an den rechten Bildschirmrand schieben kann. Ob bei meiner Theorie dann der Konzepter, der Designer, der Techniker oder das Kollektiv Schuld hätten, darf jeder selbst entscheiden ;)

Ich bin auf jedenfall gespannt wie das weitergeht…

Weblinks
[1] http://de.wikipedia.org/wiki/Ubuntu#Prinzipien
[2]  http://en.wikipedia.org/wiki/Mark_Shuttleworth
[3]  https://bugs.launchpad.net/unity/+bug/668415/comments/2

Alle Bilder aus einem Picasa Web Album oder von MobileMe laden

So nachdem grandioser Weise unter Ubuntu der Login zwischen Picasa und Picasa Web Album auf unbestimmte Zeit nicht funktioniert (hat er schon mal, ich weiß es nicht) bin ich in folgendem Thread “Download Picasa Web Albums Without Installing Picasa” über eine grandiose Anleitung gestolpert, wie man alle Bilder eines Albums per wget herunterläd!

Picasa

- view rss feed in browser
- add &imgdl=1 to URL and refresh browser (links are now URLs to full size photos)
- save the rss feed in a txt format with your browser (file.txt from now on)
- $ grep googleuser file.txt > tmp.txt
- $ awk ‘{ gsub(//,”" ); print }’ tmp.txt > list.txt
- $ for f in `cat list.txt`; do wget “$f”; done

MobileMe

Nachdem MobileMe bei mir auch immer rumzickt, bin ich bei MobileMe nach dem obigen Schema vorgegangen … mit Erfolg!

- RSS Feed speichern als rssfeed.txt

# Links extrahieren
$ grep "<link>" rssfeed.txt > tmp.txt

# Link Tags entfernen
$ awk '{ gsub(/<link>|</link>/,"" ); print }' tmp.txt > linklist.txt

# Entferne Carriage Return
$ tr "\r" " " < linklist.txt >linklist.txt

# Bilder herunterladen
$ for f in `cat linklist.txt`; do wget $f".jpg?derivative=large&type=large&disposition=download&alternate=web&source=large.jpg"; done

# Parameter von den Bildnamen entfernen
$ for f in *;do mv $f ${f/?derivative=large&type=large&disposition=download&alternate=web&source=large.jpg%0D/};done

Wie ich meine MySQL Datenbank zu UTF8 überredete…

Also nun ist ja MySQL schon durchaus eine Weile in amerikanischer Hand und trotzdem stolpert man immer wieder mal über diesen lästigen Latin-1 Zeichensatz.

Aktuelles Problem war, dass ein eingespielter MySQL Dump einfach unverschämterweise die Umlaute nicht korrekt darstellen wollte, obwohl eigentlich alles in UTF8 war.

Aber halt nur eigentlich, denn des Rätsels Lösung offenbarte sich nach einem Blick auf die MySQL-Systemvariablen.

SHOW VARIABLES WHERE Variable_name LIKE '%character%' OR Variable_name LIKE '%collation%'

Da stand doch unglaublicherweise immer noch latin1

Um dem endgültig ein Ende zu bereiten, muss in die my.cnf folgende Konfiguration eingetragen werden und der MySQL Server neugestartet werden.


[mysqld]
character-set-server=utf8

Ubuntu – RAID 1 nachträglich (keine Bootpartition)

Nachdem ich meine Acer Easystore H340 endlich vom WHS befreit habe und Linux, in dem Fall Ubuntu, installiert habe, bin ich auf das Problem gestoßen ein RAID nachträglich einzurichten. Da die eine Platte kaputt war, und ich nicht warten wollte, bis diese wieder da ist, konnte ich anfangs (zum Installationszeitpunkt) kein RAID nutzen.

Da es sich bei dem nachträglichen RAID nur um ein “Storage”-RAID handelt, ist dies auch gar nicht so schwer. Trotzdem fasse ichs mal kurz zusammen.

Das System

Kurz zum System.

  • Ubuntu 11.04 Desktop mit Gnome
  • 1 Systemplatte sda
  • 2 Storageplatten sdb und sdc (die neue)

Die neue Platte vorbereiten

Die Platten, die im RAID enthalten sein sollen, sollten gleich groß sein. Ich hab zweimal das gleiche Modell von WD.

sdc ist ja noch jungfräulich und muss fürs RAID vorbereitet werden.

Hierzu sollen zunächst die Partitionstabellen von sdb eingerichtet werden:

sudo su -
sfdisk -d /dev/sdb | sfdisk /dev/sdc

Anschließend markieren wir die Partition(en) als RAID und vergewissern uns, dass alles passt:

parted /dev/sdc
(parted) toggle 1 raid
(parted) print

Damit ist die Vorbereitung der zweiten Platte soweit fertig.

Erstellen des RAID

Als nächstes erstellen wir das RAID mittels folgendem Befehl:

mdadm -C /dev/md0 --force --level=1 --raid-devices=2 /dev/sdc1 missing

Das missing markiert für die zweite noch normal eingehängte Platte den Platzhalter. Das RAID ist nun so benutzbar und kann eingehängt werden.

Kopieren der Daten auf das RAID

Jetzt können wir die Daten von der einzelnen Platte auf das RAID kopieren.

Dafür hängen wir das RAID ein.

mkdir /tmp/raid1
mount /dev/md0 /tmp/raid1

Gucken, ob alle Berechtigungen passen. Anschließend kopieren wir alles von sdb1 auf md0. Ich hab das wieder als Normaluser gemacht, so dass die Berechtigungen passen. Man kann es auch mit dem p-Parameter kopieren (gibt’s das bei cp?) und rsyncen, so dass die Berechtigungen erhalten bleiben.

cp -v /storage/* /tmp/raid1

Das -v kann man auch weglassen, bietet sich nur als ungefährer Fortschrittsindikator an (v.a. bei größeren Datenmengen).

Die zweite Platte ins RAID einbinden

Nun haben wir zweimal das gleiche, was ja schon nahe an ein RAID1 rankommt. Jetzt nehmen wir sdb noch in den RAID-Verbund auf.

Hierzu muss bei sdb nur noch das RAID-Flag gesetzt (siehe den parted-Teil oben) und folgender Befehl ausgeführt werden.

mdadm /dev/md0 --add /dev/sdb1

Jetzt beginnt das RAID sich zu syncen. Das dauert etwas.

Syncstatus beobachten

Da ich gerne sehe, wie viel Zeit ich überbrücken muss, hab ich hier mal etwas gesucht und ein kleines Skript geschrieben, um den Status des resync beobachten zu können.

1
2
3
4
5
6
7
8
9
10
11
12
13
raidstat() {
    P="0.0%"
    while [ $P != "100.0%" ]
    do
        sleep 1
        S=`grep -A2 "$1" /proc/mdstat | tail -n1`
        P=`grep -A2 "$1" /proc/mdstat | tail -n1 | egrep -o "[0-9]+\.[0-9]%"`
        clear
        echo $1: $S
    done
}
 
raidstat md0

Ich hab das einfach in eine Datei gepackt ein chmod a+x und angeschmissen. Da ist noch einiges an Potential drinnen, was man verbessern kann, aber so ein kompletter resync passiert ja nicht so oft, deswegen hab ichs mal so “roh” gelassen.

fstab anpassen

Abschließend muss man noch die /etc/fstab anpassen. Hier muss /dev/sdb oder dessen (G|U)UID durch /dev/md0 ersetzt werden.

Damit sollte alles passen. Ein Reboot ist hier nicht notwendig.

Bei Fehlern, Anmerkungen, Verbesserungsvorschlägen bitte in den Commentsbereich schreiben.

Quellen:

Edit:

Scheinbar gab es eine Änderung bei mdadm, so dass sich hier die dev-Bezeichnungen geändert haben bzw. ändern. Aus meinem md0 wurde ein md127. So hab ichs jetzt zumindest eingetragen.

Quellen hierfür:

http://ubuntuforums.org/showthread.php?t=1772692

https://bugs.launchpad.net/ubuntu/+source/mountall/+bug/776908

Zeigt her euren crontab!

Das sind mir die liebsten Übergaben… da ist das root Passwort und tschüß!

Naja was solls, wenn man weiß nach was man suchen muss findet man es auch. Ich hab einen cronjob gesucht, von dem ich wusste es gibt ihn. Mir war nur nicht bekannt was er aufruft und unter welchem User der Job läuft :)

Fündig geworden bin ich dann indem ich als root einfach mal in alle reingeschaut hab

$ for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l; done

ShellEd – Eclipse Shell Script Editor Search

Oh wie schön ist Open Source! Nachdem es in letzter Zeit immer öfter den Fall gab, dass man anstehende, sich wiederholende Aufgaben schön in einem Shell Skript unterbringen konnte… der Programmierer an sich ist ja ein faules Tier :D
War ich es langsam echt leid, Skripte die lokal entwickelt werden, in Zeiten von schmucken Editoren mit syntax highlighting und function lists, nur im VI runterzuhakeln…

ShellEd (Link zum Wiki) scheint für diesen Zweck unter den Eclipse Plugins die erste (einzige?!) Wahl zu sein! Die Installation aus der Paketquelle scheiterte, lokal aus dem ZIP (Download von Sourceforge) installiert, verichtet es seinen Dienst bisher fehlerfrei. Man muss vor der Installation beachten, dass Abhängigkeiten zu DLTK 2.0 und dem Man Page Viewer aus den Linux Tools bestehen. Diese sollten vor dem Plugin zu Eclipse hinzugefügt werden.

OpenVPN auf der QNAP TS-210

Für die Installation und Konfiguration gibt es ein super Tutorial

OpenVPN auf QNAP installieren

Was man bei  der 210er überspringen kann ist das Nachinstallieren des  tun Kernel-Modul, da es schon unter

/usr/local/modules/tun.ko

vorhanden ist und nur noch geladen werden muss.

In der autostart.sh sieht das bei mir nun folgendermassen aus. Damit läd die NAS beim Start sowohl das Modul als auch OpenVPN korrekt.

#!/bin/sh
(sleep 12; /sbin/insmod /usr/local/modules/tun.ko)&
(sleep 60; /opt/sbin/openvpn /opt/etc/openvpn/[CONFIG_FILENAME].conf)&

Weblinks

Dist-Upgrade von 9.10 Karmic Koala auf 10.04 Lucid Lynx (fast) ohne Schmerzen

So hab letzte Woche mal das Upgrade durchgeführt und das lief bis auf ein paar Punkte recht anstandslos durch.

Pakete konnten nicht konfiguriert werden

Fehlermeldung

 [...] useradd: /etc/passwd konnte nicht gesperrt werden; versuchen Sie es später noch einmal[...]

Geholfen hat folgende Dateien umzubenennen, obwohl beide leer waren und dann ein apt-get upgrade zu starten

$ mv /etc/shadow.lock /etc/shadow.lock.bak
$ mv /etc/passwd.lock /etc/passwd.lock.bak
$ apt-get upgrade

Hamster Applet ohne Einträge

Da hat sich der Pfad geändert. Die SQLite Datei konnte ich einfach umkopieren und die eingetragenen Standard Kategorien konnte ich mit dem SQLite Dateibrowser entfernen.

$ cp /home/[USERNAME]/.local/share/hamster-applet/hamster.db /home/[USERNAME]/.local/share/hamster-applet/hamster.db.bak
$ cp /home/[USERNAME]/.gnome2/hamster-applet/hamster.db /home/[USERNAME]/.local/share/hamster-applet/hamster.db
$ rm /home/[USERNAME]/.gnome2/hamster-applet -rf
$ killall gnome-panel

Propriäteren ATI Treiber entfernen

$ sudo apt-get --purge remove fglrx-kernel-source fglrx-modaliases xorg-driver-fglrx fglrx-amdcccle libamdxvba1
$ sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-video-radeon xserver-xorg-core
$ sudo dpkg-reconfigure xserver-xorg
$ sudo reboot

Bervor ich das obenstehendes fehlerfrei ausführen konnte musste ich in der Datei

/var/lib/dpkg/diversions

folgende Zeilen löschen

/usr/lib/libGL.so.1.2
/usr/lib/fglrx/libGL.so.1.2.xlibmesa
xorg-driver-fglrx

Danach lief eigentlich alles recht rund… bis jetzt :)

XP Automatic Update SUCKS

Nachdem man ja leider, wie so oft im Leben, nicht von manchen Dingen loskommt, hab auch ich immer noch eine XP VM für diverse Programme rumliegen.
Zum Beispiel für ITUNES… ich mag das Telefon aber dieses Fallobst Programm treibt mich jedesmal in den Wahnsinn…

Den grandiosen Höhepunkt haben sich die zwei gerade im Zusammenspiel miteinander geleistet. Nachdem Itunes seit gefühlten 2 Tagen mein Telefon synchronisiert… hat sich das Fenster dann mal, wahrscheinlich aus Langeweile, dazuentschlossen es könnte nach einem Update doch einfach mal NEUSTARTEN. DANKE SCHÖN!

Einen Weg wie man den automatischen Restart deaktiviert findet man hier. Testen konnte ich es nicht, bin ja auf dem neusten Stand *arghhh

Ach ja … Danke Microsoft für diese dumpfsinnig Aktion! Dadurch wurde mir mal wieder bewußt, wie richtig der Schritt vor nun mehr fast 3 Jahren war auf ein anderes System (www.ubuntu.com) umzusteigen! Wer mit dem Schritt zu Linux oder Mac noch zögert, dem helfen vielleicht diese Links weiter…

Weblinks
www.ubuntu.com
Coding Horror – XP Automatic Update Nagging
Und Tschüss, Microsoft! Zehn Gründe für einen Wechsel zu Linux
www.osalt.com – open source software alternatives