Не удается найти пригодный файл init.tcl и конфликтную версию tcl
Я только что загрузил версию этого программного обеспечения для Linux ( http://inano.au.dk/about/research-centers/nmr/software/simpson/) после распаковки запускаемого файла sudo bash install.sh
и все зависимости были установлены на моем Ubuntu 18.04, однако, когда я пытаюсь запустить тестовый файл с помощью simpson test.in
это дает мне следующие ошибки
SIMPSON is unable to initialize Tcl interpreter. Is init.tcl on your path?
Error: Can't find a usable init.tcl in the following directories:
/usr/share/simpson/tcl8.6 /usr/share/tcltk/tcl8.6 ./lib/tcl8.6 ./lib/tcl8.6 ./library ./library ./tcl8.6.5/library ./tcl8.6.5/library
/usr/share/tcltk/tcl8.6/init.tcl: version conflict for package "Tcl": have 8.6.5, need exactly 8.6.8
version conflict for package "Tcl": have 8.6.5, need exactly 8.6.8
while executing
"package require -exact Tcl 8.6.8"
(file "/usr/share/tcltk/tcl8.6/init.tcl" line 19)
invoked from within
"source /usr/share/tcltk/tcl8.6/init.tcl"
("uplevel" body line 1)
invoked from within
"uplevel #0 [list source $tclfile]"
Кто-нибудь может мне с этим помочь? Я думаю, это должно быть просто, но я новичок в этом
2 ответа
Я думаю, что проблема в том, что simpson
Установщик поставляется с собственными (устаревшими) версиями libtcl8.6.so
(среди других общих библиотек), который конфликтует с "системной" версией.
Я бы предложил установить ВСЕ соответствующие пакеты (FFTW, BLAS и т. Д.) Из репозиториев Ubuntu, а затем закомментировать TCL_LIBRARY
а также LD_LIBRARY_PATH
экспорт в <bindir>/simpson
скрипт-обёртка, где <bindir>
это местоположение, которое вы указали в сценарии установки, так что связанные библиотеки полностью игнорируются.
Так, например, если <bindir>
является ~/bin
, затем ~/bin/simpson
должен выглядеть примерно так
#!/bin/sh
#export TCL_LIBRARY=/home/steeldriver/share/tcl8.6
#export LD_LIBRARY_PATH=/home/steeldriver/share
/home/steeldriver/share/simpson4.2.1 "$@"
У меня была та же проблема, и я хотел быстро обновить эту ветку, рассказав, как я ее решил: вы были правы, SIMPSON поставляется со своей собственной общей библиотекой tcl, которая и является проблемой. Файл назывался
libtcl8.6.so
, который был у меня в папке
/usr/share/simpson
. Я просто удалил этот файл и все заработало.