problem with LINUX installation

D. Hugh Redelmeier hugh at mimosa.com
Sat Apr 2 01:47:07 UTC 2005


This is my first Squeak installation.

System: Fedora Core 3 LINUX running on an i386 (Athlon).

I fetched .rpm files from http://squeak.hpl.hp.com/unix/:

-rw-rw-r--  1 hugh hugh 12797972 Mar 22 04:17 Squeak-image-3.7-5989.noarch.rpm
-rw-rw-r--  1 hugh hugh  3428037 Mar 22 17:11 Squeak-sources-3-1.noarch.rpm
-rw-rw-r--  1 hugh hugh   753846 Mar 22 04:28 Squeak-vm-3.7-7.i386.rpm
-rw-rw-r--  1 hugh hugh  2383423 Mar 22 04:28 Squeak-vm-3.7-7.src.rpm

I installed all but the last of these (rpm -iv).

I didn't know how to start it, so I typed "squeak" at the shell.
squeak complained about not being able to find the image.

Then I tried: squeak /usr/lib/squeak/squeak.image.gz
	This interpreter (vers. 6502 cannot read image file (vers. 134777631
	Hit CR to quit
[Notice the unmatched parentheses in the diagnostic message.  BUG, I think.]

I realized at this point that I should be using inisqueak to make a
personal writeable copy of the image and changes files.

Then I tried inisqueak and got this message:
    No default image, looking for alternatives...

    I could not find an image to install.
    Please check your Squeak installation.

I'd have expected that inisqueak, which is in
Squeak-image-3.7-5989.noarch.rpm, would know where to look for
/usr/lib/squeak/Squeak3.7-5989.image.gz which is packaged in the same
.rpm.

In fact, the inisqueak shell script thinks that things are installed
in /usr/local/bin and /usr/local/lib/squeak.

BUG: inisqueak in Squeak-vm-3.7-7.i386.rpm should know where the
same .rpm places the initial image and changes files.

The man page for inisqueak says:
	inisqueak has no options or arguments.

This turns out not to be the case.  inisqueak accepts flags (give it
-h to see a list).  It also accepts a pathname that it will prefix to
the wired in paths for:
- bindir
- imgdir
- plgdir
I am guessing that this facility is for the benefit of packaging
tools.  I could not get it to solve my problem since I needed to
change these paths, not just prefix them.

The paths are set up as the first few executable lines in inisqueak:

    MAJOR=3
    VERSION=3.7-5989

    prefix=/usr/local
    exec_prefix=${prefix}
    bindir=${exec_prefix}/bin
    imgdir=${prefix}/lib/squeak
    plgdir=/usr/local/lib/squeak/3.7-7

Why is plgdir not based on prefix like the other path variables?

If plgdir were based on prefix then prefix could be defined:
    prefix=$(prefix:-/usr/local)
allowing the prefix to be overridden from the command line:
	prefix=/usr inisqueak 

The existing mechanism for relocating all paths (when a path is
supplied as an argument) relocates bindir, imgdir, and plgdir, even
though plgdir is not initialized in terms of prefix.

At this point, I make a copy of inisqueak, fix the definition of
prefix, and run that copy.  Don't bother me for a while -- I'm
playing.

PS: My plugin stuff is probably broken since I only changed prefix.  But
perhaps not -- how can I tell?  The filenames in the directory suggest
that the display would not work without plugins, and the display is
working.

PPS: top says that squeak is taking about 14% of the user mode CPU
before I even touch it.  Is it (the vm?) still busy waiting / polling?
I know that used to be the case years ago.



More information about the Vm-dev mailing list