schaeaef
Anmeldungsdatum: 2. April 2007
Beiträge: 9
|
hallo, hab folgendes entdeckt: Wer Probleme mit Ubuntu 6.10 oder neuer hat: Das liegt daran, dass die Standard-Shell nicht mehr die bash sondern dash ist. (Grund dafür ist ein "schnellerer" Bootvorgang). Wenn man das rückgängig macht (wobei ich nicht mehr genau weiß, ob das nur manuell über den Link /bin/sh oder über update-alternatives ging) laufen wieder alle Shell- und Build-Skripte vernünftig. kann mir bitte einer helfen, das zu machen ... das problem ist, ich hab probleme beim kompilieren eines images mfg
|
Kopfgeldjaeger
Anmeldungsdatum: 24. Dezember 2006
Beiträge: 1168
|
Schonmal versucht im "configure"-Skript einfach sh (ganz oben) zu bash zu ändern? Oder einfach sudo ln -s /bin/bash /bin/sh ganz eventuell vorher noch /bin/sh löschen
|
schaeaef
(Themenstarter)
Anmeldungsdatum: 2. April 2007
Beiträge: 9
|
thx, für die antwort, werde es noch mal durchlaufen lassen und schauen, ob es jetzt geht ... edit: naja geht leider immer noch nicht hat wer nen tipp !
|
floogy
Anmeldungsdatum: 21. Juli 2006
Beiträge: 3297
Wohnort: Koblenz
|
EDIT: Diese Lösung mit update-alternatives funktioniert für Standard-Shells nicht: http://forum.ubuntuusers.de/viewtopic.php?p=668167#668167
sudo update-alternatives sh gibt es nicht (weshalb eigentlich?):
~$ sudo update-alternatives --config sh
No alternatives for sh.
~$ sudo update-alternatives --config dash
No alternatives for dash.
~$ sudo update-alternatives --config bash
No alternatives for bash Du mußt das anlegen
sudo update-alternatives --install sh sh /bin/dash 55
sudo update-alternatives --install sh sh /bin/bash 55
sudo update-alternatives --install sh sh /bin/sash 55 Dann kannst Du es konfigurieren:
~$ sudo update-alternatives --config sh
There are 3 alternatives which provide `sh'.
Selection Alternative
-----------------------------------------------
*+ 1 /bin/dash
2 /bin/bash
3 /bin/sash
Press enter to keep the default[*], or type selection number: 2
Using `/bin/bash' to provide `sh'.
~$ sudo update-alternatives --display sh
sh - status is manual.
link currently points to /bin/bash
/bin/dash - priority 55
/bin/bash - priority 55
/bin/sash - priority 55
Current `best' version is /bin/dash.
~$ sudo update-alternatives --config sh
There are 3 alternatives which provide `sh'.
Selection Alternative
-----------------------------------------------
+ 1 /bin/dash
* 2 /bin/bash
3 /bin/sash
Press enter to keep the default[*], or type selection number: 1
Using `/bin/dash' to provide `sh'. Damit das nun auch funktioniert, muß man den Link /bin/sh, der auf die dash verweist, löschen, und neu anlegen, dass er auf /etc/alternatives/sh verweist:
sudo rm /bin/sh
sudo ln -s /etc/alternatives/sh /bin/sh ~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 20 Apr 3 23:57 /bin/sh -> /etc/alternatives/sh
~$ ls -l /var/lib/dpkg/alternatives/sh
-rw-r--r-- 1 root root 51 Apr 3 23:52 /var/lib/dpkg/alternatives/sh Mit help|head -n1 kannst Du die Version der bash erfahren, nach dem logout und erneutem login. Oder einfach mit
~$ sh
sh-3.1$ Bei der dash sieht das dann so aus:
~$ sh
$
|
floogy
Anmeldungsdatum: 21. Juli 2006
Beiträge: 3297
Wohnort: Koblenz
|
So ganz klappt es hier nicht (system von dapper auf edgy upgegradet). Es wird immer noch nach dem login und für Terminals die bash genommen, obwohl /bin/sh auf die dash verweist. Woran liegt es? sh startet auch wie erwartet die dash. Hmm... ein grep bringt u.a. das hier:
~$ rgrep /bin/bash /etc/* 2>/dev/null|egrep "(gdm|cpu|gnome|login|adduser|passwd)"
/etc/adduser.conf:DSHELL=/bin/bash
/etc/alternatives/gnome-www-browser:#!/bin/bash
/etc/cpu/cpu.conf:DEFAULT_SHELL = /bin/bash
/etc/gnome-system-tools/users/profiles.xml: <shell>/bin/bash</shell>
/etc/gnome-system-tools/users/profiles.xml: <shell>/bin/bash</shell>
/etc/gnome-system-tools/users/profiles.xml: <shell>/bin/bash</shell>
/etc/gnome-system-tools/users/profiles.xml.dpkg-old: <shell>/bin/bash</shell>
/etc/gnome-system-tools/users/profiles.xml.dpkg-old: <shell>/bin/bash</shell>
/etc/gnome-system-tools/users/profiles.xml.dpkg-old: <shell>/bin/bash</shell>
/etc/gnome-system-tools/users/profiles:shell=/bin/bash
/etc/gnome-system-tools/users/profiles:shell=/bin/bash
/etc/gnome-system-tools/users/profiles:shell=/bin/bash
/etc/gnome-vfs-mime-magic:0 string #!/bin/bash text/x-sh
/etc/gnome-vfs-mime-magic:1:16 string /bin/bash text/x-sh
/etc/passwd:root:x:0:0:root:/root:/bin/bash
/etc/passwd:abc:x:1000:1000:Herr abc,,,:/home/abc:/bin/bash
/etc/passwd:xyz:x:1001:1001:Herr xyz,,,:/home/xyz:/bin/bash
/etc/passwd:postgres:x:124:124:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash
/etc/passwd:gast:x:1002:1003:gast,,,:/home/gast:/bin/bash
/etc/passwd-:root:x:0:0:root:/root:/bin/bash
/etc/passwd-:abc:x:1000:1000:Herr abc,,,:/home/abc:/bin/bash
/etc/passwd-:xyz:x:1001:1001:Herr xyz,,,:/home/xyz:/bin/bash
/etc/passwd-:postgres:x:124:124:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash
/etc/passwd-:gast:x:1002:1003:gast,,,:/home/gast:/bin/bash
/etc/xdg/xfce4/desktop/menudefs.hook: <app name="Bash" cmd="/bin/bash --login" term="yes" icon="" />
|
Hello_World
Anmeldungsdatum: 13. Juni 2006
Beiträge: 3620
|
Du musst doch nur in /etc/passwd die Zeile mit deinem Benutzernamen raussuchen und das letzte Feld von /bin/sh auf /bin/dash ändern (oder welche shell auch immer Du nutzen willst).
|
floogy
Anmeldungsdatum: 21. Juli 2006
Beiträge: 3297
Wohnort: Koblenz
|
Heißt das, wenn ich das in /etc/passwd so mit /bin/sh an Stelle von /bin/bas oder /bin/dash mache, kann ich das später über update-alternatives ändern?
|
Lux
Anmeldungsdatum: 10. November 2005
Beiträge: 5152
Wohnort: Grüt (Gossau ZH), Schweiz
|
floogy hat geschrieben: Heißt das, wenn ich das in /etc/passwd so mit /bin/sh an Stelle von /bin/bas oder /bin/dash mache, kann ich das später über update-alternatives ändern?
Das funktioniert nicht. Gruß Dirk
|
floogy
Anmeldungsdatum: 21. Juli 2006
Beiträge: 3297
Wohnort: Koblenz
|
Könntest Du das mal etwas näher erläutern? Mir fehlen da nämlich die nötigen Einblicke... Sorry, wenn der thread nun ein bisschen Zweckentfremdet wird, aber wie kann es sein, dass bei mir überall die bash läuft, nach einem dist-upgrade auf edgy? Geht da denn was mit /etc/defaults, oder dpkg-reconfigure? EDIT: Ok, ich wollte mal faul sein, aber da es so einfach war, das hier mit dem Wiki Shell zu lösen, hier noch mal die Lösung:
Um eine Shell als Standard zu setzen, muss man diesen Befehl ausführen:
chsh -s $path wobei $path durch den Pfad der Shell ersetzt werden muss. o Bash /bin/bash o Dash /bin/dash o Fish /usr/bin/fish o Zsh /usr/bin/zsh Nachdem eine Shell gesetzt worden ist muss man sich Ab- und Anmelden damit dieser Wechsel wirksam wird.
chsh muss demnach wohl sowas wie change shell sein, und demnach ist auch die Frage beantwortet, weshalb das nicht mit update alternatives geschieht. Das wird daran liegen, dass die shell an so vielen Stellen in den Konfigurationsdateien unter /etc vorkommt, und (wie ich ja auch feststellte musste) damit die Methode update-alternatives nicht funktioniert. Wieder mal was gelernt.
|
Hello_World
Anmeldungsdatum: 13. Juni 2006
Beiträge: 3620
|
floogy hat geschrieben: Heißt das, wenn ich das in /etc/passwd so mit /bin/sh an Stelle von /bin/bas oder /bin/dash mache, kann ich das später über update-alternatives ändern?
Nein, damit änderst Du nur deine login-shell. Aber wie man das Alternativen-System bedient, wurde in diesem Thread auch schon idiotensicher erklärt.
|
floogy
Anmeldungsdatum: 21. Juli 2006
Beiträge: 3297
Wohnort: Koblenz
|
Wie Du schon sagtest, ändert das nur die login-shell. Mir ging es aber eher um eine globale Umstellung der Standard-Shell. Vielleicht war das unglücklich formuliert. In meinem letzten Post verwies ich darauf, dass das alternativen-System bei der Shell nicht umfassend genug greift, und zum Wechsel der Standardshell chsh verwendet werden sollte. Es ging mir nicht darum, wie das Alternativen-System funktioniert, das habe ich ja wohl schon an anderer Stelle klar gemacht. Aber das Problem besteht ja wohl weiterhin: schaeaef hat geschrieben: naja geht leider immer noch nicht hat wer nen tipp !
|
schaeaef
(Themenstarter)
Anmeldungsdatum: 2. April 2007
Beiträge: 9
|
floogy hat geschrieben: Könntest Du das mal etwas näher erläutern? Mir fehlen da nämlich die nötigen Einblicke... Sorry, wenn der thread nun ein bisschen Zweckentfremdet wird, aber wie kann es sein, dass bei mir überall die bash läuft, nach einem dist-upgrade auf edgy? Geht da denn was mit /etc/defaults, oder dpkg-reconfigure? EDIT: Ok, ich wollte mal faul sein, aber da es so einfach war, das hier mit dem Wiki Shell zu lösen, hier noch mal die Lösung:
Um eine Shell als Standard zu setzen, muss man diesen Befehl ausführen:
chsh -s $path wobei $path durch den Pfad der Shell ersetzt werden muss. o Bash /bin/bash o Dash /bin/dash o Fish /usr/bin/fish o Zsh /usr/bin/zsh Nachdem eine Shell gesetzt worden ist muss man sich Ab- und Anmelden damit dieser Wechsel wirksam wird.
chsh muss demnach wohl sowas wie change shell sein, und demnach ist auch die Frage beantwortet, weshalb das nicht mit update alternatives geschieht. Das wird daran liegen, dass die shell an so vielen Stellen in den Konfigurationsdateien unter /etc vorkommt, und (wie ich ja auch feststellte musste) damit die Methode update-alternatives nicht funktioniert. Wieder mal was gelernt.
thx, bin gerade am testen, ich hoffe es funktioniert diesmal ... noch eine frage, wie ist denn das root kennwort !?! ... wenn ich su in das terminal eingebe, verlang er nach einem kennwort. ich hab nie eins angegeben. wenn ich das kennwort leer lasse kommt nur: su: Authentication failure Entschuldigung
|
floogy
Anmeldungsdatum: 21. Juli 2006
Beiträge: 3297
Wohnort: Koblenz
|
Die Standardmethode etwas mit Rootrechten auszuführen ist unter Ubuntu sudo. Das nötige Passwort ist Dein Userpasswort.
|
schaeaef
(Themenstarter)
Anmeldungsdatum: 2. April 2007
Beiträge: 9
|
leider funktioniert das kompilieren immer noch nicht .... ich habe einen lösungsweg entdeckt, nur leider werde ich daraus nicht schlau ☹ http://www.dream-multimedia-tv.de/board/thread.php?threadid=2774 könnt ihr euch das bitte mal ansehen
|
floogy
Anmeldungsdatum: 21. Juli 2006
Beiträge: 3297
Wohnort: Koblenz
|
Was hast Du denn nun gändert? hast Du Dich auch aus- und wieder eingeloggt?
ls -l `which sh`
ls -l `which bash`
ls -l `which dash`
sudo update alternatives --display sh
ls -l /etc/alternatives/sh
help|head -n1 Mehr bringt wohl mal die Ausgabe von ./configure im No Paste Service per Copy and Paste. Außerdem head -n1 ./configure .
|