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