Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

openSuse 11: Yast nach Plesk 9.0.1 installation defekt

Alles rund um die Installation Eures Linuxsystems, sowie die Updatefunktionen des Systems und das Paketmanagement

Moderator: Moderatoren

Antworten
floezen
Newbie
Newbie
Beiträge: 33
Registriert: 24. Aug 2007, 17:28

openSuse 11: Yast nach Plesk 9.0.1 installation defekt

Beitrag von floezen »

Hallo,

ich habe mine Testserver mit openSuse 11.0 neu aufgesetzt. Nach der Installation von Plesk 9.0.1 funktioniert nun aber YAST nicht mehr.

Code: Alles auswählen

suse-server:~ # yast
//sbin/yast: line 27: //lib/YaST2/bin/yast2-funcs: No such file or directory
//sbin/yast: line 238: set_lang_from_sysconfig: command not found
//sbin/yast: line 267: check_ncurses: command not found
package yast2-qt is not installed
package yast2-gtk is not installed
Something is wrong with the YaST user interface.
Irgendwie scheint Plesk da was zu überschreiben. Hier -> http://serversupportforum.de/forum/dedi ... 1-0-a.html haben mehrere Leute das Problem. Die Lösung ist:

Code: Alles auswählen

PATH=/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin
Nur wo muß man das reinschreiben, damit das den nächsten Neustart überlebt?

Danke & Grüsse
Flözen
Werbung:
floezen
Newbie
Newbie
Beiträge: 33
Registriert: 24. Aug 2007, 17:28

Re: openSuse 11: Yast nach Plesk 9.0.1 installation defekt

Beitrag von floezen »

Kann mir mal jemand sagen, was

Code: Alles auswählen

less /sbin/yast
so ca. zwischen Zeile 18 und 24 ausgibt?

Bei mir steht da

Code: Alles auswählen

