Archiv für die Kategorie: “Linux”

Für die Erstellung meiner Masterarbeit habe ich mich entschieden, für das Abkürzungsverzeichnis das Paket “acronym” zu verwenden und nicht wie bisher “nomencl”. Gründe dafür waren die einfachere Bedienbarkeit und eine effektivere Deklarierung und Verwendung.

Eingebunden wird das Paket mit dem folgenden Befehl, wobei die Option “printonlyused” besagt, dass ausschließlich Abkürzungen, die im Text verwendet werden, auch im Abkürzungsverzeichnis erscheinen.

\usepackage[printonlyused]{acronym}

Das Abkürzungsverzeichnis wird dann so erstellt:

% Kapiteldefinition ohne Nummerierung
\chapter*{Abkürzungsverzeichnis}
 % Abkürzungsverzeichnis soll im Inhaltsverzeichnis erscheinen
\addcontentsline{toc}{chapter}{Abkürzungsverzeichnis} 
\begin{acronym}
% Format der Abkürzungsdefinition: \acro{}[]{}
% {Verweis}[Abkürzung]{ausgeschriebene Abkürzung}
\acro{umts}[UMTS]{Universal Mobile Telecommunications System} 
\acro{aci}[ACI]{Access Integrator}
\acro{udp}[UDP]{User Datagram Protocol}
\acro{ajax}[AJAX]{Asynchronous JavaScript and XML}
\acro{adsl}[ADSL]{Asymmetric Digital Subscriber Line}
\end{acronym}

Im Text verwendet man die Abkürzung dann in der Form

\ac{udp}

, worauf bei der ersten Verwendung die ausgeschriebene Abkürzung und das Kürzel in Klammern im Dokument erscheint. Bei jeder weiteren Verwendung wird dann nur das Kürzel ausgegeben.

Nun aber zum eigentlich Problem: Wenn man bei der Erstellung des Abkürzungsverzeichnisses nicht darauf achtet, die Einträge bereits in der korrekten alphabetischen Reihenfolge einzutragen, wird man sich am Ende, wie ich, ärgern, dass das Paket “acronym” die Einträge nicht sortieren kann. Auch eine längere Recherche ergab, dass man die Einträge selbst sortieren muss. Wer allerdings Linux als Betriebssystem nutzt, vermeidet in der Regel monotone und stumpfsinnige Arbeiten und schreibt sich lieber ein Script, dass die Aufgabe übernimmt. Dies ist hier noch nicht einmal notwendig, da der Linux Befehl “sort” alle nötigen Funktionen mitbringt. Ich habe dazu alle Abkürzungen in die Datei “abkuerzungen_master.tex” kopiert.

\acro{umts}[UMTS]{Universal Mobile Telecommunications System} 
\acro{aci}[ACI]{Access Integrator}
\acro{udp}[UDP]{User Datagram Protocol}
\acro{ajax}[AJAX]{Asynchronous JavaScript and XML}
\acro{adsl}[ADSL]{Asymmetric Digital Subscriber Line}

Und dann mit dem Befehl Befehl unten die Einträge sortieren und in eine neue Datei ausgeben lassen.

sort abkuerzungen_master.tex -o abkuerzungen_sortiert.tex

In der Datei “abkuerzungen_sortiert.tex” stehen die Einträge in der korrekten Reihefolge und das Abkürzungsverzeichnis erscheint, wie gewünscht, alphabetisch sortiert.

Comments Keine Kommentare »

Bei Ubuntu 11.10 mit Gnome3 ist es nicht mehr so einfach eigene Anwendungsstarter zu erstellen und diese in die Favoritenleiste zu kriegen. Dieser Blogeintrag beschreibt, wie es möglich ist.

Hierzu öffnet man eine Konsole und wechselt in das Verzeichnis ~/.local/share/applications und erstellt dort eine Datei xyz.desktop, die dann ohne Dateiendung in der Liste der Anwendungen auftaucht. Ich werde dies anhand einer VM von Virtualbox verdeutlichen.

cd ~/.local/share/applications
vi vm.desktop

Die Datei sieht dann wie folgt aus:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Name=bbi-vm
Comment=Starts the VirtualBox machine bbi-vm
Type=Application
Exec=/usr/lib/virtualbox/VirtualBox --comment "bbi-vm" --startvm \
"76b28a81-f5a6-4770-828e-af2bb36e4cbf"
Icon=virtualbox-vbox.png

Ich denke die einzelnen Zeilen in der Datei sind selbsterklärend, entscheidend ist die Zeile Exec, in der die zu startende Anwendung mit ihren Parametern definiert wird. Die Verknüpfung lässt sich dann wie gewohnt aus der Anwendungsliste in die Favoritenleiste ziehen.

Ein weiteres Beispiel für einen Starter des Spieles Minecraft:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Name=minecraft
Comment=Starts minecraft
Type=Application
Exec=java -Xmx1024M -Xms512M -cp \
/home/cartmen/Programme/minecraft/minecraft.jar net.minecraft.LauncherFrame
Icon=/home/cartmen/Programme/minecraft/icon.png

Comments 1 Kommentar »

Mit den letzten Updates von FFMPEG hat sich das Ausgabeformat der Zeitangabe verändert. Bis Version 0.6 wurde die Laufzeit eines Videos in Sekunden und Millisekunden in der Form 371.19 angegeben. Alle Versionen danach geben die Zeit in Form Stunden:Minuten:Sekunden.Millisekunden aus, was Clipbucket bis inklusive Version 2.5 nicht verarbeiten kann. Dadurch werden die Dateien zwar erfolgreich konvertiert, aber haben die Duration 0. Dadurch, dass in den Logs auch keine korrekte Zeit steht, funktioniert auch die Funktion Repair Video Duration nicht.

Eine Lösung ist das Verändern des Quelltextes von Clipbucket. Dazu editiert man die Datei includes/classes/conversion/ffmpeg.class.php vor der Zeile 360.

$duration    = (float)$args[3];

Folgende Zeilen lösen das Problem:

$args[3] = substr("$args[3]",0,-3);  # millisekunden entfernen
$fix_temp = $args[3];  # variable erstellen und wert uebergeben
$fix_seconds = substr("$fix_temp",-2); # sekunden extrahieren
$fix_temp = substr("$fix_temp",0,-3); # zeichen inklusive : entfernen
$fix_minutes = substr("$fix_temp",-2); # minuten extrahieren
$fix_temp = substr("$fix_temp",0,-3); # zeichen inklusive : entfernen
$fix_hours = substr("$fix_temp",-2); # stunden extrahieren
$fix_temp = $fix_hours*3600 + $fix_minutes*60 + $fix_seconds; # gesamtzeit berechnen
$duration = $fix_temp; # gesamtzeit uebergeben
#$duration    = (float)$args[3]; # alten befehl auskommentieren

Wer die Datei nicht selbst ändern möchte kann folgende Datei herunterladen ffmpeg.class.php.tar und im Verzeichnis includes/classes/conversion entpacken und die alte Datei ersetzen.

Damit funktioniert Clipbucket auch mit der aktuellen FFMPEG Version 0.8.

Comments Keine Kommentare »

Erste Schritte

Zur Erstellung dieser Konfiguration startet man den Assistenten “Create Volume” und wählt dann “Create a volume within a partition/drive”, dann im nächsten Schritt “Standard TrueCrypt volume”, wählt dann die Festplatte oder leere Partition. Im folgenden Fenster, in dem Anfängern geraten wird keine komplette Festplatte zur verwenden, wählen wir “Ja”. Im Fenster “Encryption Options” kann jeder das passende auswählen. Wer nicht genauer nachlesen möchte kann hier die Standardeinstellung beibehalten. Im nächsten Fenster trägt man dann das Passwort zweimal ein und geht auf Weiter. Dann kommt das Fenster “Large Files” und hier wählt man, dass man Dateien mit mehr als 4GB verwenden möchte.

Formatieren

