找不到来自tcllib的软件包

TM90

我有一个奇怪的问题,我正在使用fedora 20并在系统上安装了tcllib。

但是,如果我在示例中使用package require uri,则会得到未找到响应的软件包。

有谁知道这里的问题是什么,或者如何确定是否在软件包索引中添加了tcllib?

多纳研究员

Tcl通过两种方式查找软件包:withauto_path和with tcl::tm::path

1.auto_path传统机制。

当您这样做时package require,程序包管理器将查看该程序包是否已经存在,或者是否存在用于从文件系统获取程序包的说明。如果这两个都不成立,它会要求package unknown处理程序加载它(严格来说,这是使用package unknown命令安装的处理程序)。该处理程序的默认实现是通过pkgIndex.tcl在的目录auto_path及其直接子目录中查找文件来加载程序包

auto_path是一个全局变量,其中包含要搜索的目录Tcl列表您可能只是lappend在正确的位置。pkgIndex.tcl是一个Tcl脚本,它描述如何通过调用适当的package ifneeded命令来使程序包可用实际的负载

一旦没有需要的软件包,但是获得软件包的说明却,Tcl只会简单地eval说明这些内容:它们只是一个普通的旧脚本(通常只是调用source和/或load执行繁琐的工作)。

2. Tcl模块-新的(在8.5中)机制。

Tcl模块系统使用由该tcl::tm::path命令管理的其他搜索系统tcl::tm::path list子命令将告诉您它的外观(老实说,这是一个很大的列表),您可以使用该tcl::tm::path add子命令来扩展路径以查找更多位置。Tcl模块将整个程序包放置在一个文件中(带有扩展名.tm),并具有结构化名称,以便避免使用单独的pkgIndex.tcl文件。TM加载器可以package ifneeded从文件名本身合成调用(在所有情况下,此操作都是用source;通过一些巧妙的方法将二进制代码打包在文件中,以便可以对其进行load编辑,但它们远远超出了此答案的范围) 。

到那时,source当实际需要该软件包时,您将返回到文件的。无论您使用的是模块还是传统的包装,该部分都是相同的。

该模块系统比传统的搜索机制要快得多,因为它不需要打开任何文件来确定要做什么:它只需使用glob正确的选项即可。但是,它在打包方式上不太灵活:多文件包(例如,几乎您自己制作的任何东西)都不能打包成模块(当然,如果没有额外的工作的话)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Jupyer Notebook中找不到来自Conda env的软件包

来自分类Dev

在应用程序中看不到来自Ubuntu Software Center的软件包

来自分类Dev

找不到来自其他捆绑包的路线

来自分类Dev

转到-找不到软件包“ appengine”

来自分类Dev

找不到pypi中的软件包

来自分类Dev

找不到Laravel软件包特征

来自分类Dev

找不到JavaFX软件包

来自分类Dev

找不到Acra lib软件包

来自分类Dev

找不到软件包“ cairo”

来自分类Dev

CMake找不到CxxTest软件包

来自分类Dev

找不到Tensorflow软件包

来自分类Dev

问题:找不到软件包“ libcrypto”

来自分类Dev

找不到软件包“ cairo”

来自分类Dev

找不到或安装软件包“自由”

来自分类Dev

找不到软件包gdebi

来自分类Dev

找不到软件包“ ncurses”

来自分类Dev

找不到刚刚安装的软件包

来自分类Dev

找不到pypi中的软件包

来自分类Dev

FreeBSD 10.2找不到软件包

来自分类Dev

R即使在安装软件包后也找不到软件包

来自分类Dev

成功安装软件包后找不到Python软件包

来自分类Dev

安装软件包:找不到软件包“ Microsoft.AspNet.WebApi.Cors”

来自分类Dev

R即使在安装软件包后也找不到软件包

来自分类Dev

找不到软件包vesta,vesta-nginx和vesta-php的软件包

来自分类Dev

成功安装软件包后找不到Python软件包

来自分类Dev

OS X软件包安装问题:找不到gfortran 4.8来构建软件包

来自分类Dev

作曲者:找不到所请求的PEAR软件包

来自分类常见问题

Spring Boot项目构建失败-找不到软件包

来自分类Dev

找不到软件包“ libxml-2.0”