#2273 init.tcl not found

obsolete: 8.4.1
Mo DeJong
Thomas Koeller

I just built and installed Tcl8.4.1 on Linux. The command
line to configure the package was

~/src/tcl8.4.1/unix/configure --prefix=/usr
--enable-threads --mandir=/usr/share/man

I then compiled and installed:

~/build/tcl8.4.1 $ su -mc "make install"
Installing libtcl8.4.so to /usr/lib/
Installing tclsh as /usr/bin/tclsh8.4
Installing tclConfig.sh to /usr/lib/
Installing libtclstub8.4.a to /usr/lib/
Installing header files
Installing library files to /usr/lib/tcl8.4
Installing library http1.0 directory
Installing library http2.4 directory
Installing library opt0.4 directory
Installing library msgcat1.3 directory
Installing library tcltest2.2 directory
Installing library encoding directory
Installing top-level (.1) docs
Cross-linking top-level (.1) docs
Installing C API (.3) docs
Cross-linking C API (.3) docs
Installing command (.n) docs
Cross-linking command (.n) docs

But when I tried to run tclsh, I got:

~/build/tcl8.4.1 $ tclsh
application-specific initialization failed: Can't find a
usable init.tcl in the following directories:
/usr/share/tcl8.0 /usr/usr/share/tcl8.0 /share/tcl8.0

This probably means that Tcl wasn't installed properly.

% exit

There is an 'init.tcl' file in /usr/lib/tcl8.4, but the error
persists even after creating a symbolic link
/usr/share/tcl8.4 -> /usr/lib/tcl8.4


  • Mo DeJong
    Mo DeJong

    • status: open --> closed-invalid
  • Mo DeJong
    Mo DeJong

    Logged In: YES

    This is not a bug. It sounds like you have destroyed the system
    install of Tcl by installing the new version over it. Tcl should
    be started via tclsh8.4 if you are using 8.4. You are
    running tclsh
    which starts the system verison, but that was just broken
    you installed 8.4 over it.

  • Don Porter
    Don Porter

    Logged In: YES

    Are you sure you are running the
    program you just installed?
    A `make install` for Tcl 8.4.1
    will install a program named
    tclsh8.4. It will not install a
    program named tclsh. You have
    to set that link up yourself.

    Check `which tclsh` to see what
    program you are really running.