Jetzt kommt das Fenster, in dem man das Dateisystem auswählen soll. Leider gibt es unter Linux nur Ext Dateisystem zur Auswahl. Da ich die Platte auch unter Windows verwenden möchte, wähle ich hier “None” und gehe auf Weiter. Dann kommt der letzte Schritt, bei dem man die Maus möglichst zufällig bewegen soll. Nachdem man dies für einige Zeit gemacht hat klickt man auf “Format” und wartete einige Zeit, bis der Vorgang abgeschlossen ist.

Dateisystem anlegen

Einbinden

Da die erstellte Partition noch kein Dateisystem hat funktioniert das übliche Einbinden mit Truecrypt nicht, sondern man muss dies mit der Konsole machen.

truecrypt --filesystem=none /dev/sdc

Darauf erscheint ein Fenster, in dem man das Passwort eingeben muss. Danach kann man das Dateisystem erstellen.

NTFS Dateisystem erstellen

Zur Erstellung eines NTFS Dateisystems reicht folgender Befehl aus:

sudo mkfs.ntfs --quick /dev/mapper/truecrypt1

Damit ist die Erstellung der Truecrypt Partition abgeschlossen und das Dateisystem erstellt und man kann sie unter Linux und Windows verwenden.

Comments 2 Kommentare »

Folgendes Script dient dazu etwas mehr Ordnung in die Fotosammlung zu bringen. Dazu nutzt es die EXIF Information Kameraausrichtung um die Bilder korrekt zu drehen und das Aufnahmedatum um dieses in den Dateinamen einzutragen. Dem Script wird dann noch übergeben, ob man die Originaldateien behalten möchte und welche Veranstaltung auf den Fotos ist.

Um das Script zu verwenden müssen die Programme exif und exiftran installiert sein und das Script im Ordner der Fotos liegen.

Achtung: Das Script dreht die Originalbilder immer, auch wenn ihr “keep” als Parameter verwendet habt.

#!/bin/bash
# Script fuer das automatische Drehen von Fotos sowie
# Hinzufuegen von Event und Datum
# Das Script muss im Ordner der Fotos liegen
# Benötigte Programme: exif, exiftran
# geschrieben von Kai Fitzer am 08.Juni 2011
 
# Paramater:
# 1 - Originale behalten ja/nein
# 2 - Event
# 3 - Dateiendung
 
# Dateiname: FotoNr_Event_Datum.Dateiendung
 
if [ -z "$1" ]
  then 
    echo "Usage: ./picture.sh {keep|delete} eventname fileextension"
    echo "Please choose if you want to delete or keep original files as first parameter"
  exit 1
else
  if [ "$1" = "keep" ]
    then CMD="cp"
  elif [ "$1" = "delete" ]
    then CMD="mv"
  else
    if [ -z "$2" ]
      then 
        echo "Usage: ./picture.sh {keep|delete} eventname fileextension"
        echo "Please give me an event name as second parameter"
      exit 1
    else
      if [ -z "$3" ] 
        then 
          echo "Usage: ./picture.sh {keep|delete} eventname fileextension"
	  echo "Please give me a file extension as third parameter"
        exit 1
      fi
    fi
  fi
fi
 
ID=1
for i in *.$3 ; do
  if [ "$ID" -lt 10 ] 
    then LONGID="000"$ID 
  elif [ "$ID" -lt 100 ] 
    then LONGID="00"$ID 
  elif [ "$ID" -lt 1000 ] 
    then LONGID="0"$ID 
  fi ;
  exiftran -ia $i ;
  DATE=$(exif $i --ifd 0 --tag 0x0132 | grep Value | cut -c 10-19 | tr ':' - ) ; 
  $($CMD $i $LONGID"_"$2"_"$DATE"."$3) ; 
  ID=`expr $ID + 1`;  
done	
exit 0

Ein typischer Aufruf sieht so aus:

./picture.sh delete "Party_bei_XYZ" JPG

Dieser Befehl wird alle JPG (Groß- und Kleinschreibung beachten) Dateien anpassen, wobei die Originaldateien verändert werden und dann wie folgt heißen:

  • 0001_Party_bei_XYZ_2011-02-13.JPG
  • 0002_Party_bei_XYZ_2011-02-13.JPG
  • 0003_Party_bei_XYZ_2011-02-13.JPG
  • 0361_Party_bei_XYZ_2011-02-14.JPG

Comments 1 Kommentar »

Die Installation von Clipbucket ist eigentlich trivial, die Einrichtung ist allerdings mit einigen Hürden versehen. Daher werde ich hier die einzelnen Schritte bis zu einer funktionierenden Videoplattform erklären. Die Installation setzt voraus, dass PHP und MySQL bereits installiert und konfiguriert sind.

Herunterladen

Als erstes muss Clipbucket heruntergeladen werden. Die gepackte Version findet man unter dem Link http://sourceforge.net/projects/clipbucket/files/ClipBucket%20v2/

Datenbank und Datenbankbenutzer anlegen

Das Erstellen der Datenbank und des Datenbankbenutzers hängt von der installierten Software eures Webservers ab. Einfach geht dies mit PHPMyAdmin, was hier nicht genauer erklärt wird. Etwas schwieriger geht dies mit der Konsole von mysql.

mysql -u root -p

Dort dann:

create database streaming;
grant usage on streaming.* to clipbucket_user@localhost identified by 'PASSWORD';
grant all privileges on streaming.* to clipbucket_user@localhost;

 

Entpacken

Die heruntergeladene Datei entpackt man in einem beliebigen Verzeichnis, das nicht das Verzeichnis des Webservers ist. In dem entpackten Ordner befindet sich ein Ordner “upload”, der die eigentlichen Dokumente enthält. Dann öffnet man im Browser die Adresse http://yourwebsite.com/install und klickt dort auf “Fresh Installation”.

Befehle, die dazu auf der Konsole ausgeführt werden (bitte den Link an die aktuelle Version von Clipbucket anpassen):

wget http://sourceforge.net/projects/clipbucket/files/ClipBucket%20v2/\
clipbucket-2.4-RC2-645.zip
unzip clipbucket-2.4-RC2-645.zip
cp upload/* /var/www/streaming/ -r
chown www-data:www-data /var/www/streaming/ -R

 

Anmelden

Direkt nach der Installation anmelden und das Admin Passwort ändern. Alle weiteren Schritte benötigen noch Vorarbeit, da die benötigten Pakete und Programme installiert werden müssen.

Benötigte Programme installieren

Bei Debian lassen sich die meisten Programme direkt mit aptitude/apt-get installieren. Folgender Befehl macht das.

sudo aptitude install gpac flvtool2 libx264-dev libtheora-dev libfaac-dev\
 libmp3lame-dev libvorbis-dev libxvidcore-dev build-essential yasm checkinstall

Dabei fehlt noch das Programm ffmpeg, das in Debian nicht alle Funktionen bereitstellt und daher per Hand installiert werden muss.

FFMPEG kompilieren

Die folgenden Befehle werden dazu benötigt (bitte den Link an die aktuelle Version von FFMPEG anpassen):

cd /usr/local/src
wget http://ffmpeg.org/releases/ffmpeg-0.6.3.tar.gz
tar xzf ffmpeg-0.6.3.tar.gz
cd ffmpeg-0.6.3
./configure --enable-libx264 --enable-libxvid --enable-libfaac --enable-libvorbis\
 --enable-libmp3lame --enable-libtheora --enable-postproc --enable-pthreads\
 --enable-gpl --enable-nonfree
make
checkinstall --pkgname=ffmpeg --pkgversion "0.6.3" --backup=no --default

 

Uploading and Conversion Settings anpassen

Zur Seite http://yourwebsite.com/admin_area/main.php#current_2 gehen. (Admin-Panel -> Website Configurations -> Uploading and Conversion Settings)

  • /usr/bin/local/php auf /usr/bin/php ändern, sofern notwendig
  • /usr/bin/ffmpeg auf /usr/local/src/ffmpeg-0.6.3/ffmpeg
  • Haken bei “Server Friendly Conversion” setzen
  • Unten auf “Update Settings” klicken

Dann unter http://yourwebsite.com/admin_area/cb_mod_check.php prüfen, ob alles OK ist. Bei “MODULES VERSION” ist bei ffmpeg möglicherweise ein Ausrufezeichen, was man aber vernachlässigen kann, wenn bei “CHECKING FFMPEG CODECS” alles grün ist.

 

Cronjob einrichten

Die Default Cronjobs von Clipbucket sollen wie folgt aussehen (in /etc/crontab):

*/5 *     * * *     root    php -q /var/www/streaming/actions/video_convert.php
5 *     * * *     root    php -q /var/www/streaming/actions/verify_converted_videos.php
7 4,10,16,22     * * *     root    php -q /var/www/streaming/actions/update_cb_stats.php

