[plt-scheme] Unix install

From: mvanier (mvanier at cs.caltech.edu)
Date: Tue May 2 08:08:07 EDT 2006

I find this discussion somewhat surprising.  I run PLT scheme on Linux, install 
into /usr/local/plt, and all I have to do is to set a few shell variables, 
specifically PATH, MANPATH, LD_LIBRARY_PATH, and PLTHOME.  Not exactly a huge 
burden IMO, especially since now that they're set in my shell initialization 
script, I can install new versions with no extra effort.  I've never had any 
problems with this.  You could argue that it's worse if you have to install for 
a large group of users, but not much.  I frankly think the traditional Unix 
installation conventions are a relic that should be overhauled (and I'm not some 
kind of Windows or Mac advocate either; I'm a hard-core Linux user).  On my 
machine, /usr/local/plt has 6832 non-directory files in it.  Personally, I like 
the feeling of knowing that I can find everything PLT-related under one directory.


Eli Barzilay wrote:
>> Someone mentioned that the "one application-specific directory"
>> approach is better because it is easier to uninstall, but this
>> argument doesn't really hold, since there are various package
>> management systems to take care of this. I use one of the very
>> simplest, GNU Stow.
> (Off-topic: It *is*, obviously, easier to install and uninstall...
> The unix thing has always been a PITA, not only for PLT but for
> anything else -- starting from the problem of a single executable
> namespace per machine (which makes it a single namespace for the whole
> world), and ending at the decision to put all shared libraries in
> /usr/lib, and use symlinks to resolve problems.  Judging by the single
> stow-specific prefix you're using below, it looks like this stow thing
> uses a single directory to know which files it spreads out later -- so
> it uses a single directory to solve the unix-multiple-directories
> problem.)
>> With most autotools-based software, all I have to do is:
>> ./configure --prefix=$HOME/local
>> make
>> make install prefix=$HOME/local/stow/this-app
>> cd $HOME/local/stow
>> stow this-app
>> and everything just works.
>> However, with PLT it's not quite this simple. I do (approximately):
>> ./configure --prefix=$HOME/local
>> make
>> make install prefix=$HOME/local/stow/plt-lib
>> cd $HOME/local/stow/
>> mkdir -p plt/lib
>> mv plt-lib plt/lib/plt
>> cd plt
>> ln -s lib/include lib/man lib/bin .
>> cd lib
>> ln -s plt/lib/* .
>> cd ../..
>> stow plt
>> And then I probably run setup-plt at some point. This works
>> reasonably well for my purposes: I get mzscheme into my path
>> ($HOME/local/bin) which is usually all that matters to me. Still,
>> it's a bit awkward.
>> So, before we start talking about "fixing" the file layout, we need
>> to know what it should be changed to. I'd be rather surprised if
>> everyone agreed that the layout I suggested would be an
>> improvement...
> Of course nobody would agree with you if they come from the
> single-directory world of Windows or OSX, or if they're used to the
> convenience of user-local installations by putting the plt directory
> somewhere in your home dir and linking executables in your ~/bin/.
> For (unix) machine installations, which include distro-specific
> packaging like .debs and .rpms, I'd be surprised if anyone disagrees
> (except on minor points).

Posted on the users mailing list.