From owner-freebsd-ports Wed Aug 28 11:15:04 1996 Return-Path: owner-ports Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id LAA18066 for ports-outgoing; Wed, 28 Aug 1996 11:15:04 -0700 (PDT) Received: from po2.glue.umd.edu (po2.glue.umd.edu [129.2.128.45]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id LAA18061 for ; Wed, 28 Aug 1996 11:15:02 -0700 (PDT) Received: from thurston.eng.umd.edu (thurston.eng.umd.edu [129.2.103.25]) by po2.glue.umd.edu (8.7.5/8.7.3) with ESMTP id OAA23557; Wed, 28 Aug 1996 14:14:58 -0400 (EDT) Received: from localhost (chuckr@localhost) by thurston.eng.umd.edu (8.7.5/8.7.3) with SMTP id OAA24267; Wed, 28 Aug 1996 14:14:57 -0400 (EDT) X-Authentication-Warning: thurston.eng.umd.edu: chuckr owned process doing -bs Date: Wed, 28 Aug 1996 14:14:57 -0400 (EDT) From: Chuck Robey X-Sender: chuckr@thurston.eng.umd.edu To: Ernest Hua cc: kientzle@netcom.com, freebsd-ports@freebsd.org Subject: Re: Linux async vs. FreeBSD sync (fwd) In-Reply-To: <199608281747.KAA01233@server1.chromatic.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-ports@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Wed, 28 Aug 1996, Ernest Hua wrote: > > I've been using a private scheme doing precisely the same thing > (each application version to its own directory). This has the > enormous advantage of being able to upgrade/downgrade a single > application in a snap. > > My own scheme is a bit klunky, and I would prefer some more > fully-automated methods. The issue I ran into is: > > Transparent installation. Many programs are not quite as > automatically configurable as GNU and company. Therefore, > manual patching of path names (installation and execution) > are necessary. > > Ideally, every program to be installed will truly believe they > are being installed in /usr/local, but will actually be copied > somewhere else, but with proper symbolic links to make it look > just like it was in /usr/local. > > A full database of files installed (per application version) > would be built (automatically, probably by faking out programs > such as cp and install) to allow arbitrary removal/upgrade/downgrade > of any version of any application. I don't understand completely why you'd do this. If you want ispell in /usr/local/app/ispell/bin, then do the ports make as: make PREFIX=/usr/local/app/ispell and it would install there, unless it was an X11 application. The X11 apps will probably do that too in a little while (watch this space!) Of course, your path statement would look like hell. > > Ern > > > An alternative package system that I've been using successfully for several > > months now is to install _every_ application in it's own private directory, > > and then populate /usr/local/{lib,bin,include,man} with appropriate > > symlinks. For example, I have "ispell" installed in /usr/local/app/ispell > > as follows: > > > > /usr/local/app/ispell/bin - public executables > > /usr/local/app/ispell/lib - public lib file > > /usr/local/app/ispell/man/man? - Man pages > > > > I've then cobbled a quick Perl script that destroys and then > > re-builds the following directories: > > > > /usr/local/man/man? - links to /usr/local/app/*/man/man?/* > > /usr/local/lib - links to /usr/local/app/*/lib/* > > /usr/local/include - links to /usr/local/app/*/include/* > > /usr/local/links/bin - links to /usr/local/app/*/bin/* > > > > (I chose /usr/local/links/bin rather than /usr/local/bin to avoid > > some transition headaches.) > > > > The big advantage of this scheme over the current FreeBSD package > > scheme is that it's very easy to add a new port to this system, > > since you don't have to track down every file and enter it into > > some database. Similarly, removing packages is equally simple: just > > delete the package directory and rebuild the link directories. > > > > Currently, this doesn't handle package dependencies, and has some other > > weaknesses, but I think it has serious advantages over the current system. > > In particular, it easily handles new programs and ports as well as > > existing packages. > > > ----------------------------+----------------------------------------------- Chuck Robey | Interests include any kind of voice or data chuckr@eng.umd.edu | communications topic, C programming, and Unix. 9120 Edmonston Ct #302 | Greenbelt, MD 20770 | I run Journey2 and n3lxx, both FreeBSD (301) 220-2114 | version 2.2 current -- and great FUN! ----------------------------+-----------------------------------------------