Path: utzoo!mnetor!tmsoft!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!samsung!uunet!cme!durer!clark From: clark@cme.nist.gov (Steve Clark) Newsgroups: comp.unix.admin Subject: Re: designing /usr/local/{bin,etc,lib} Message-ID: Date: 24 Dec 90 15:49:15 GMT References: <613@synopsys.COM> Sender: news@cme.nist.gov Organization: National Institute of Standards and Technology Lines: 64 In-reply-to: arnold@mango.synopsys.com's message of 21 Dec 90 23:07:39 GMT >>>>> On 21 Dec 90 23:07:39 GMT, arnold@mango.synopsys.com (Arnold de Leon) said: Arnold> I was referred to the a paper presented at the Usenix LISA IV, Arnold> "The Depot". IT is apparently available for anonymous ftp Arnold> at durer.cme.nist.gov (129.6.32.4) as ~ftp/pub/depot.lisa.ps.Z It is, indeed. As one of the authors of this paper, I just wanted to clarify one thing. Arnold> Working with the example "perl", the installation on "server" Arnold> would look like Arnold> /export/depot/.primary/perl/plat-sun4-OS4/bin/perl Arnold> The clients will "see" this as Arnold> /depot/.primary/perl/plat/bin/perl or Arnold> /depot/perl/bin/perl The .primary/.develop directories are intended to be visible only in the server's view. They serve two purposes: 1) Organizational: they distinguish the primary use copy(ies) of a package from the development/testing copy(ies), and 2) Technical: We wanted the server to be able to use a depot in the same manner as any other client, i.e. to compose a client view via NFS mounts. In the absence of .primary/, a server would mount /depot/perl onto /depot/perl. This gives NFS fits when another client comes along and tries to mount /depot/perl from that server. Pushing stuff into /depot/.primary/perl on the server allows the client view to be composed on the server without obscuring the actual origin from other clients. Arnold's approach of putting stuff under /export on the server is very appealing to me. I've never gotten around to trying it, but it seems like the "right" way to avoid the collision I described above. With or without /export, though, the client view should not contain .primary: The client sees the perl binary as /depot/perl/bin/perl. Arnold> Aside: I would expect that in this example that perl would be Arnold> have been configured to expect itself to be installed Arnold> in /depot/perl/{bin,lib} Yup ... that's 'zactly right! Arnold> o Shared libraries and associated problems We have the X11R4 shared libraries (libX*.so.*) in /depot/X11R4/arch/lib. There are symbolic links in /usr/local/lib which point to these libraries. Some users prefer to bypass /usr/local entirely, putting /depot/*/arch/bin on their PATH and setting LD_LIBRARY_PATH to pick up the shared libraries directly from /depot/X11R4/arch/lib. Arnold> o Performance Sorry ... we have no hard performance numbers, but the symlink overhead on startup certainly seems insignificant (~80 clients, ~4 depot servers). -- -steve ------------------------------------------------------------------ Steve Clark National Institute for Standards and Technology (formerly NBS) clark@cme.nist.gov ..uunet!cme-durer!clark (301)975-3595 / 3544