Strange Tree

John Chambers,,,781-647-1813 jc at TRILLIAN.MIT.EDU
Tue Aug 3 09:22:56 EDT 1999



christoph remarked:
| > On Mon, 2 Aug 1999 Chris DiTrani <cditrani at ne.mediaone.net> wrote:
| > 
| > /usr/bin/mh is a symlink to ".", which makes /usr/bin/mh a reference to
| > /usr/bin. The behavior you're seeing is a natural side effect of this.
| > 
| > /usr/bin/mh is the original installation directory for the Rand MH, and
| > some third-party tools depended on it; hence the symlink to maintain
| > backwards compatibility.

| In my opinion, this is a silly hack.  If RedHat builds the packages from
| source, they should be able to control things better than this.

| A few years back, this type of recusive linking provided endless headaches
| when used with tar, find & cpio, and even worse was the unix-unaware vender
| that ported crummy code.

Also, putting all the components of a package like mh  into  /usr/bin
isn't all that wise an idea.  This is an invitation to having package
X stomp on package Y by "accidentally" installing an executable  with
the same name as one of Y's executables.  For a package with only one
executable, this isn't much of a problem, but for a package  like  mh
with  a  whole  flock of executables, it is a recipe for disaster and
finger pointing and user bafflement.

A much better approach would be to install such complex packages into
their  own  directories,  as is conventionally done with X11 (and was
done with the original mh). Users who need to directly exec pieces of
the  package  will  need  to  be  told what to add to their $PATH, of
course, or a startup script could do it for them. But this isn't much
of  a  constraint,  and  is  much  easier to deal with than trying to
diagnose problems with one package overwriting another's executables.

I'm reminded of the many months it took me to get ghostview  to  work
properly. For the longest time, it just gave me bizarre error windows
with incomprehensible error messages.  I finally discovered that  the
problem  was  another  package  I'd  installed that had an executable
called "gs", which had wiped out  ghostview's  program  by  the  same
name.  I re-installed both of them into different directories (from a
non-su account so that they couldn't install their pieces  into  /bin
or  /usr/bin),  and  wrapped  their main commands in scripts that put
their own directories at the head of $PATH, and they both work now.


--
Modern GUIs are very well designed, for people with three hands. The
real problem has been how slow customers have been to make necessary
hardware upgrades to meet the requirements of the software.
-
Subcription/unsubscription/info requests: send e-mail with
"subscribe", "unsubscribe", or "info" on the first line of the
message body to discuss-request at blu.org (Subject line is ignored).



More information about the Discuss mailing list