5.11. The pdksh to mksh transition
The MirBSD Korn Shell (
mksh) package contains its successor; it has evolved from the Public Domain Korn Shell and has been kept up to date with the POSIX standard on the shell. In Debian wheezy,
pdksh is a transitional package using
lksh, a variant of
mksh built with special compatibility options to provide a
pdksh binary symlink. This compatibility binary behaves more like the traditional Public Domain Korn Shell than the current
mksh. However as it contains behavior-changing bugfixes it is not a pure drop-in replacement. So, you're advised to change your
#!/bin/pdksh
scripts to
#!/bin/mksh
and test them. If the test fails, you're advised to fix your scripts. If, for some reason, this is not possible, you can change them to
#!/bin/lksh
scripts, and test them again. This test has more chances of succeeding without changing a lot of your code. However, be aware at some point in the future the transitional package will get dropped from Debian.
The compatibility binary is not suitable for interactive use, so as system administrator, adjust the login shell of your Korn Shell users. For minimal service interruption, do this before the upgrade of the O.S.: manually install the
mksh package and change the login and/or interactive shells of users that use
pdksh to
mksh. Furthermore, you're encouraged to copy
/etc/skel/.mkshrc into their home directories: this provides some shell functions like
pushd,
popd and
dirs and a nice
PS1
(shell prompt).