Subject: | |
From: | |
Reply To: | |
Date: | Mon, 12 May 2008 20:57:52 +0100 |
Content-Type: | TEXT/PLAIN |
Parts/Attachments: |
|
|
On Mon, 12 May 2008, Shane Voss wrote:
> John Summerfield wrote:
<snip>
>> > Am I missing something?
>> >
>> > Shane
>> >
>> This?
>> package require Tclx
>>
>
> Sorry John, I've either missed something else or you need to use more words.
>
> On my system, I have installed tclx using the above named RPM.
> I can see that it has installed /usr/lib/tclx8.4/libtclx8.4.so but when I
> then try to run an executable which has been built against it, it fails to
> load because that file can't be found.
>
> If I tweak my system or my environment I can make it work. My question is
> shouldn't a well behaved RPM do that for me?
Code using the tclsh/wish interpretter should just need to ask for the
tclx to be loaded using the package require magic.
Recent versions of tclx are implemented as a tcl extension and the loading
of any shared libraries (as needed) happens when the tcl interpretter
pulls in the tclx package.
If a binary is explictly linked against libtclx (part of the requirements
for some embeded tcl/tclx stuff perhaps) then it almost certainly wasn't
compiled against *this* version of tcl/tclx - so all bets are probably off
and who can tell if it will work.
In earlier versions of sl (3,4 anyway) the tclx (8.3.x) package was rather
more complicated because it essentially was a complete additional tcl
system (and it provided the the /usr/bin/tcl, /usr/bin/wishx commands
etc). With sl5 the tcl is the newer 8.4 release so tclx no longer needs
to implement so much itself... Also note that many features from tclx
have migrated over to standard tcl over the years so the code might not
actually need tclx any more.
See http://wiki.tcl.tk/207 for a bit more info about tclx history.
What binaries do you have that explicitly link against libtclx? Where
were they built? What does ldd show them as requesting? Maybe the app
just needs rebuilding, or if it dates from before tcl-8.4 it might need a
bit more work first.
So why does the tclx rpm run ldconfig in %post etc? I don't know for sure
but just *maybe* that is to cope with an upgrade from the older tclx which
did put libtclx etc into %{_libdir} (/usr/lib{,64}/ as appropriate).
--
Jon Peatfield, Computer Officer, DAMTP, University of Cambridge
Mail: [log in to unmask] Web: http://www.damtp.cam.ac.uk/
|
|
|