Problem with update-menus command

D. Michael McIntyre michael.mcintyre at
Thu Oct 25 23:20:55 UTC 2007

On Thursday 25 October 2007, Earl Violet wrote:

> I'm using Ubuntu 7.04.  When I run:
> sudo update-menus
> I get several screens of:
> sh: Illegal option -r
> Does anyone have any idea what this means?

I sure don't, but I have a guess.  We ran into a problem like this at 
Rosegarden recently.  Lots of our scripts were set up to assume that /bin/sh 
would be bash when it is in fact dash on a stock Ubuntu system, and bash 
commands were choking dash.

I don't have an "update-menus" on this system, and don't really want to go see 
about installing one.  I had a look at some other update-* scripts, and one 
of them started with:

#/bin/sh -e

So I'm betting your update-menus script starts with:

#/bin/sh -r

That would work on a Debian system, I think, but not on Ubuntu.

$ sh -r
sh: Illegal option -r
$ ls -l /bin/sh
lrwxrwxrwx    1 root     root            4 May 26 19:51 /bin/sh -> dash*

So my guess is very plausible.  This is probably a case of something Ubuntu 
lifted from Debian but did not adapt to the change in which shell was going 
to do the job of /bin/sh.

You can probably fix it by hacking the script to change /bin/sh to /bin/bash, 
or by hacking the system level symlink so that /bin/sh points to /bin/bash 
instead of /bin/dash.  Either way, a more permanent solution would have to 
take place at the package maintainer patch level.
D. Michael McIntyre 

More information about the kubuntu-users mailing list