Damit startet die Konvertierung in Flash Videos alle fünf Minuten, das Verifizieren der Videos stündlich und das Aktualisieren der Statistiken vier mal am Tag. Ich persönlich verwende diese Cronjobs nicht, da sie bei mir dazu geführt haben, dass immer wieder ein neuer Konvertierungsprozess gestartet wird und der Rechner immer langsamer wird, bis er nicht mehr reagiert. Ich habe mir dazu ein Script geschrieben, dass eine neue Konvertierung nur startet, wenn keine mehr läuft.

#!/bin/bash
TIME=$(date)
 
case "$1" in
convert)
  STATE=$( ps aux |grep ffmpeg |grep root -c )
  if [ "$STATE" -gt 1 ]
     then echo "$TIME: Prozess laeuft noch - gehe schlafen"
  else
     echo "$TIME: Kein Prozess gefunden - starte konvertieren"
     php -q /var/www/streaming/actions/verify_converted_videos.php
     php -q /var/www/streaming/actions/update_cb_stats.php
     php -q /var/www/streaming/actions/video_convert.php &
  fi
;;
 
*)
  echo "Usage: ./clipbucket_script.sh convert"
  exit 1
;;
esac
exit 0

Mein Cronjob sieht dann so aus:

*/5 *     * * *     root    /usr/local/sbin/clipbucket_script.sh convert

 

Optional – Ordner zur Speicherung der Videos ändern

Clipbucket speichert von Haus aus alle Videos im Ordner “files”, also direkt im Ordner der Website. Bei meiner Konfiguration wollte ich dies nicht und Clipbucket lässt es nicht zu, dass man den Ordner ändert. Also blieben die Möglichkeiten mount bind oder einen Link zu setzen. Die Variante mount bind funktioniert leider nicht, daher muss ein Link her. Dazu verschiebt man den Ordner “files” in das gewünschte Verzeichnis und setzt dann einen Link.

mv /var/www/streaming/files /neuer/pfad/
ln -s /neuer/pfad/files /var/www/streaming/files

Clipbucket verlangt dabei, dass das Verzeichnis “files” dem Benutzer www-data gehört und die Dateirechte auf 0777 gestellt sind. Über den Sinn oder Unsinn dieser Vorgaben werde ich mich an dieser Stelle nicht auslassen. Ihr könnt dies einfach mit den folgenden zwei Befehlen umsetzen.

chown www-data:www-data /var/www/streaming/files/ -R
chmod 777 /var/www/streaming/files/ -R

Comments 7 Kommentare »

Um auf einfache Weise mehrere kleine MP3 Dateien zu einer zusammenzufügen benötigt man unter Linux keine zusätzliche Software, sondern nur den Befehl cat.

Um alle MP3 Dateien in einem Ordner zusammenzufügen öffnet man ein Terminal und wechselt in den entsprechenden Ordner. Danach führt man den folgenden Befehl aus:

cat *.mp3 > zusammengefuegt.mp3

Wichtig ist, dass man bei der Bezeichnung der ursprünglichen Dateien aufpasst, da sonst durch die Sortierung Fehler in der zusammengeschnittenen Datei entstehen. Beispielsweise sollte vermieden werden, dass eine Datei file1.mp3 und eine andere file10.mp3 heißt. Besser wäre file01.mp3 und file10.mp3.

Hat man viele Ordner, in denen wiederrum viele MP3 Dateien sind, so lassen sich auch diese zusammenfassen.

