[plt-scheme] Re: [plt-edu] 352 on Ubuntu

From: Richard Cobbe (cobbe at ccs.neu.edu)
Date: Fri Sep 1 07:04:13 EDT 2006

On Thu, Aug 31, 2006 at 10:11:30AM -0400, Sam Tobin-Hochstadt wrote:
> On Thu, 2006-08-31 at 09:58 -0400, Matthias Felleisen wrote:
> > > I built 352 on Ubuntu, using the Debian .dsc, orig.tar.gz, and
> > > diff.tar.gz files. Everything seemed to work right up until I tried
> > > to run some of the games, most notably Gobblets (which is very
> > > addictive). I then got an error about libGL.so and libGLU.so not
> > > being available. Sure enough, they weren't. But I did have libGL.so.
> > > 1 and libGLU.so.1, so I figured they were similar. Creating soft
> > > links from those to files named libGL.so and libGLU.so made
> > > everything work.
> > >
> > > I don't know if this is a problem on Debian proper, just Ubuntu, or
> > > just me, but would appreciate any advice.
> In general, the .so version is in the -dev package, since it's only
> needed for building programs that use the library, rather than running
> them.  So, you need to install libglu1-mesa-dev.

Sam's right.  This will, in fact, create exactly the symlinks that you did
above (as well as some other stuff not relevant here).

> I'm not sure if the Scheme games should be linking directly to the .so
> files, though.

They almost certainly should not.  General Unix practice is to link against
libFOO.so.N; this specifies the major version number and (ideally) ensures
a specific version of the library's interface.  The libraries without the
version numbers are, as Sam says, purely for development.

If the library builder has done the right thing, this works transparently
for shared libraries.  It looks like Gobblets is loading the libraries
dynamically, though, so whoever's actually dynamically loading libGL.so
needs to specify a version number directly, as the shared-library mechanism
doesn't extend to this use case.


Posted on the users mailing list.