Other Help Topics :: Upgrading TCL



Quote (lucky13 @ Dec. 03 2007,13:34)
Do the following:
ls -l /usr/bin/tclsh
ls -l /usr/bin/wish

If these show a link back to the 8.3 verisons of each, then just make new links to the 8.4 versions in /opt/tcltk-etc:

1. Remove the old symlinks as root:
rm -f /usr/bin/tclsh /usr/bin/wish

2. Make new sym-links in your $PATH, e.g.:
ln -s /opt/tcltk-8.4/bin/tclsh8.4 /opt/bin/tclsh
ln -s /opt/tcltk-8.4/bin/wish8.4 /opt/bin/wish

Ok did that all... now it gives me an error:

error while loading shared libraries: libtcl8.4.so: cannot open shared object file: No such file or directory

You're using a uci on a harddrive-installed DSL, correct?

The UCI is built so that you can add libraries to it. Since  UCI is typically read-only, I had to make some unusual changes, as in symlinking the lib directory to a writable directory (/opt/tcltk-libs), and then link the included libriaries from that directory back into the read-only directory. The Tcl/Tk applications should be looking in /opt/tcltk-8.4/lib, which points to /opt/tcltk-libs.
Check to make sure you still have that /opt/tcltk-libs directory.

You would not have these problems if you installed Tcl from source or debian package, which are more appropriate for a traditional debian-style DSL install. MyDSL packages of any kind are not really intended for use on a harddrive install, even though many of them will work. You will probably continue to have occasional problems like these, though, if you continue using myDSL.

.dsl and .tar.gz packages work fine on hard drive installs too..
Yes, they usually do, but they are not *intended* for HD installs and therefore are not designed to cope with things such as upgrading existing applications. As this thread demonstrates, if you already have an application installed in /usr, that particular application cannot be upgraded with a uci or tar.gz mydsl package. Even a dsl package might not work, depending on how it was built. If the original application was in /usr/local and the dsl package installs into /usr, the original program will still be the default. Unless the user understands, at least to a point, how the linux filesystem works and how/where the mydsl package installs, that user will continue to run into issues like this. On the other hand, if a user of a traditional HD install goes with Debian packages (apt, synaptic, dpkg) all applications will install into /usr and these opt-isn't-in-path issues will not exist.

original here.