If you really care about end users and you think this is something that need fixing, then the proper way to do it is to:<br><br>1. create a fake /usr/bin/ where all binaries are available without breaking anything else. (this could be done by having a virtual filesystem of some sort that automatically finds things for you, think autofs /etc/<a href="http://auto.net">auto.net</a>. So if you say: which bash it shows as /bin/bash if it hasn't been used from /usr/bin/bash. and which bash will be /bin/bash and /usr/bin/bash if somebody or some command called /usr/bin/bash as it would "mount" this for you there). This would mean that all packages that install things to /usr/bin would need to be installed elsewhere... which is really bad<br>
2. write GUI tools that find binaries properly, think gnome-open but for binaries. I guess similar to command-not-found in Ubuntu<br>3. hide the whole filesystem from end-users GUI programs (MacOS X does this beautifully, if you open a terminal you can cd / and it takes you to some /private hidden directory)<br>
<br>If it was me, I would do this actually:<br><br>1. hide all from users<br>2. install all packages to /opt/app/version/{bin,share,lib}<br>3. symlink stuff from /opt/app/version/bin/* to /usr/bin/ if not already there<br>
<br>And write a really good update-alternatives to manage /usr/bin/* symlinks<br><br>Both solutions are really destructive and break UNIX mentalities dating back to who knows when... However, the second solution would work cleanest up to some point (say that somebody decides to mount /opt from a disk that's not available during early boot and your fsck needs to be exec from /usr/bin)<br>
<br>My opinion is that this is silly and we should not move anything to /usr/bin only. If your goal is to make things easier to end-users, then just add a new path to /etc/profile and they will all have it, and put symlinks there. If your solution is to make it easier for both 3rd party vendors and end-users, then modify the FHS so it gets standarized for all Linux distributions.<br>
<br>I do not think that all people using Ubuntu have /usr from the same partition that / is. And even if they do, I'm sure a lot of scripts/apps will break if you move everything to /usr/bin and, say, symlink from /usr/bin to /bin /sbin /usr/local/bin /usr/local/sbin etc..., so the same commands are available from all legacy PATHs. Madness. Things will break. Examples: some obscure app needed the user-level privileges from /usr/bin and not the admin-only /usr/sbin version (which might have set-uid bit set and who knows what other permissions setup). Or another example: your app does not like symlinks and it found /bin/foo. Or another: my binary has the same name as one provided by the system in /usr/sbin, but since now /usr/bin/ has this name, my app will conflict (3rd party vendors, not packages from Debian/Ubuntu).<br>
<br>-- <br>----)(----- <br>Luis Mondesi<br><br>----- START ENCRYPTED BLOCK (Triple-ROT13) ------<br>Gur Hohagh [Yvahk] qvfgevohgvba oevatf gur fcvevg bs Hohagh gb gur fbsgjner jbeyq.<br>----- END ENCRYPTED BLOCK (Triple-ROT13) ------<br>