# allow for a different prefix
mydir=${0%/[YyZz]a[Ss][Tt]*}
if [[ -z "$mydir" || "$mydir" =~ ^/sbin/* ]]; then
    YAST_PREFIX=/usr
else
    YAST_PREFIX=${mydir%/sbin}
fi
Bei mir reicht es, diese Zeilen durch

Code: Alles auswählen

YAST_PREFIX=/usr
zu ersetzen. Dann funktioniert YAST wieder.

Allerdings fummel ich nicht so gerne in diesen Bereichen des Systems rum, daher wüsste ich gerne, ob diese Zeilen immer darin stehen oder ob sie durch Plesk hinzugefügt wurden.
Wenn diese Zeilen seit Suse 11 immer dort stehen würde ich sie gerne verstehen und wissen, was da genau das Problem bei mir auslöst.

Danke
Flözen
Benutzeravatar
DaBossDaChef
Advanced Hacker
Advanced Hacker
Beiträge: 911
Registriert: 14. Feb 2008, 15:25

Re: openSuse 11: Yast nach Plesk 9.0.1 installation defekt

Beitrag von DaBossDaChef »

Guten Morgen,

Code: Alles auswählen

# allow for a different prefix
mydir=${0%/[YyZz]a[Ss][Tt]*}
if [[ -z "$mydir" || "$mydir" =~ ^/sbin/* ]]; then
    YAST_PREFIX=/usr
else
    YAST_PREFIX=${mydir%/sbin}
fi
Cu
josef-wien
Ultimate Guru
Ultimate Guru
Beiträge: 5426
Registriert: 23. Sep 2008, 17:09

Re: openSuse 11: Yast nach Plesk 9.0.1 installation defekt

Beitrag von josef-wien »

Für die Details mußt Du die "manpage" von bash bemühen. Wenn sich das Skript im Verzeichnis "/sbin" befindet (welche Kombinationen mit "/sbin" sonst noch möglich sind, ist jenseits meiner Kenntnis über "reguläre Ausdrücke"), wird "/usr" verwendet. Ansonsten wird "Pfad plus Dateiname ohne abschließendem /yast* bzw. /zast* (das "a" muß ein Kleinbuchstabe sein)" verwendet.

Datei yast2 ist in /sbin ==> YAST_PREFIX = /usr
Verknüpfung yast2 ist in /home/ich/bin/ ==> YAST_PREFIX = /home/ich/bin
Verknüpfung YAST2 ist in /home/ich/bin/ ==> YAST_PREFIX = /home/ich/bin/YAST2

Ich habe den Verdacht, daß Du das Skript "/sbin/yast2" über eine Verknüpfung aufrufst, die nicht diesen Konventionen entspricht.
floezen
Newbie
Newbie
Beiträge: 33
Registriert: 24. Aug 2007, 17:28

Re: openSuse 11: Yast nach Plesk 9.0.1 installation defekt

Beitrag von floezen »

guter Tip... im Verzeichnis /sbin/ gibt es yast, yast2 zast und zast2, aalle mit yast2 verlinkt.

Wenn ich nur nur yast aufrufe gibts einen Fehler:

Code: Alles auswählen

suse-server:/sbin # yast
//sbin/yast: line 27: //lib/YaST2/bin/yast2-funcs: No such file or directory
//sbin/yast: line 238: set_lang_from_sysconfig: command not found
//sbin/yast: line 267: check_ncurses: command not found
package yast2-qt is not installed
package yast2-gtk is not installed
Something is wrong with the YaST user interface.
wenn ich aber /sbin/yast aufrufe klappts!

Wo kann ich diesen Fehler korrigieren???
josef-wien
Ultimate Guru
Ultimate Guru
Beiträge: 5426
Registriert: 23. Sep 2008, 17:09

Re: openSuse 11: Yast nach Plesk 9.0.1 installation defekt

Beitrag von josef-wien »

Mit which yast bekommst Du Pfad und Dateiname zurück. Mit set | grep ^PATH läßt Du Dir die Variable PATH anzeigen und kannst schauen, welche Verzeichnisse vor /sbin positioniert sind. Ich finde es seltsam, wenn eine Anwendung ihre eigenen Pfade vor die Standardpfade stellt. Noch seltsamer finde ich es, wenn diese Anwendung dort Verknüpfungen auf ohnehin im Pfad enthaltene Dateien erzeugt (und dann nicht einmal testet); solche Verknüpfungen solltest Du löschen.

Schau einmal in /etc/profile.local und /root/.bashrc nach, ob wenigstens die richtigen Dateien für systemweite bzw. benutzerspezifische Änderungen verwendet werden. Falls die Anwendung nicht eigene Versionen existierender Dateien verwendet (was ich dann am seltsamsten fände), würde ich die Anwendungspfade nach hinten stellen:

Code: Alles auswählen

PATH=$PATH:/pfad/eins:/pfad/zwei
export PATH
floezen
Newbie
Newbie
Beiträge: 33
Registriert: 24. Aug 2007, 17:28

Re: openSuse 11: Yast nach Plesk 9.0.1 installation defekt

Beitrag von floezen »

Danke für die promte Antwort.


Also irgendwie sieht das für mich ganz gut aus:

Code: Alles auswählen

suse-server:~ # which yast
/sbin/yast
suse-server:~ # set | grep ^PATH
PATH=//sbin://bin:/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/usr/lib64/jvm/jre/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin
/etc/profile.local gibt's bei mir nicht - nur /etc/profile. Und /root/.bashrc gibt's auch nicht. Sollte es die Dateien auf jeden Fall geben? Und was sollte darin stehen?

Grüsse
Flözen
josef-wien
Ultimate Guru
Ultimate Guru
Beiträge: 5426
Registriert: 23. Sep 2008, 17:09

Re: openSuse 11: Yast nach Plesk 9.0.1 installation defekt

Beitrag von josef-wien »

floezen hat geschrieben://sbin://bin:
2 Schrägstriche sind absolut nicht normal. Durch die reguläre Datei /etc/profile, die im Paket aaa_base enthalten ist, entsteht diese Angabe nicht. Laut /etc/profile beginnt der Pfad von root mit "/sbin:/usr/sbin:/usr/local/sbin:".

Diese zusätzliche Angabe mit den 2 Schrägstrichen führt letztlich zu den Fehlermeldungen:
floezen hat geschrieben://sbin/yast: line 27: //lib/YaST2/bin/yast2-funcs: No such file or directory
//sbin/yast: line 238: set_lang_from_sysconfig: command not found
//sbin/yast: line 267: check_ncurses: command not found
Entweder wurde /etc/profile verändert, oder diese zusätzliche Eintragung kommt von einer anderen Quelle (und die müßtest Du erst einmal suchen und finden). Wenn Du willst, kannst Du das Paket aaa_base in einem leeren Verzeichnis mit

Code: Alles auswählen

rpm2cpio aaa_base-11.0-79.1.x86_64.rpm | cpio -idv
entpacken und dann die beiden Dateien mit KDiff3 vergleichen. Wenn sie gleich sind, machst Du Dich auf die Suche. Oder aber Du beläßt es bei Deiner Änderung vom 25. April 2009, 01:03 Uhr, schaden kann sie nicht.

/etc/profile.local und /root/.bashrc gibt es standardmäßg nicht, die müssen angelegt werden, um z. B. Pfadänderungen regulär durchzuführen.
tege
Newbie
Newbie
Beiträge: 1
Registriert: 12. Jun 2009, 08:55

Re: openSuse 11: Yast nach Plesk 9.0.1 installation defekt

Beitrag von tege »

Hallo,

ich hatte das selbe Problem nach einer Plesk-Installation und hab mal ein wenig nachgeschaut woher die zwei slash kommen. Nach nem grep hab ich die Ursache gefunden: zwei Skripte in /etc/profile.d
courier-imap.csh:

Code: Alles auswählen

if ( $?MANPATH ) then
        true
else
        setenv MANPATH ""
endif

echo "$MANPATH" | tr ':' '\012' | fgrep -qx //man

if ( $? ) then
        true
else
        setenv MANPATH "//man:$MANPATH"
        setenv PATH "//bin:$PATH"
        test -w /etc
        if ( $? ) then
                true
        else
                setenv PATH "//sbin:$PATH"
        endif
endif
und courier-imap.sh

Code: Alles auswählen

if echo "$MANPATH" | tr ':' '\012' | fgrep -qx //man
then
        :
else
        MANPATH="//man:$MANPATH"
        export MANPATH
        PATH="//bin:$PATH"
        if test -w /etc
        then
                PATH="//sbin:$PATH"
        fi
        export PATH
fi
Beide schauen ob der Pfad "//man" in MANPATH eingetragen ist und wenn nicht tragen sie diese (Schwachsinns-)Einträge ein.

Ich hab in der courier-imap.sh in Zeile 1 die if-Abfrage auf "/usr/share/man" geändert und schon verschwinden die Einträge beim nächsten Login.
Die radikale Art wäre natürlich die beiben Skripte zu löschen ... dürfte eigentlich auch nicht schaden ... Seit wann gibt es einen man-Path im root-Verzeichnis?

Grüße
Tege
Antworten