Product SiteDocumentation Site

5.11. The pdksh to mksh transition

The Public Domain Korn Shell (pdksh) package is being retired for the release after wheezy, since pdksh is no longer maintained (it has not been actively developed since 1999).
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).