Univention Bugzilla – Bug 22557
/bin/sh für UCS 3.0
Last modified: 2011-12-13 15:48:54 CET
In Squeeze wird für /bin/sh die dash verwendet, der einige Features der Bash fehlen, aber etwas schneller startet. Da die Standard-Shell vorher bash war, verwenden einige Skripte Bash-spezifische Features, ohne explizit /bin/bash als Shebang zu setzen. Eine Liste dieser Funktionen: http://mywiki.wooledge.org/Bashism Die in Debian Squeeze integrierten Skripte sollten alle korrigiert sein, für UCS 3.0 sollten die UCS-eigenen Skripte im Rahmen der normalen 3.0-Entwicklung identifiziert werden. Das Skript checkbashisms aus devscripts testet Skripte auf Bash-spezifische Funktionen. Wir sollten später prüfen, ob wir dem Debian-Weg folgen oder bei /bin/bash verbleiben, da potentiell Kunden-Skripte nicht mehr funktionieren.
Bitte die Anpassungen aus Bug #23005 mit in den Changelog-Eintrag für diesen Bug übernehmen.
Default für /bin/sh in 3.0 ist dash. Alle Univention Pakete wurden entsprechend angepasst.
Aktuell wird die dash irgendwann während des Updates aktualisiert und zum Shell Standard. Dadurch kann es zu Problemen kommen, die noch nicht aktualisiert wurden: Configuration file `/etc/nagios/nrpe.cfg.debian' ==> Deleted (by you or by a script) since installation. ==> Package distributor has shipped an updated version. ==> Using current old file as you requested. /etc/init.d/nagios-nrpe-server: 84: source: not found invoke-rc.d: initscript nagios-nrpe-server, action "start" failed. dpkg: error processing nagios-nrpe-server (--configure): subprocess installed post-installation script returned error exit status 127
fixed dash wird jetzt vor dem Update auf hold gesetzt und anschließend zurückgesetzt. Somit ist es nach dem Update auf 3.0 vorhanden.
Während des Update wird die dash gehalten: dpkg -l dash hi dash 0.5.4-12.8.200909080514 POSIX-compliant shell Nach dem Update ist die dash aktualisiert: dpkg -l dash ii dash 0.5.5.1-7.4.10.201104230223 die Standardshell ist dann aber immer noch die bash -> ls -la /bin/sh lrwxrwxrwx 1 root root 4 21. Nov 17:55 /bin/sh -> dash -> dpkg-divert --list| grep bash Umleitung von /bin/sh zu /bin/sh.distrib durch bash Das ist aber OK. UCS 3.0 Neuinstallation: -> ls -la /bin/sh lrwxrwxrwx 1 root root 4 21. Nov 17:55 /bin/sh -> dash Die univention Pakete werden ja beim Bau durch ucslint auf bashisms getestet. Ich habe jetzt nur noch schnell die univention Skripte in /var/lib/dpkg/info getestet.
UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"