我正在尝试运行一个 Tcl 程序,斯吉尔服务器,在 Ubuntu 18.04.4 LTS 上。
按照说明修改配置文件后,我运行了该程序:
sudo ./sguild
我收到以下错误:
2020-05-10 15:13:29 Error: Failed to load package fileutil::magic::mimetype. fileutil::magic::mimetype is required for HTTPS/WSS.
我确认fileutil
可用:
echo "puts [package req fileutil]" | tclsh
1.16
并且这fileutil::magic::mimetype
是不可用的:
echo "puts [package req fileutil::magic::mimetype]" | tclsh
can't find package fileutil::magic::mimetype
我运行了以下命令,这表明fileutil
包含在中tcllib
:
dpkg -S tcl | grep fileutil
tcllib: /usr/share/doc/tcllib/html/fileutil.html
tcllib: /usr/share/tcltk/tcllib1.19/fileutil/pkgIndex.tcl
tcllib: /usr/share/tcltk/tcllib1.19/fileutil
tcllib: /usr/share/tcltk/tcllib1.19/fileutil/multi.tcl
tcllib: /usr/share/tcltk/tcllib1.19/fileutil/traverse.tcl
tcllib: /usr/share/tcltk/tcllib1.19/fileutil/fileutil.tcl
tcllib: /usr/share/tcltk/tcllib1.19/fileutil/multiop.tcl
tcllib: /usr/share/tcltk/tcllib1.19/fileutil/decode.tcl
tcllib: /usr/share/man/man3/fileutil.3tcl.gz
该tcllib
包已经安装:
apt list tcllib
Listing... Done
tcllib/bionic,bionic,now 1.19-dfsg-2 all [installed]
知道为什么fileutil::magic::mimetype
加载失败吗,或者哪个包提供了它?
答案1
正如 @steeldriver 指出的那样,该fileutil::magic::mimetype
库不再是 Tcl 库的一部分,但其功能现在可在 中使用fileutil::magic::filetype
。此库在tcllib
包中可用。
(这似乎是 Tcl 8.6 的变化,该版本在 Ubuntu 18.04.4 LTS 的 bionic 存储库中可用。我检查了装有 Tcl 8.5 的 CentOS 7 机器,发现该fileutil::magic::mimetype
库存在。)
fileutil::magic::mimetype
就我而言,我可以通过将 Sguil 应用程序代码中的引用从 更新为 来解决错误fileutil::magic::filetype
。