Beiträge getaggt mit ubuntu
Übersetzungszwang
19. Mai
Heute in der man-Page von dpkg gefunden:
...
--force-Sachen, --no-force-Sachen, --refuse-Sachen
Erzwinge oder verweigere (no-force und refuse bedeuten das gleiche) bestimmte Sachen. Sachen ist eine Komma-separierte Liste von Dingen, die im folgenden beschrieben sind. --force-help zeigt eine Nachricht an, die diese beschreibt. Mit (*) markierte Dinge werden standardmäßig erzwungen.
...
Darüber kann ich mir –force-architecture nun sicher merken.
LDAP cn=config konvertieren
02. Mai
Im Ubuntu Server Guide bin ich auf eine Stelle gestoßen, die ich persönlich für recht umständlich halte.
Es muss nämlich, um für die neue Config-DB cn=config einträge zu erstellen, eine LDIF erstellt werden, die das für Aufzählungen zuständige Overlay geeignet ist. Ich möchte zum Beispiel neue Schemata hinzufügen. Im Server Guide wird das folgendermaßen gemacht (dies ist der offizielle Weg!):
- Auflistung im klassischen config-Format erstellen. Also einfach eine Datei erstellen (sch.ldif), die folgendes beinhaltet:
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema - Ausgabeverzeichnis erstellen (./out/) und datei konvertieren mit
slaptest -f sch.ldif -F ./out/ - Dann ausgabe-LDIF korrigieren, damit obige Bedingung zutrifft.
In Datei ./out/cn=config/cn=schema/cn={0}core.ldif wird aus dn: cn={0}core dann dn: cn=core und aus
cn: {0}core wird cn: core. - Das wird dann in den DIT mit folgendem Kommando eingefügt:
ldapadd -x -D cn=admin,cn=config -W -f ./out/ldif_output/cn\=config/cn\=schema/cn\=\{0\}core.ldif
Nun möchte ich den Schritt des bearbeitens der LDIF-Datei aber automatisch abhandeln. Dazu hab ich mir folgendes Script geschrieben:
#!/bin/bash
[ $# -ne 2 ] && echo "Syntax: $0
sed -e 's/^dn: \(\w\{2,3\}\)={\w*}\(.*\)/dn: \1=\2/' -e 's/^cn: {[0-9]\+}\(.*\)/cn: \1/' \
-e '/^structuralObjectClass:/d' \
-e '/^entryUUID:/d' \
-e '/^creatorsName:/d' \
-e '/^createTimestamp:/d' \
-e '/^entryCSN:/d' \
-e '/^modifiersName:/d' \
-e '/^modifyTimestamp:/d' \
$1 > $2
Das macht genau den selben Kram.
Mounten ist langweilig
15. Apr
Ich beschäftige mich gerade mit KVM (Der Virtualisierungstechnik) und bin dabei auf einen dirty-hack in der Ubuntu-Wiki gestossen:
sed -e 's/GFXBOOT bootlogo/#FXBOOT bootlogo/g' < ubuntu-7.10-server-amd64.iso > ubuntu-7.10-server-amd64-nogfxboot.iso
Was macht das? Es deaktiviert im ISO-Image GFXBOOT, welches das schöne Bootmenü der Installations-CDs darstellt. Für Grub wird die Zeile dazu auskommentiert. Da sich die Byte-Länge des ISOs nicht verändert darf, da es sonst kaputt geht, wird einfach das G von GFXBOOT durch das Kommentierungszeichen # ersetzt.
Ich erinnere mich an schöne Zeiten mit dem Ressource-Hacker unter Windows …
Grails webseite rendert sehr langsam
02. Feb
Mal wieder ein Bug, diesmal betrifft es Webseiten, die entweder sehr lang sind oder irgendein anderes, noch nicht näher spezifiziertes Merkmal aufweisen. Das Symptom: Die Seite Scrollt zwar normal, aber es sind fast keine anderen Aktionen, die große Teile des Bildes verändern flüssig möglich. Flüssig bedeutet in diesem Fall eine Wartezeit von unter 10 Sekunden für das Minimieren/Maximieren eines Fensters.
Mehr >
WiiRemoteJ 1.5 mit Bluecove >= 2.1
18. Jan
Es ist wiedermal geschafft! Nach schier endloser Herumprobiererei ist es mir nun endlich gelungen, die Wiimote mit meiner Software zu verwenden.
Mehr >
Java ME: Emulator unter 64 Bit Ubuntu
06. Jan
Java ME, genauer gesagt der WTK-Emulator hat schon seit über einem Jahr ein Problem: Er läuft in einer 64 Bit Java VM nicht. Der einzige Workaround besteht darin die 32 Bit JVM zu verwenden. Das tut jedoch weniger weh, als von mir anfangs angenommen.
MICO CORBA unter Ubuntu 64 Bit
04. Jan
An alle Freunde, die CORBA unter Ubuntu 8.10 (Intrepid) 64 Bit einsetzen wollen: Dort ist g++ in Version 4.3.2 vorhanden, weswegen das Kompilieren folgendermaßen gegen den Schrank läuft:
error: 'UINT_MAX' was not declared in this scope
make[1]: *** [fast_array.pic.o] Error 1
Mehr >
VPN an der FH-Köln – Untained!
08. Nov
Update 2: In den Kommentaren ist ein Link zu krischer.org, welcher das VPN-Script wesentlich verbessert hat. Wenn ich es getestet habe, werde ich meins auch aktualisieren.
Update: Die Anführungszeichen bei Application Version in der fhkoeln.conf dürfen da nicht stehen, ich habe das im Listing unten korrigiert.
Erfolg! Endlich habe ich es geschafft mit minimal-invasiven Mitteln ins WLAN der FH-Köln am Campus Gummersbach zu kommen, ohne von Hand Scripte starten zu müssen. Das Zauberwort hieß NetworkManager Dispatcher Skripte und Application Version.
Direkt ans eingemachte:
1. vpnc installieren
2. Einstellungen vom ZVD-Account herunterladen
3. Die Cisco-Konfigurationsdatei in eine openvpn-Config konvertieren. Da gibt es Tools für, aber man kann sie auch einfach selber schreiben, ich habe sie unter /etc/vpnc/fhkoeln.conf abgelegt:
IPSec gateway vpn.fh-koeln.de
IPSec ID FHK-VPN
IPSec secret KoelnerDom
Xauth username sbullock
Xauth password bradP1tt$
Application Version Cisco Systems VPN Client 4.8.0:Linux
Ein Trick, damit der Open Source Client vpnc überhaupt funktioniert, ist die letzte Zeile. Dort wird der Identifier, mit dem sich der Client beim VPN-Server anmeldet, angegeben. Den Usernamen und das Passwort unter Xauth muss durch das Eigene ersetzt werden. Das IPSec secret oder auch Gruppenpasswort genannt ist hier un-obfuskiert angegeben. Auch das eigene Passwort muss hier im Klartext stehen, sonst fragt vpnc das Dispatcher-Skript danach. Auf Dateirechte achten, ein chmod 600 /etc/vpnc/fhkoeln.conf ist Pflicht.
Wenn bis hierher alles geklappt hat, sollte uns ein sudo vpnc-connect fhkoeln ins VPN befördern. Der Parameter fhkoeln bezieht sich auf die Konfigurationsdatei unterhalb von /etc/vpnc/. In meinem Beispiel heißt sie fhkoeln.conf, wenn sie default.conf heißt, kann der Parameter sogar komplett weggelassen werden. Eventuell ist hier ein symlink angebracht: ln -s /etc/vpnc/fhkoeln.conf /etc/vpnc/default.conf. Dann genügt ein vpnc-connect um ins VPN zu kommen.
Nun zum Dispatcher-Skript. Es muss unter /etc/NetworkManager/dispatcher.d/ liegen. Ich habe es 02fhkoeln-vpnc genannt. Alle Skripte in dem Ordner werden, sofern sie executable sind, bei jeder Änderung des Netzwerks durchgeführt. Den Skripten werden dabei zwei Parameter übergeben: $1 ist das Interface, bei dem sich was getan hat und $2 ist die durchgeführte Aktion.
Das machen wir uns zunutze, um unsere eigene vpnc-Konfiguration mit vpnc zu verwenden, wenn wir uns mit dem FH-Netz verbinden.
#!/bin/bash
## INITIALISIERUNG
#Diese Werte werden vom NetworkManager an das Skript übergeben
INTERFACE=$1
ACTION=$2
## ESSID des Universitäts-Netzwerkes
ESSID_VPN="PUBLIC-CIT.FH-Koeln.DE"
## ESSID des verbundenen Netzwerks bestimmen
ESSID=$(iwconfig $INTERFACE | grep ESSID | cut -d":" -f2 | sed -e 's/"//g')
## Funktionen durchführen, je nach Aktion eine andere
case "$2" in
up)
if [ "$ESSID" = "$ESSID_VPN" ]; then
sleep 15
vpnc /etc/vpnc/fhkoeln.conf
fi
;;
down)
if [ "$(pidof vpnc)" ]; then
vpnc-disconnect
fi
;;
pre-up)
if [ "$(pidof vpnc)" ]; then
vpnc-disconnect
killall vpnc
fi
;;
post-down)
if [ "$(pidof vpnc)" ]; then
vpnc-disconnect
killall -9 vpnc
fi
;;
*)
echo $"Usage: $0 {up|down|pre-up|post-down}"
exit 1
esac
Eine Anmerkung zum Titel: Ein Linux-System befindet sich im Status “tained” (verschmutzt), wenn sich ein nicht unter GPL-befindliches Kernelmodul geladen wurde. Dieses Flag dient dazu einem Support-Dienstleister wie SuSE mitzuteilen, dass unwartbarer Code im Spiel ist, der für Fehler verantwortlich sein könnte. Der Cisco-VPN-Client läd beispielsweise solch ein Modul.
Letzte Kommentare