for i in cd*; do cat $i/*mp3 > TitelXY_$i.mp3; done

Dieser Befehl liest alle Ordner, die mit cd anfangen und fügt die darin enthalten MP3 Dateien zu einer zusammen, die dann TitelXY_cdnummer.mp3 benannt wird. Somit erhält man für jede CD eine Datei.

Comments 5 Kommentare »

Wer seinen Rapidshare Account auch per console nutzen möchte muss im ersten Schritt einen Cookie mit den Logindaten erstellen. Dies erfolgt mit folgendem Befehl:

wget --save-cookies rs.cookie --post-data "login=BENUTZERNAME&password=PASSWORT"\
-O - https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi >/dev/null

Somit hat man nun eine Datei rs.cookie, die die Logindaten verschlüsselt enthält. Jetzt kann man sich eine Datei mit den Links erstellen und diese ausführen. Die Datei sollte diesen Inhalten haben:

#!/bin/bash
wget --load-cookies rs.cookie http://XY.rapidshare.com/files/XY.part1.rar &
wget --load-cookies rs.cookie http://XY.rapidshare.com/files/XY.part2.rar &
wget --load-cookies rs.cookie http://XY.rapidshare.com/files/XY.part3.rar &
wget --load-cookies rs.cookie http://XY.rapidshare.com/files/XY.part4.rar

Diese Datei jetzt ausführbar machen.

chmod 755 DATEI_MIT_LINKS.sh

Diese Datei ausführen und schon werden vier Dateien gleichzeitig heruntergeladen.

Comments 2 Kommentare »

Bei der Installation von Skype mit dem Befehl emerge skype trat in meinem Fall die Meldung

!!! The following installed packages are masked:
- net-im/skype-2.0.0.72 (masked by: skype-eula license(s))
A copy of the ‘skype-eula’ license is located at ‘/usr/portage/licenses/skype-
eula’.

auf. Die einfache Lösung in diesem Fall ist, das Paket zu demaskieren. Dazu muss man folgendes tun:

echo net-im/skype skype-eula >> /etc/portage/package.license

Ein erneuter Versuch Skype zu installieren kommt nun wesentlich weiter. Bei mir trat dann ein weiterer Fehler auf, dass im Ordner /usr/share/skype Dateien überschrieben werden müssen und die Installation nicht erfolgen kann. Hier hilft ein einfaches

rm -r /usr/share/skype

Jetzt noch einmal emerge skype und diesmal treten keine Fehler auf und Skype wird erfolgreich installiert.

Comments Keine Kommentare »

Flash ist bei 64bit Linux immer wieder ein Problem. Neuerdings gibt es von Adobe einen 64bit Flashplayer, der deutlich besser funktioniert als die 32bit Variante, die in den Paketquellen von Ubuntu zu finden ist. Die 32bit Variante wird auch unter 64bit Betriebssystemen installiert und dann emuliert. Dies kostet Leistung und einige Seiten funktionieren damit auch nicht. Wir werden also als erstes das Paket deinstallieren, dann die 64bit Version herunterladen und installieren. Wir gehen hierbei davon aus, dass ausschließlich das flashplugin-nonfree installiert war und nicht auch die freie Version von Ubuntu, die noch schlechter funktioniert.

sudo aptitude purge flashplugin-nonfree flashplugin-installer
wget http://fpdownload.macromedia.com/get/flashplayer/pdc/
11.1.102.55/install_flash_player_11_linux.x86_64.tar.gz
tar xf install_flash_player_11_linux.x86_64.tar.gz

Jetzt liegt in dem Verzeichnis eine Datei mit dem Namen libflashplayer.so. Diese müssen wir nur noch in das Plugin Verzeichnis von Firefox kopieren und schon sind wir fertig. Selbstverständlich geht dies auch mit anderen Browsern, beispielsweise Opera. Hierzu muss nur der Pfad angepasst werden.

sudo cp libflashplayer.so /usr/lib/firefox-addons/plugins/

Firefox neu starten und freuen.

Comments 8 Kommentare »

127423 Seiten angezeigt, 189 heute
50123 Besuche, 80 heute
FireStats icon Powered by FireStats