[plt-scheme] how to manually install drScheme - ms-windows

From: Eli Barzilay (eli at barzilay.org)
Date: Sat Nov 20 21:56:54 EST 2004

On Nov 20, actuary77 at comcast.net wrote:
> I have installed Dr. Scheme on a windows 2000 computer.
> I have installed 90% of my applications in a subdirectory called
> c:\bin....  PLT is installed in c:\bin\plt\ I have a
> c:\home\.. subdirectory, a "docs" dir, etc. (mocked the linux tree
> as close as I could..)
> I do not use the "Program Files" or "My Documents" for anything if I
> can help it.

And therefore you should expect some problems installing software, in
the same way I'd expect problems if I'm trying to avoid using my home
directory on linux.

> Unfortunately, PLT has written files all over the place on my
> machine.
> While the core appears to be installed in c:\bin\plt\.. , key files,
> including portions of the web server, srfi, etc. have been written
> to "c:\my documents\kochdavid\application date\plt\208........  The
> installed subdirectories include collects and items that appear to
> conflict and duplicate directories created in the normal
> installation tree (e.g.  c:\bin\plt\.....).

When you install a normal plt distribution on windows, stuff gets
added to only three places:

1. The main directory (defaults to Program Files\PLT) has the complete

2. About three DLLs get installed in Windows\system32.

3. Registry keys are generated (a) to associate Scheme files with
   DrScheme and (b) to store information for uninstalling.

The registry keys are not needed if you're willing to deal with
administration yourself, the DLLs can be left in the PLT toplevel
directory if you know that creating standalone exe files will not work
from arbitrary places.

Now, *after* you install stuff, when DrScheme starts it will use the
Windows equivalent of a `home directory' to save preferences and
privately installed collections.  This would be in something like
"Documents and Settings\<user>\Application Data\PLT Scheme".  When you
install collections, they will be in a subdirectory of this named
after the version you used to install.  If you did not install .plt
files after the PLT installation, then you should see only preferences
etc there.

> What adjustments to initialization files or the registry are
> required for me to move the files installed "c:\my
> documents\kochdavid\application date\plt\208..... to the the
> installation at c:\bin\plt\...  ???

See the "Setup PLT" for a way to run it so collections get installed
in the main plt tree (IIRC, --all-users is what you want).

> ======================================================================
> Is there a zipped distribution that would allow simply unzipping and
> copying to the installation point and a simple batch file that could
> be run to make registry entries or move files required by the
> system?  This would enable some control over the installation.

I think that the current way makes a lot of sense, and trying to mess
around with that will get you into problems you won't expect -- for
example, if you distribute such a file that keeps the DLLs in the plt
toplevel, then standalone executables will not work as expected.  If
you *really* want the masochistic pleasure of messing around with
alternative Windows packaging -- the installer is made using NSIS, and
you can start from our installer script and play with things.  This
was discussed not too long ago on this list.

> This is one of the reasons that I hate windows, is the presumptive
> privileges that software authors take with installing software and
> writing files anywhere or everywhere they can without consideration
> for the computer owner or the organization standards the user may
> have established.
> [...]
> It was very surprising the way that PLT installed considering the
> security minded background of development.  I would not expect the
> installation to take such privileges as granted by windows and
> install without control or guidance by the user.  More like
> shocked..

Just to make things clear, the usage of directories is:

1. The PLT tree is installed anywhere you want it.

2. The DLLs are installed in the Windows\system32 directory (actually,
   only if you have priviliges, otherwise they're kept in the PLT

3. User data -- preferences and privately installed collections are
   installed in the "Application Data" directory which acts as an
   application-specific dot-directory on Linux (on Linux, this stuff
   goes in ~/.plt-scheme).

There is no presumption involved, and no intentional security holes --
your browser will not change, no spyware, nothing in Startup or the
registry equivalent, no commercials, and the same set of offensive
applications will continue fighting each other over who gets to play
upir mp3 files.

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                  http://www.barzilay.org/                 Maze is Life!

Posted on the users mailing list.