【问题标题】:tcl tk teacup install from filetcl tk teacup 从文件安装
【发布时间】:2023-03-15 16:13:01
【问题描述】:

您好,我正在尝试安装最新版本的 treectrl (http://tktreectrl.sourceforge.net/),但是如果我运行 teacup install file://C:/tktreeunzipFolder,则错误无法覆盖文件。

该文件是临时文件夹中由脚本生成的文件。用茶杯从目录/tar.gz 安装包的正确方法是什么?

(我想使用本地版本,因为我想以2.4.1的新方式使用列标题,因为我希望其他方法很快就会贬值)

我还想知道如何在不安装的情况下使用带有预编译部分的包。 IE。一旦我将包文件放在我运行的脚本的子目录中,是否需要任何特殊步骤才能使包可访问。 (我不允许在一台机器上安装软件包,但我想在一个脚本中使用它们)。我是否必须以某种方式注册文件(dll/so)? (注意我不能在 linux 上使用 sudo)。

将 dll/package 添加到工作目录的子目录会产生以下错误(在 windows 下):

无法加载库 “Z:/files/tcl/encounterXtract/treectrl_win/treectrl24.dll”:无效 争论 在执行“加载 Z:/files/tcl/encounterXtract/treectrl_win/treectrl24.dll tr​​eectrl”时 ("package ifneeded treectrl 2.4.1" 脚本) 从“package require treectrl”中调用

旁注:

在 linux/unix 下,只需将文件放在子目录中即可 并使用lappend auto_path path_to_sub_dir将其添加到auto_path

【问题讨论】:

    标签: tcl tk


    【解决方案1】:

    首先,您必须以有权写入已安装软件包的本地存储库的用户身份运行命令。对于 Windows,可能要求您以管理员身份运行 teacup install(注意,我不确定 tktreectrl 的安装包是否称为 tktreectrl.dll;我怀疑它被称为其他名称,但不要'不知道是什么):

    runas /user:administrator "茶杯安装 C:\path\to\tktreectrl.dll"

    然而,主要的茶杯档案没有携带 treectrl 2.4.1 包的事实本身就是一个问题。你有没有试过给ActiveState的人打个电话?

    【讨论】:

    • 我以具有几乎完全管理员权限的用户身份从 tcl-shell 运行 teacup(从头开始安装包括 tcl 在内的软件)。我想知道如果我按照您的指示提供的 pkgIndex.tcl 文件和 dll 随附的 treectrl.tcl 文件会发生什么情况。能够将 dll 放在子目录中并从那里加载对我来说就足够了。但是,如果我尝试这样做,则会将错误添加到问题中。
    • 我询问了活动状态,感谢您提供的深层链接,如果您有兴趣:community.activestate.com/node/8689。而且我想您知道为什么茶杯更新对我不起作用,该文件不在我的存储库中