我在使用 Tcl/Tk 应用程序 redet 和 Ubuntu 18.04 时遇到了问题。我在 17.04 中安装了它,使用 synaptic 以便将其所有依赖项都引入。它在 17.10 中继续工作。升级到 18.04 后,它无法启动并显示以下错误消息。
Error in startup script: can't find package Itcl 3.4
while executing
"package require Itcl 3.4"
(file "/usr/share/tcltk/iwidgets4.1.0/iwidgets.tcl" line 18)
invoked from within
"source /usr/share/tcltk/iwidgets4.1.0/iwidgets.tcl"
("package ifneeded Iwidgets 4.1.0" script)
invoked from within
"package require Iwidgets"
(file "/usr/bin/redet" line 27)
尽管一切都没有改变,所以我相信所有依赖关系都得到了满足,但我还是尝试在安装了 18.04 的另一台机器上使用 synaptic 安装 redet。所有相同的依赖项都已引入,但当我尝试运行 redet 时,我收到了相同的错误消息。通过 Google 搜索,这个问题过去出现在几个与 Tcl/Tk 相关的留言板上,但没有我能理解的明显解决方案。我在 AskUbuntu 上找到的唯一问题(问:安装 fv 工具时出现问题)没有任何回复。
答案1
我可以在仅安装一个redet
软件包的 Ubuntu 18.04 LTS 的全新安装上确认此问题:
$ sudo apt-get install redet
$ redet
Error in startup script: can't find package Itcl 3.4
while executing
"package require Itcl 3.4"
(file "/usr/share/tcltk/iwidgets4.1.0/iwidgets.tcl" line 18)
invoked from within
"source /usr/share/tcltk/iwidgets4.1.0/iwidgets.tcl"
("package ifneeded Iwidgets 4.1.0" script)
invoked from within
"package require Iwidgets"
(file "/usr/bin/redet" line 27)
$ dpkg -S /usr/share/tcltk/iwidgets4.1.0/iwidgets.tcl
iwidgets4: /usr/share/tcltk/iwidgets4.1.0/iwidgets.tcl
$ dpkg -S /usr/bin/redet
redet: /usr/bin/redet
$ echo "puts [package req Itcl]" | tclsh
3.4
所以我举报了错误 1768973到启动板。
快速而简单的解决方法是从 Xenial 下载包,安装并固定:
cd ~/Downloads
wget http://mirrors.kernel.org/ubuntu/pool/universe/i/itcl3/itcl3_3.4.3-1_amd64.deb
sudo apt-get install ./itcl3_3.4.3-1_amd64.deb
cat <<EOF | sudo tee /etc/apt/preferences.d/pin-itcl
Package: itcl3
Pin: version 3.4.3-1
Pin-Priority: 1337
EOF
这些操作redet
正常启动后: