Samstag, 2. Januar 2010

KDE Bug

in einer root-Shell eingeben: kwrite
kdeinit4: preparing to launch /usr/lib/libkdeinit4_klauncher.so
kdeinit4: Communication error with launcher. Exiting!
KCrash: Application 'kwrite' crashing...
sock_file=/root/.kde4/socket-linux-bolide/kdeinit4__0
Warning: connect() failed: : Verbindungsaufbau abgelehnt
KCrash cannot reach kdeinit, launching directly.

PHP 5.3

Ich habe die Schnauze voll von all dieses "deprecated"-Meldungen.
Wenn es nur eines Eintrags in php.ini bedürfe (error_reporting = E_ALL & ~E_DEPRECATED), dann wäre das ja schnell erledigt.
Aber viele PHP-Programme schreiben explizit error_reporting(E_ALL) oder sowas. Und ich habe keine Lust, ständig in diesen Programmen rumzufuhrwerken.
Noch komplizierter wird es, die ganzen ereg() Aufrufe zu korrigieren. Das sollen die Autoren mal hübsch selber machen ;-)

Ich werde jetzt versuchen, eine ältere PHP-Version zu installieren. Hoffentlich geht das schnell (schwitz)

Also von der SuSE-Installationsquelle für 11.1 PHP RPM runterladen.
Oh Mist - dazu gehören ja jede Menge weitere Pakete (php5-mysql usw.).
Muss in YaST schauen, welche installiert sind. Zum Glück kann man die Liste als XML exportieren.. Pustekuchen - es wird die ganze Liste exportiert (nicht nur die der installierten Pakete)
Bestimmt gibt es irgendeine Option für RPM, aber ich habe keine Zeit, mir das rauszufriemeln.
Sowas wie
  rpm --query --list --all | grep php5
taugt jedenfalls dafür nicht.
Also alle einzeln :-\

Geht natürlich auch nicht :-(
Ständig kommen Meldungen über fehlerhafte Abhängigkeiten. Das kriege ich nie auseinander.
Naja, wenigstens hat's mir nix zerschossen.

Hier steht, wie man RPM zwingen kann. Ist mir aber zu gefährlich. Zumal der das mit einer anderen Distro gemacht hat.
Oder versuche ich dies?
Dazu muss ich als Repositorydie 11.1 anfügen, und unter "Versionen" die alte auswählen. Ob das geht?
Nein - dann zeigt mir YaST an, dass es alles downgraden will (bis hin zum kernel). Das lass ich auch lieber ;-}

Vermutlich muss ich mit PHP 5.3 leben, und doch in den PHP-Programmen rumwurschteln, solange die nicht von den Autoren angepasst sind :-(

Freitag, 1. Januar 2010

Krfb

Dieses VNC-Server GUI "Krfb" ist ja nur buggy :-(

Besonders seit dem Update auf KDE 4 kennt das Teil weder Shift-Taste noch AltGr-Kombinationen usw.
Ein Arbeiten in der Konsole oder auch nur eine URL mit "/" einzugeben war nur übers Clipboard möglich. Ups - auch das Clipboard funktioniert ja nicht!
Ich musste tatsächlich mit einer Textdatei in zwei Editoren schaffen.


Dann wurden auch noch oft ganze Bildschirmbereiche nicht neu übertragen. What a mess.

Glücklicherweise habe ich diese Seite gefunden und verwende nun vncserver statt Krfb.

Clipboard, Shift-Tasten - alles wieder ok. Und viel schnellere Bildschirmübertragung.

Krfb ist für die Tonne.

mySQL socket

Ich will ein weiteres Programm installieren, welches (auf Perl-Basis) auf eine mySQL Datenbank zugreifen will.

Bei ./configure kommt
DBI connect('database=xx;host=localhost','xx',...) failed: Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2) at /usr/lib/perl5/site_perl/5.10.0/xxx/Config.pm line 89

Wieder dieses Socket-Problem; wieder steht irgendwo /var/run statt /var/lib
Anmerkung: ich hatte mir /var/lib nicht ausgedacht!

Jetzt wo finde ich die Stelle? Mal "perl dbi mysql configure" suchen..
Hier lese ich, dass man den Pfad mit angeben kann, aber das kann's ja nicht sein.
DBI->connect('dbi:mysql:database=testdb;mysql_socket=/pfad/zu/mysql.sock', 'username', 'password');

Ich vermute ja, dass die opensuse 11.2 Installation da Mist gebaut hat.
Ich sollte erwägen, einen symlink auf die echte Datei zu setzen, dann wäre ein für alle Mal Ruhe. Aber das gehört in die Kategorie "quick & dirty"-Gefrickel, die ein System eher komplizierter und schwerer wartbar macht.

Hiermit wird auch nur der korrekte Pfad angezeigt:
ps ax|grep mysqld
26978 ?        S      0:00 /bin/sh /usr/bin/mysqld_safe --mysqld=mysqld --user=mysql --pid-file=/var/run/mysql/mysqld.pid --socket=/var/lib/mysql/mysql.sock --datadir=/var/lib/mysql
27096 ?        Sl     0:28 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/lib/mysql/mysqld.log --pid-file=/var/run/mysql/mysqld.pid --socket=/var/lib/mysql/mysql.sock --port=3306

Ich sehe gerade: mit phpinfo() wird ausgegeben:
MYSQL_SOCKET     /var/run/mysql/mysql.sock
Hatte ich das nicht schonmal angeschaut? Egal, jetzt bin ich auf der Spur.


(So muss ich mich immer wieder beim Kampf mit Linux motivieren: "es ist doch spannend, die Rätsel zu lösen". Na ja.. ;-)

Also in die php.ini hatte ich es ja eben erst eingetragen.
Außerdem geht es dabei ja nur um PHP(?) und obiges Problem tritt mit Perl auf.
Logischer wäre allerdings, wenn sich PHP, Perl und alles andere die Informationen von mysql holen würden.

Jetzt habe ich doch die q&d "Lösung" gewählt, weil ich wirklich keinen Nerv mehr habe, jedem Mist hinterherzuforschen. Also symlink von /var/run/.. nach /var/lib/mysql/mysql.sock

Damit läuft wenigstens die Compilierung des Perl-Programms durch.

Der PHP-Teil des Programms (dessen Name ist unerheblich) gibt jetzt $variablen statt deren Inhalt aus.
Nach wiedermal viel Rumsucherei finde ich den Hinweis, doch mal in der php.ini nach der Option short_open_tag zu schauen. Und siehe da - das steht auf OFF. Keine Ahnung, ob das die Künschtler von PHP 5.3 stillschweigend eingeführt haben. Mich hat es jedenfalls viel Zeit gekostet.