1
votes

I'm getting an error = ERROR: TclError("error initializing Tk: version conflict for package \"Tcl\": have 8.5.15, need 8.6")while installing the package Winston for Julia.

this is my stack trace

 julia> using Winston
    ERROR: TclError("error initializing Tk: version conflict for package \"Tcl\": have 8.5.15, need 8.6")
     in init at /home/laptop/.julia/v0.2/Tk/src/tkwidget.jl:61
     in include at boot.jl:238
     in include_from_node1 at loading.jl:114
     in include at boot.jl:238
     in include_from_node1 at loading.jl:114
     in reload_path at loading.jl:140
     in _require at loading.jl:58
     in require at loading.jl:46
     in include at boot.jl:238
     in include_from_node1 at loading.jl:114
     in include at boot.jl:238
     in include_from_node1 at loading.jl:114
     in reload_path at loading.jl:140
     in _require at loading.jl:58
     in require at loading.jl:43
    at /home/laptop/.julia/v0.2/Tk/src/tkwidget.jl:452
    at /home/laptop/.julia/v0.2/Tk/src/Tk.jl:25
    at /home/laptop/.julia/v0.2/Winston/src/tk.jl:1
    at /home/laptop/.julia/v0.2/Winston/src/Winston.jl:2699

ubuntu 14.04 I autoremoved julia and I install it back but the error remains.

1
Within Julia, have you tried Pkg.update() and Pkg.build("Tk")? Perhaps post the output from those commands if the problem persists after running them. - mbauman

1 Answers

2
votes

I've had the same problem and found that I've got both 8.5 and 8.6 installed on my system and that the installer somehow managed to use the wrong library. (There already is a bug filed against Tk.jl for this.)

The filename is hardcoded in a file named deps.jl in some path below your ~/.julia directory. Running

sed -i -re 's#libtcl8.5.so#libtcl8.6.so#' ~/.julia/v0.3/Tk/deps/deps.jl

to alter Julia's configuration file should do the trick.