• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] KDE4 startet nicht

WhopperBS

Member
Hallo zusammen,

nachdem ich in der Vergangenheit schon einige Male versucht habe meinen altbewährten KDE3-Desktop durch seinen Nachfolger zu ersetzen, jedes Mal aber von der Masse an Fehlern und Inkonsistenzen derart erschrocken war, dass ich es sofort wieder runtergeschmissen habe, wollte ich heute einen neuen Versuch starten.

Dazu habe ich mich dieses Repositoriums bedient: 'download.opensuse.org/repositories/KDE:/43/openSUSE_11.1/'.

Mit Yast/Schemata habe ich dann die nötigsten Basispakete und Anwendungen ausgewählt, welche nachfolgend auch anstandslos installiert wurden. Wenn ich nun aber versuche, mich bei KDE4 anzumelden, erhalte ich lediglich ein Fenster mit folgender Meldung:
Call to lnusertemp failed (temporary directories full?) Check your installation.
Ob ich mich dabei als root oder normaler Nutzer anmelde spielt keine Rolle. KDE3 funktioniert allerdings nach wie vor grandios. Mein tmp-Verzeichnis sowie meine gesamte Festplatte sind definitiv NICHT full. Es sind noch etliche Gigabyte frei.

Was ich bisher versucht habe ist, unter '/etc/sysconfig/displaymanager' verschiedene Einstellungen durchzuprobieren (kdm, kdm3, kdm4). Dies jedoch ohne Erfolg.

Mein aktuelles Suse-System (11.1) war zuvor auch vollkommen KDE4-frei. Irgendwelche Altlasten dürften folglich auszuschließen sein. Diese lnusertemp-Datei ist nun zweimal vorhanden. Einmal in '/opt/kde3/bin/' und in '/usr/lib64/kde4/libexec/'.

Hat jemand evtl. ne Idee was mir da die Laune verdirbt? Oder ist KDE4 etwa immer noch nicht dem pre-alpha-Stadium entwachsen? ^^

Grüße
Whopper
 
OP
W

WhopperBS

Member
Soo,

mittlerweile weiß ich wenigstens, dass die Fehlermeldung aus dem '/usr/bin/startkde'-Skript kommt. Der fragliche Abschnitt sieht so aus:
Code:
lnusertemp=`kde4-config --path exe --locate lnusertemp`
if test -z "$lnusertemp"; then
  # Startup error
  echo 'startkde: ERROR: Could not locate lnusertemp in '`kde4-config --path exe` 1>&2
fi
# Link "tmp" "socket" and "cache" resources to directory in /tmp
# Creates:
# - a directory /tmp/kde-$USER and links $KDEHOME/tmp-$HOSTNAME to it.
# - a directory /tmp/ksocket-$USER and links $KDEHOME/socket-$HOSTNAME to it.
# - a directory /var/tmp/kdecache-$USER and links $KDEHOME/cache-$HOSTNAME to it.
# Note: temporary locations can be overriden through the KDETMP and KDEVARTMP
# environment variables
for resource in tmp cache socket; do
    if "$lnusertemp" $resource >/dev/null; then
        : # ok
    else
        echo 'startkde: Call to lnusertemp failed (temporary directories full?). Check your installation.'  1>&2
        test -n "$ksplash_pid" && kill "$ksplash_pid" 2>/dev/null
        xmessage -geometry 600x100 "Call to lnusertemp failed (temporary directories full?). Check your installation."
        exit 1
    fi
done

Vielleicht kann das ja mal jemand mit seinem funktionierenden startkde-Skript vergleichen, insbesondere die letzte if-Anweisung. Evtl. hat sich ja da bei den Paktbauern ein kleiner Tippfehler eingeschlichen. Das Skript für KDE3 sieht generell etwas anders aus, so dass ich es damit leider nicht vergleichen kann.
 

Spielwurm

Advanced Hacker
Meine Datei in dem Abschnitt sieht genauso aus, wie Deine. Es sieht eher so aus, als würde eine Variable nicht belegt sein. Zuerst würde ich mal testen, welche Zeile Deine Fehlermeldung ausgibt. Dazu kannst Du z.B. die zweite Fehlermeldung um irgendwas ändern/ergänzen, wodurch Du rausbekommst, wo der Fehler kommt.

Hartmut
 
OP
W

WhopperBS

Member
Ok, das Skript habe ich entsprechend modifiziert. Was ausgegeben wird, ist die zweite Meldung, also die hinter 'xmessage -geometry ...'.

Ach ja, auch wenn es sich aus dem o. g. erschließt, hatte ich es dennoch nicht explizit erwähnt. Bei dem Problemkind handelt es sich um KDE 4.3.2 (64 bit).

Evtl. noch bemerkenswert ist, dass ich ohne weiteres KDE4-Anwendungen aus KDE3 heraus starten kann (KWrite z. B.).


Whopper
 
Benutzt Du DHCP? Dann evtl. mal überzählige Link-Verzeichnisse aus Deinem ~/.kde Verzeichnis löschen.
Hier findest Du auch ein paar mögliche Lösungen die funktionieren könnten.
 
OP
W

WhopperBS

Member
Nun ja, ich habe jetzt den '.kde4'-Ordner in Nutzer- und root-Verzeichnis umbenannt - ohne Erfolg. In dem o. g. Link geht es ja hauptsächlich um Probleme mit Rechten. Bei mir schließe ich das aber im Grunde aus, da ich das Problem ja auch als root habe.
 
OP
W

WhopperBS

Member
'dhclient' läuft, ja. Und wie bitte definierst du denn "überzählige" Linkverzeichnisse? Ich habe nun alle Verzeichnisse, die irgendwie *dhcp* heißen, in .kde umbenannt (mit sofortigem löschen habe ich in der Vergangenheit schlechte Erfahrungen gemacht). Das ändert an der Situation aber leider nicht das Geringste. In root/.kde finde ich derartiges überhaupt nicht vor.

Wobei es mit auch etwas schleierhaft ist, was das mit KDE3 zu tun haben könnte. Denn das funktioniert ja an sich tadellos.

Ansonsten habe ich noch alle kdebase4- und libqt4-Pakete mit Yast aktualisiert. Ähnliches hat früher auch schon das ein oder andere Mal geholfen. In diesem Fall aber leider nicht.
 
WhopperBS schrieb:
'dhclient' läuft, ja. Und wie bitte definierst du denn "überzählige" Linkverzeichnisse?
Code:
# Link "tmp" "socket" and "cache" resources to directory in /tmp
# Creates:
# - a directory /tmp/kde-$USER and links $KDEHOME/tmp-$HOSTNAME to it.
# - a directory /tmp/ksocket-$USER and links $KDEHOME/socket-$HOSTNAME to it.
# - a directory /var/tmp/kdecache-$USER and links $KDEHOME/cache-$HOSTNAME to it.
# Note: temporary locations can be overriden through the KDETMP and KDEVARTMP
# environment variables
Wie viele von diesen Verzeichnissen brauchst Du denn maximal? Wie viele verschiedene kannst Du Du denn maximal haben?
WhopperBS schrieb:
Wobei es mit auch etwas schleierhaft ist, was das mit KDE3 zu tun haben könnte.
Wenn lnusertemp obige Links anlegt es nur auf ein in /tmp bzw in /var/temp erstelltes Verzeichnis verlinkt, die Verzeichnisse aber nicht anlegen kann wenn die Ressource schon belegt ist.
Was dann wohl auch erklärt weshalb die Lösung mit den Rechtevergaben funktioniert hat im von mir geposteten Link und eine Löschung von Verzeichnissen ebenfalls eine mögliche Lösung ist.

Nachtrag: Könnte sein, dass Löschen in den Temp-Verzeichnissen trotzdem noch erforderlich ist.
 
OP
W

WhopperBS

Member
Hm, also ich persönlich brauche von denen gar keines ^^ Aber ich habe leider überhaupt keinen Schimmer, was das System davon zwingend benötigt. Ich bin mir auch nicht sicher, ob ich da jetzt noch richtig folgen kann.

Damit wir alle auf dem gleichen Stand sind, gebe ich hier mal mein nutzer/.kde-Verzeichnis an:
Code:
nutzer@linux:~/.kde> ls -l
insgesamt 20
drwxr-xr-x 2 nutzer  users 4096 21. Feb 2009  Autostart
lrwxrwxrwx 1 root root    21 30. Mai 11:57 cache-dhcppc1 -> /var/tmp/kdecache-nutzer
lrwxrwxrwx 1 root root    21 30. Mai 11:57 cache-linux -> /var/tmp/kdecache-nutzer
lrwxrwxrwx 1 root root    21 30. Mai 11:57 cache-linux-e25v -> /var/tmp/kdecache-nutzer
lrwxrwxrwx 1 root root    21 30. Mai 11:57 cache-noname -> /var/tmp/kdecache-nutzer
lrwxrwxrwx 1 root root    21 30. Mai 11:57 cache-Vigor10 -> /var/tmp/kdecache-nutzer
lrwxrwxrwx 1 root root    21 30. Mai 11:57 cache-w0449 -> /var/tmp/kdecache-nutzer
lrwxrwxrwx 1 root root    21 30. Mai 11:57 cache-w0546 -> /var/tmp/kdecache-nutzer
drwxr-xr-x 2 nutzer  users 4096 24. Sep 2007  env
drwxr-xr-x 9 nutzer  users 4096  8. Aug 2005  share
lrwxrwxrwx 1 root root    16 30. Mai 11:57 socket-dhcppc0 -> /tmp/ksocket-nutzer
lrwxrwxrwx 1 root root    16 30. Mai 11:57 socket-dhcppc1 -> /tmp/ksocket-nutzer
lrwxrwxrwx 1 root root    16 30. Mai 11:57 socket-ip-045-014 -> /tmp/ksocket-nutzer
drwxr-xr-x 3 nutzer  users 4096  1. Nov 22:59 socket-linux
lrwxrwxrwx 1 root root    16 30. Mai 11:57 socket-linux-e25v -> /tmp/ksocket-nutzer
lrwxrwxrwx 1 root root    16 30. Mai 11:57 socket-noname -> /tmp/ksocket-nutzer
lrwxrwxrwx 1 root root    12 30. Mai 11:57 tmp-dhcppc0 -> /tmp/kde-nutzer
lrwxrwxrwx 1 root root    12 30. Mai 11:57 tmp-dhcppc1 -> /tmp/kde-nutzer
lrwxrwxrwx 1 root root    12 30. Mai 11:57 tmp-ip-045-014 -> /tmp/kde-nutzer
drwxr-xr-x 2 nutzer  users 4096  1. Nov 22:58 tmp-linux
lrwxrwxrwx 1 root root    12 30. Mai 11:57 tmp-linux-e25v -> /tmp/kde-nutzer
lrwxrwxrwx 1 root root    12 30. Mai 11:57 tmp-noname -> /tmp/kde-nutzer
nutzer@linux:~/.kde>
Es sind in der Tat recht viele Links auf ein und dasselbse Verzeichnis. Aber ansonsten sind ja eigentlich mehr als genügend Rechte vorhanden. Noch mehr vergeben kann ich ja gar nicht...
 
Keine Ahnung was Du davon brauchst oder nicht. Allerdings bringt eine Rechteänderung der Links in .kde herzlich wenig. Wenn schon dann müsste die Rechteänderung in den Temp-Verzeichnissen erfolgen.
Schließlich gehts ja darum von KDE3 und KDE4 aus auf die gleiche Ressource Zugriff zu bekommen.
 
OP
W

WhopperBS

Member
Na schön, mein Fehler. Ich hätte ruhig dazu schreiben können, dass ich auch für die verlinkten Verzeichnisse universelle Rechte vergeben habe, sprich 'chmod 777 ...'. Aber selbst wenn es daran gelegen hätte, mir als root mit quasi gottgleicher Verfügungsgewalt sollte all das bei der Anmeldung doch keine Steine in den Weg legen können, was es aber leider doch tut.
In meinem .kde4-Verzeichnis sieht es übrigens viel zivilisierter aus. Dort gibt es für jedes Verzeichnis exakt einen symbolischen Link:
Code:
nutzer@linux:~/.kde4> ls -l
insgesamt 4
lrwxrwxrwx 1 nutzer users   21 31. Okt 12:39 cache-linux -> /var/tmp/kdecache-nutzer
drwx------ 4 nutzer users 4096 31. Okt 12:45 share
lrwxrwxrwx 1 nutzer users   16 31. Okt 12:45 socket-linux -> /tmp/ksocket-nutzer
lrwxrwxrwx 1 nutzer users   12 31. Okt 12:45 tmp-linux -> /tmp/kde-nutzer
nutzer@linux:~/.kde4>
Demnach würde ich mit KDE4 sogar eher weniger Probleme erwarten als mit KDE3.
 

Philo

Newbie
Ich hatte im Mai auch das gleiche Problem http://my.opera.com/Philo007/blog/kde-desaster

Bei mir lag es daran, dass lnusertemp nicht dort lag wo kde4-config suchte...
Strace hilft einem dabei das herauszufinden :)

In dem Fall Datei linken oder kopieren...
 
OP
W

WhopperBS

Member
Super, genau das war offenbar der Fehler! Danke schön!

Hast du auch eine 64-Bit-Version? 'lnusertemp' ist nämlich bei mir in /usr/lib64/... installiert. kde4-config schaut laut strace (tolles Werkzeug! Muss ich mir merken) aber nur in /usr/lib/... und einigen anderen Standardverzeichnissen nach.

Jetzt läuft es jedenfalls soweit. Hoffentlich stecken in den Paketen nicht noch mehr dieser Überraschungen.

Weiß zufällig jemand, wo ich am besten diesen Bug melde? Das liegt ja wohl eher an den rpm-Paketen als an KDE selbst, oder?

Nochmal Danke an alle und Grüße!
Whopper
 
Oben