![]() ![]() Programs should be written to the standard, and if they use extensions they should declare them that way it is clear what extensions are in use and they will at least fail with a much better error message if those extensions are not available.) (This applies the same philosophy as in C and C++. In the longer term, this will promote a cleaner and more efficient system. We regret this breakage, but feel that the proper way to address it is to make the small changes required to those scripts, discussed later in this document. Of course, there have been a certain number of shell scripts written specifically for Linux systems, some of which incorrectly stated that they could run with /bin/sh when in fact they required /bin/bash, and these scripts will have broken due to this change. Thus, we felt that the compatibility impact of this change would be minimal. Furthermore, any shell scripts that expected to be portable to other Unix systems, such as the BSDs or Solaris, already honoured this requirement. The Debian policy manual has long mandated that "shell scripts specifying '/bin/sh' as interpreter must only use POSIX features" in fact, this requirement has been in place since well before the inception of the Ubuntu project. These improvements were in fact largely due to the changed /bin/sh. The boot speed improvements in Ubuntu 6.10 were often incorrectly attributed to Upstart, which is a fine platform for future development of the init system but in Ubuntu 6.10 was primarily running in System V compatibility mode with only small behavioural changes. Rather than change each of them individually to run explicitly under /bin/dash, a change which would require significant ongoing maintenance and which would be liable to regress if not paid close attention, the Ubuntu core development team felt that it was best simply to change the default shell. A large number of shell instances are started as part of the Ubuntu boot process. However, it is rather large and slow to start up and operate by comparison with dash. ![]() bash is an excellent full-featured shell appropriate for interactive use indeed, it is still the default login shell. The major reason to switch the default shell was efficiency. A script run from the desktop or file manager, through the dialogue 'run in terminal' will execute as POSIX dash. Opening a terminal from the menu or shortcut provides interactive bash. This document explains this change and what you should do if you encounter problems. ![]() The same change will affect users of Ubuntu 6.06 LTS upgrading directly to Ubuntu 8.04 LTS. In Ubuntu 6.10, the default system shell, /bin/sh, was changed to dash (the Debian Almquist Shell) previously it had been bash (the GNU Bourne-Again Shell).
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |