Archiv ‘Linux’

Donnerstag, 11. Dezember 2008

Perl 5 sucks!

Heute gerade erlebt:

For example, to install a module from the CPAN, you must first answer several questions to configure the CPAN client. Then, you download a package, which runs a small program, which generates a Makefile, which configures, builds, tests, and installs the module — if everything went correctly.

Quelle: Five Features Perl 5 Needs Now – O’Reilly Broadcast

Ich wollte mir App::Ack installieren. Zuerst versuchte ich es als normaler User, was aber (wohl wegen den Berechtigungen) nicht geklappt hat. Der Fragekatalog wurde durchgespult, viele Module heruntergeladen und irgendwo unter den vorbeiflimmernden Zeilen gab es dann irgendwann einmal eine Fehlermeldung, die ich natürlich übersehen habe.

Die Installation via sudo klappte leider auch nicht viel besser – vorerst jedenfalls. Auch hier lief irgendein Test schief und Ack wurde nicht installiert. Zwar war anhand der Fehlermeldung erkennbar, dass etwas schief gelaufen war – wie das Problem zu beheben sei, erfuhr ich aber nicht. Es ist dem Zufall zuzuschreiben, dass ich im Anschluss einige als „optional“ bezeichnete Test-Pakete installieren liess – und plötzlich war ack unter /usr/bin/ vorhanden. Heureka.

Was Perl braucht? Ein apt-get install ack – fertig. Obwohl ich Perl nicht gut genug kenne, denke ich, dass CPAN das Spiegelbild seiner Benutzer und seiner Programmierer ist: Umständlich, kompliziert, technikbesessen. Und somit für Endbenutzer wie mich nicht geeignet.

Tags: ,
Labels: IT, Linux

Keine Kommentare | neuen Kommentar verfassen

Samstag, 22. November 2008

wget, find und Bash ausgereizt

Um eine lokale Kopie der auf Terrific messages on girls’ T-shirt geposteten Photos zu erstellen, musste zwei Hürden übersprungen werden:

wget

$ wget --page-requisites "http://35mm.instantfundas.com/2008/11/terrific-messages-on-girls-t-shirt.html"

holte nur diejenigen Dateien, die auf dem lokalen Server abgelegt waren. Da die Photos bei ggpht.com gehostet wurden, kamen sie beim ersten Versuch nicht mit. Abhilfe schaffte folgender Befehl:

$ wget --span-hosts --page-requisites "http://35mm.instantfundas.com/2008/11/terrific-messages-on-girls-t-shirt.html"

find

Da ich vergessen hatte, wget mit der Option -nd („no directories“) aufzurufen, waren die Bilder nun über unzählige Ordner verstreut. Hier half find:

$ find . -name *tshirt* -exec mv '{}' '/Users/mario/Desktop/backup/' ';'

for-Schleife mit Bash

Sogleich folgte das nächste Problem: Die Dateinamen der Bilder waren nicht brauchbar: girls-tshirt (3)_thumb[1].jpg?imgmax=800 Mit Doppelklick wurde nicht automatisch Apples Preview geladen. Was nun? Bash hilft:

$ for i in *jpg*; do mv $i $i.jpg; done;

Ein einziges Bild wurde nicht umbenannt, weil es im PNG-Format daherkam. Hier war ich zu faul und benannte es von Hand um …

Tags:
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 19. November 2008

Mit cURL Serien von Dateien herunterladen

Nichts leichter als das:

$ curl "http://www.eMeidi.com/downloads/[1-15].jpg" -o image_#1.jpg

In diesem Fall geht der Downloader davon aus, dass im Ordner downloads auf meinem Server folgende Dateien liegen:

http://www.eMeidi.com/downloads/1.jpg
http://www.eMeidi.com/downloads/2.jpg
http://www.eMeidi.com/downloads/3.jpg
...
http://www.eMeidi.com/downloads/15.jpg

Indem man eine Range angibt (in eckigen Klammern, „von bis“), berechnet cURL diese URLs eigenhändig und versucht diese anschliessend herunterzuladen. Damit die Dateien auf der Festplatte gespeichert werden, muss dies mit dem Schalter -o kundgetan werden. Da eine Range eingesetzt wird, dient #1 als Platzhalter. In unserem Beispiel liegen nach dem Batch-Download folgende Dateien im Verzeichnis:

image_1.jpg
image_2.jpg
image_3.jpg
...
image_15.jpg

Labels: IT, Linux, Web

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 12. November 2008

Ubuntu Terminal wird weiss angezeigt


Ubuntu: Terminal Visibility Troubles
Originally uploaded by emeidi

Nach einem Upgrade meines „Media Center“-PCs (einem hundsnormalen Dell, Desktop-Modell mit Pentium III-CPU) auf Ubuntu 8.04 wurde beim Aufruf des Terminals nur eine weisse Fläche angezeigt (vgl. den Screenshot rechts, den ich einem anderen unglücklichen Ubuntu-Benutzer entliehen habe).

Das Problem konnte schlussendlich gelöst werden, in dem ich der xorg.conf folgenden Befehl beifügte:

Option "AddARGBGLXVisuals" "True"

Via: Problem: no window borders and white terminal with desktop effects.

Tags:
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Freitag, 7. November 2008

Datenbankdump von MySQL 5 nach MySQL 4

