[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: A Question about a supposedly missing file



On 2018-04-2
2, Roberto C  Sánchez <roberto@debian.org> wrote:
>> > > 
>> > > comp@AbNormal:~/Apps/BDT$ ./bdt
>> > > /usr/local/gromacs/lib:/opt/mopac
>> > > ./bdt.exec: error while loading shared libraries: libtcl8.4.so.0: cannot
>> > > open shared object file: No such file or directory
>> > > comp@AbNormal:~/Apps/BDT$
>> > > 
>> > > The supposedly missing file is in /home/comp/Apps/BDT/tools/tcl-tk8.4/lib.
>> > > How do I go about solving this problem?
>> > > 
>> > I'll bet that bdt is a shell script and it does some trickery with
>> > setting LD_LIBRARY_PATH. Can you post the contents of bdt (assuming it
>> > is a shell script and not too long)? Further, I suspect that bdt.exec is
>> > the actual binary. If that is the case, can you post the output of
>> > `ldd ./bdt.exec`?
>> > 
>> > Since tcl8.4 was last available in jessie [0], you most likely have an
>> > incomplete application distribution. Or it depends on you installing
>> > tcl8.4 from system packages and you will need to grab a jessie package
>> > and install it on your system, or possibly rebuild it (in case the
>> > dependencies don't work out exactly correct).
>> > 
>> > Regards,
>> > 
>> > -Roberto
>> > 
>> > [0] https://packages.debian.org/search?suite=jessie&searchon=contents&keywords=libtcl8.4.so.0
>> > 
>> Thanks for your reply.  The file is:
>> 
>>  #!/bin/sh
>> 
>> BDT=$PWD
>> export BDT
>> TOOLS=$BDT/tools
>> PATH=$BDT:$TOOLS:$PATH
>> 
>> if [ `whereis wish | wc -w` -eq 1 ]
>> then
>>     echo "You do not have TCL-TK installed"
>>     echo "The BDT-installation of TCL-TK will be used"
>> 
>>     TCLTK=$TOOLS/tcl-tk8.4
>> 
>>     PATH=$TCLTK:$PATH
>> 
>>     # FOR general UNIX
>>     LD_LIBRARY_PATH=$TCLTK:$TCLTK/lib:$LD_LIBRARY_PATH
>>     export LD_LIBRARY_PATH
>       ^^^^^^^^^^^^^^^^^^^^^^
>> 
>>     # FOR tcl-tk libraries
>>     TCL_LIBRARY=$TCLTK/lib/tcl8.4
>>     TK_LIBRARY=$TCLTK/lib/tk8.4
>>     export TCL_LIBRARY TK_LIBRARY
>> fi
>> echo $LD_LIBRARY_PATH
>> 
>> #./bdt.tcl
>> ./bdt.exec
>> 
> It appears that my supposition was correct. You will need to find a way
> to obtain, build, or install tcl8.4 for your system. Aside from the
> possibilities I mentioned in my initial reply, you could set up a jessie
> chroot, which would have tcl8.4 available as a standard package, and run
> your application from within that.

As the missing tcl libraries aren't missing but were packed with
the app and installed in the user's home directory, can't the script be
altered so that the 'wish' test fails and the BDT-installation of TCL-TK is
used--as the script not very robustly (because it didn't take into
account versioning) intended in the first place?

Or am I misunderstanding some essential thing?

> Regards,
>
> -Roberto


-- 
"Three prisoners were locked in a cell. When the largest of them finished his
food, he immediately ate the others. Too bad. An apostrophe in the right place
might have prevented a horrible crime." Joe Gunn


Reply to: