Eine Datenbank inklusive aller Rechte für einen neuen Benutzer zu erstellen ist auf der Kommandozeile relativ lang und entsprechend kann ich mir die Befehle nicht merken, deswegen in aller kürze die nötigen Schritte:
Archiv der Kategorie: Alltags Probleme
Markdown und Latex kombinieren
Latex ist kompliziert und wirft wilde Fehlermeldungen, die kein Mensch versteht und keiner verstehen will. Die erstellten Formeln sind allerdings unschlagbar schön und erstaunlicherweise relativ komfortabel und eingängig zu erstellen.
Markdown hingegen ist sehr simpel, aber es fehlt die Möglichkeit Formeln einzubinden.
Glücklicherweise kann man Markdown und Latex kombinieren und zwar mit: Pandoc.
Weiterlesen
MariaDB UTF8 sicher exportieren beziehungsweise importieren
Zeichensätze, schrecklich. Gerade wenn man backups machen will und diese einspielen möchte und alle Sonderzeichen sind nur noch Kraut und Rüben.
Unitymedia VPN ruft keine Seiten ab
Durch das DS-Lite von Unitymedia und das damit verbundenen fehlen einer IPv4-Adresse sorgt für einige Probleme beim aufbauen einer Verbindung mit verschiedenen VPNs, da diese meist kein IPv6 unterstützen.
Dateien mit GPG asymmetrisch verschlüsseln
Möchte man jemanden eine sensible Datei verschlüsselt zu senden und hat den öffentlichen GPG-Schlüssel, dann geht man folgendermaßen vor:
Ubuntu Paket downgraden
Ein Paket bringt man auf eine ältere Version in Ubuntu oder Debian auf folgende weise:
FAAC-1.28 kompilieren
Wenn man versucht FAAC zu kompilieren bekommt man folgenden Fehler:
In file included from mp4common.h:29,
from atom_avc1.cpp:22:
mpeg4ip.h:126: error: new declaration ‚char* strcasestr(const char*, const char*)‘
/usr/include/string.h:367: error: ambiguates old declaration ‚const char* strcasestr(const char*, const char*)‘
In file included from mp4common.h:29,
from 3gp.cpp:28:
mpeg4ip.h:126: error: new declaration ‚char* strcasestr(const char*, const char*)‘
/usr/include/string.h:367: error: ambiguates old declaration ‚const char* strcasestr(const char*, const char*)‘
In file included from mp4common.h:29,
from atom_amr.cpp:28:
mpeg4ip.h:126: error: new declaration ‚char* strcasestr(const char*, const char*)‘
/usr/include/string.h:367: error: ambiguates old declaration ‚const char* strcasestr(const char*, const char*)‘
atom_avc1.cpp: In constructor ‚MP4Avc1Atom::MP4Avc1Atom()‘:
atom_avc1.cpp:27: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:30: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:32: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:35: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:37: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:39: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:42: warning: deprecated conversion from string constant to ‚char*‘
atom_avc1.cpp:47: warning: deprecated conversion from string constant to ‚char*‘
make[3]: *** [atom_avc1.o] Error 1
make[3]: *** Waiting for unfinished jobs….
make[3]: *** [3gp.o] Error 1
atom_amr.cpp: In constructor ‚MP4AmrAtom::MP4AmrAtom(const char*)‘:
atom_amr.cpp:33: warning: deprecated conversion from string constant to ‚char*‘
atom_amr.cpp:36: warning: deprecated conversion from string constant to ‚char*‘
atom_amr.cpp:38: warning: deprecated conversion from string constant to ‚char*‘
atom_amr.cpp:41: warning: deprecated conversion from string constant to ‚char*‘
atom_amr.cpp:43: warning: deprecated conversion from string constant to ‚char*‘
make[3]: *** [atom_amr.o] Error 1
make[3]: Leaving directory `/root/software/encoding/faac-1.28/common/mp4v2′
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/software/encoding/faac-1.28/common‘
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/software/encoding/faac-1.28′
make: *** [all] Error 2
Es geht also schlicht nicht, weil es eine Inkompatibilität zwischen Code und Compiler gibt.
Jetzt die gute Nachricht! Es gibt einen Patch.
Diesen findet man hier:
http://www.linuxfromscratch.org/blfs/view/svn/multimedia/faac.html
oder als direkt Link:
http://www.linuxfromscratch.org/patches/blfs/svn/faac-1.28-glibc_fixes-1.patch
Ausführen kann man den Patch folgendermaßen (Im Verzeichnis von faac ausführen):
patch -Np1 -i faac-1.28-glibc_fixes-1.patch
Beim kompilieren werden zwar trotzdem eine Menge Warnings rausgehauen, trotzdem läuft der Codec danach einwandfrei und kann produktiv eingesetzt werden.
Google Chrome aus der sources.list entfernen
Nach der Installation von Google Chrome schreibt sich google in die sources.list ein. Um Google wieder aus der sources.list zu entfernen müssen im Verzeichnis „/etc/apt/sources.list.d“ die Dateien google-chrome.list und google-chrome.list.save gelöscht werden.
Hier die zwei Zeilen die dazu nötig sind:
cd /etc/apt/sources.list.d/
rm google*
Dann einmal apt-get update ausführen und die sources.list ist wieder Google frei 🙂
Mp4 Streaming für jwplayer, flashplayer ermöglichen
Viele Encoder schreiben die MP4-Dateien unsauber und setzen den Index an das Ende der Datei und nicht an den Anfang, daher muss der Flashplayer zunächst die gesamte Datei laden um das Video streamen zu können.
Um diesen Fehler zu reparieren benötigt man das Tool qt-faststart.
Das Tool bekommt man hier:
Klick mich
Einfach via: easy_install qtfaststart
installieren.
Wenn das Tool installiert ist, dann müsst ihr qtfaststart nutzen und nicht qt-faststart. Letzteres Tool ist für MOV-Dateien gedacht.
Die Syntax ist selbsterklärend:
Usage: qtfaststart [options] infile [outfile]
Vielen dank an:
http://videoencoding.websmith.de/encoding-praxis/linux-qtfaststart-metadaten.html
und natürlich an
https://github.com/danielgtaylor/qtfaststart
Copy and Paste Protection von O’reilly eBooks brechen!
Im Adobe Reader können Texte aus eBooks nicht kopiert werden. Um diesen Schutz zu umgehen ist ein hoch komplizierter Prozess von Nöten!
Das PDF muss mit dem vorinstallierten „evince“ PDF-Reader geöffnet werden! 😉
Kein Scherz! Ich habe selber dumm geguckt, als ich das herausgefunden habe 😀