Kurztipp: Mediawiki – Fatal exception of type MWException

Falls ihr Probleme mit dem Passwort-Reset eines Users in eurer Mediawiki Installation habt, prüft die Version eures LocalisationUpdate-Plugins. Es ist gut möglich, dass diese nicht mit der Version eures Mediawikis kompatibel ist. Um dies zu berichtigen, könnt ihr versuchen, das Updateskript des Plugins zu nutzen. Das muss über die Kommandozeile geschehen. Aus dem Wurzelverzeichnis eurer MW-Installation sähe das dann so aus:

php extensions/LocalisationUpdate/update.php

Danach könnt ihr es erneut versuchen und habt jetzt (hoffentlich) keine Fehler mehr.
Ansonsten solltet ihr mal versuchen, das Plugin in der LocalSettings.php auszukommentieren und danach prüfen, ob es dann funktioniert.

Bacula: libbaccats-5.2.13.so undefined symbol

Nachdem ich das Backuptool Bacula kompiliert hatte, meldete mir der Bacula Director beim Starten einen Fehler:

bacula-dir: symbol lookup error: libbaccats-5.2.13.so: undefined symbol: mysql_thread_safe

Wie sich nach längerer Internetrecherche rausstellte, ist das configure-Skript von Bacula offenbar ein bisschen verbuggt. Obwohl es keine Fehler meldet, kann es die benötigten MySQL-Libs nicht finden. Um das zu berichtigen, solltet ihr nach der Ausführung von configure auf eurem System nach der libmysqlclient_r suchen.

find / -name "libmyslqclient_r*"

Bei mir beinhaltete das Verzeichnis /usr/lib die benötigte Datei. Nun öffnet ihr die Datei src/cats/Makefile im Source Verzeichnis von Bacula und sucht nach dem Eintrag MYSQL_LIBS = und tragt dort den Pfad in Verbindung mit einem -lmysqlclient_r ein. Bei mir sah das so aus:

MYSQL_INCLUDE = -I/usr/include/mysql
MYSQL_LIBS = /usr/lib -lmysqlclient_r
MYSQL_SRCS = mysql.c

Nun könnt Bacula ihr wie gewohnt installieren

make && make install

Damit sollte die Fehlermeldung verschwunden sein.

Linux: SSH Agent Forwarding nach sudo

Kurztipp: Wenn ihr den durch SSH Agent Forwarding weitergebenen Private Key auch bei sudo-Befehlen nutzen wollt, müsst ihr die env-Variable SSH_AUTH_SOCK in der /etc/sudoers unter Defaults env_keep eintragen. Sähe dann beispielsweise so aus:

Defaults env_reset
Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE SSH_AUTH_SOCK"

Achtet natürlich auch darauf, dass euer SSH-Client auch ForwardAgent aktiviert hat. icon wink Linux: SSH Agent Forwarding nach sudo

Debian: Aus der Quelle kompilierte Programme löschen

Wenn man Programme aus der Quelle kompiliert, ist es oft schwierig, diese wieder zu deinstallieren. Wenn der Ersteller der Sources nicht ein make uninstall eingebaut hat, ist ein es mühevolles Durchklauben der einzelnen Verzeichnisse.
Die Lösung für dieses Problems hört auf den Namen checkinstall. Dieses kleine Helferlein erstellt aus den vorher vorbereiteten und kompilierten Dateien ein .deb-Paket (bzw. bei RedHat, Fedora, CentOS ein rpm) und installiert es dann. Dadurch kann man es einfach mit dpkg (bzw. rpm) wieder deinstallieren. Weiterer Vorteil: Man kann das erstellte Paket auch sichern oder mit anderen teilen.
Ein Kompilierungsvorgang mit checkinstall sieht dann so aus:

./configure #hier koennen natuerlich auch Optionen angegeben werden
make
sudo checkinstall --type=debian --install=yes

Nachdem checkinstall fertig ist, könnt ihr die Installation leicht prüfen. Für die Backupsoftware Amanda, über die ihr in Bälde hier vermutlich auch noch etwas lesen werdet, sähe das so aus:

root@foo:/usr/local/src/amanda-3.3.4# dpkg --get-selections |grep amanda
amanda                                          install
root@foo:/usr/local/src/amanda-3.3.4#

Die Deinstallation ginge dann dementsprechend mit dpkg -r oder -P. Checkinstall ist in den Debian Repositories in der neusten Version verfügbar, für CentOS muss es selbst kompiliert werden.