Den ursprünglichen Dump stellte ich mit phpMyAdmin her. Leider erlaubt die Web-Applikation nicht, den Charset des Dumps von UTF-8 nach LATIN1 (aka ISO-8859-1) anzupassen.

Deshalb ging es auf die Kommandozeile des Servers:

mysqldump --default-character-set=latin1 --compatible=mysql40 -u {user} -p {db} > dump.sql

Einerseits konnte ich so das Charset des Dumps festlegen (--default-character-set=latin1), andererseits musste ich aber auch auf die Kompatibilität achten (--compatible=mysql40). Leider war es mit letzterem Versprechen nicht wirklich weit her …

Auf Grund eines seit Monaten bestehenden Bugs in MySQL 5 enthielt der mysqldump-Dump Befehle, die MySQL 4.0.x nicht versteht:

SET @saved_cs_client     = @@character_set_client;
SET character_set_client = @saved_cs_client;

… was MySQL 4 folgende Fehlermeldung ausgeben liess:

#1193 - Unknown system variable 'character_set_client'  

Mittels vim (die GUI-Editoren unter Mac OS X mit Syntax-Highlighting kapitulierten vor 4000+ Zeilen) konnte ich den Dump dann doch noch derart zurechtbiegen, dass MySQL 4 die Datei schlussendlich schluckte. Der Befehl dazu lautete:

:g/^SET/d

Via: Vim: Delete every line in the file that does not match a pattern

Dieser vim-Befehl löscht kurzerhand alle Zeilen, die mit SET ... beginnen. Scheint dem Import nicht geschadet zu haben …

Tags:
Labels: IT, Linux

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 6. November 2008

Russisch Roulette mit Bash

[ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo "You live"

Quelle: (Useful) Stupid Unix Tricks?

Labels: Funny, Linux

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 22. Oktober 2008

Datei-Erweiterung in Kleinbuchstaben umwandeln

In den letzten Tagen habe ich meine MP3-Sammlung aufgeräumt (auf der Workstation herrscht langsam Platzmangel, weshalb ich die Songs auf den Server verschiebe). Dabei musste ich feststellen, dass es tatsächlich Idioten da draussen gibt, die ihre MP3s die Endung MP3 anstelle mp3 vergeben.

Unter Linux schafft man diesem Problem rasch Abhilfe, indem man das Tool rename verwendet:

rename 'y/A-Z/a-z/' *

Einziger Nachteil: Der ganze Dateiname wird nun kleingeschrieben. Für mich aber kein Problem, da ich bei MP3s auf konsequente Kleinschreibung achte.

Via: Convert Filenames to Lowercase

Tags:
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Samstag, 18. Oktober 2008

Textdateien von Mac Roman nach UTF-8 konvertieren

Heute habe ich mich endlich davon überzeugen lassen und MacFamilyTree 5 gekauft. Bisher war bei mir immer noch die Uralt-Version 3.6.6 im Einsatz.

Beim Import der Genealogie (im GEDCOM-Format) dann der Schock: Sonderzeichen werden verwurstelt!

Glücklicherweise kommt einem wieder einmal ein Unix-Tool zur Hilfe, mit der man die GEDCOM-Datei (im Grund ein beeindruckend simples Text-Format) von der Zeichenkondierung Mac Roman nach UTF-8 umwandeln kann:

$ iconv -f MACROMAN -t UTF-8 genealogie.ged > genealogie-utf8.ged

Und schon werden alle äöüéèà korrekt übernommen.

Tags: , ,
Labels: Linux

1 Kommentar | neuen Kommentar verfassen

Montag, 22. September 2008

Dienste oder Daemons unter Debian deaktivieren

Um Dienste unter Debian zu deaktiveren, ohne unter /etc/init.d mit Scripts und Symlinks wursteln zu gehen, empfehlen sich zwei Tools:

  • rcconf
  • sysv-rc-conf

Via: Remove Unwanted Startup Files or Services

Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 14. August 2008

Debian-Pakete downgraden

Seit einem apt-get upgrade habe ich Probleme mit den unter cacti 0.8.7b erstellten Grafiken. Es scheint, als gäbe es ein Problem im Zusammenspiel mit rrdtool 1.2.28 – jedenfalls klagen im cacti-Forum andere Benutzer über dasselbe Problem.

Nun, dann „rollen“ wir halt die schuldigen Pakete zurück. Wie? Nun, eigentlich ist es recht simpel:

  1. Auf packages.debian.org such man nach dem Paket-Namen und ruft dessen Seite auf (stable empfohlen). Hier: packages.debian.org/etch/librrd2
  2. Dann klickt man unter Download <paket> auf die Architektur des Servers (i386 für Normalsterbliche): packages.debian.org/etch/i386/librrd2/download
  3. Dort sucht man einen geographisch naheliegenden Mirror aus und klickt dann auf dem Link, um das Paket herunterzuladen. In meinem Fall war es SWITCH: ftp.ch.debian.org/debian/pool/main/r/rrdtool/
  4. Auf der Kommandozeile tippt man nun
    # dpkg -i librrd2_1.2.15-0.3_i386.deb

    und hofft, dass es keine Abhängigkeiten mit anderen Paketen gibt

  5. Fertig

Mit librrd 1.2.15 produziert cacti wieder anständige Grafiken, wie Backup meiner MacBook-Festplatte auf den iMac beweist

Tags:
Labels: IT, Linux, Web

1 Kommentar | neuen Kommentar verfassen