[squeak-dev] sudo apt-get install NuScratch fails in 2017-09-07-raspbian-stretch-lite

Louis LaBrunda Lou at Keystone-Software.com
Thu Oct 26 18:06:17 UTC 2017


Hi Tim,

>That’s just weird. On my Pi’s I have 
> 84 -rw-r--r-- 1 root root  83400 Jan 12  2017 /usr/lib/libpigpiod_if2.so
> 72 -rw-r--r-- 1 root root  71280 Jan 12  2017 /usr/lib/libpigpiod_if.so
>260 -rw-r--r-- 1 root root 264712 Jan 12  2017 /usr/lib/libpigpio.so
>and no links involving them at all. It must be something to do with one other of the zoo of path variables that unix likes to maintain and hide from us. In the ‘squeak’ shell script to start up the vm I see LD_LIBRARY_PATH being set and it looks like /usr/lib is included there. I think. Maybe.
>tim

I came across LD_LIBRARY_PATH somewhere but I can't remember if I tried to set it.  I did try
to set regular PATH.  The squeak.sh file I have doesn't have any reference to LD_LIBRARY_PATH.
Maybe you added it?  I was also under the impression that /usr/lib was LD_LIBRARY_PATH or
whatever path is used for .so files?

I just tried:

	export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib

in my shell script instead of the links, it doesn't work.  Do I have something wrong?  What do
you have?

I just tried:

	export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib"

and it works!  Not coming up with this sooner is on me.  But in my defense searches came up
with lots of conflicting information, quotes, no quotes, which path variable, /usr/lib
supposedly being the default.  I also hate scripting languages made on top of command languages
after the fact.  They are never intuitive.  Rant over.

In a squeak script in /usr/bin/squeak (not .sh) on what I think is Raspbian Jessie, I found
this at the end:

# prepending is less flexible but safer because it ensures we find the plugins
# in the same directory as the VM.  We must include at least /lib and /usr/lib
# if libraries there-in are to be found.  These directories are not implicit.
case $PLATFORMLIBDIR in
/lib|/usr/lib)	SVMLLP=/lib:/usr/lib;;
*)				SVMLLP="$PLATFORMLIBDIR:/lib:/usr$PLATFORMLIBDIR:/usr/lib"
esac
LD_LIBRARY_PATH="$PLUGINS:$SVMLLP:${LD_LIBRARY_PATH}" $GDB "$BIN/squeak" $COMPIN "$@"

I guess it adds /usr/lib to the path but the version of squeak.sh that comes with the ARM
squeak has nothing like it.

I am going to drop the links and set LD_LIBRARY_PATH, now that I know how and that it works.  I
guess that with Squeak disappearing between Jessie and Stretch and the squeak.sh script that
comes with ARM not setting LD_LIBRARY_PATH and /usr/lib not being defaulted in LD_LIBRARY_PATH
like lots of posts claim, we have what we have.

Thanks again for the help.  Just being able and forced to explain things to someone, helps me
think of new things to try.

Lou
-- 
Louis LaBrunda
Keystone Software Corp.
SkypeMe callto://PhotonDemon



More information about the Squeak-dev mailing list