【问题标题】:Tcl cant find init.tcl in a snap packageTcl 在 snap 包中找不到 init.tcl
【发布时间】:2017-01-03 18:25:14
【问题描述】:

在常规系统中,如果必须,我可以导出库以阻止 tcl 抱怨找不到 init.tcl。 我正在构建一个 snap 包来分发 tcl。一旦构建和安装,我可以运行 tcl.tclsh(这是维护 snap 名称空间的形式),它会抱怨上述抱怨并停留在 tclsh 提示符中。我可以很好地运行 tcl 脚本。但是,我无法执行另一个名为 wish 的二进制文件。这具有快照名称 tcl.wish。 这两个都在同一个快照中,并且有问题的文件 init.tcl 存在于库位置 tcl 抱怨找不到。 我相信我需要在 tclsh 执行之前导出必要的库位置,以便它可以找到这个文件。我试过这个,包括这些路径的回声,所以我知道它被执行了。这有效,但仍然没有帮助。我想我只是被不止一件事难住了。我不是 tcl pro 并且 snappy 包是新的并且命令总是在不断发展。我可以使用组织命令将所有二进制文件移动到 /bin 并将所有库移动到 /lib,或者我可以将它们完全按照 tcl 的期望放置。我投票赞成将文件按预期放置。 我的问题:

  1. tcl 和 tk 是否有一组明确定义的预期位置?开箱即用的理想设置?
  2. 我可以将 init.tcl 移动到它知道的路径中的位置吗? 我已经避免将这些库路径放在 bashrc 中,因为这只会解决我的情况,但不能解决在他们的机器上安装它的人。运行快照包时应该进行任何路径设置...我认为。

对长度感到抱歉。我想澄清一下,无论这是否重要,我们都是在一个活泼的环境中处理 tcl。我知道我错过了显而易见的事情,因为 snapcraft 应该将这些文件放在 .deb 告诉它的位置,并且我在计算机上的安装工作正常。 $ export -p 不显示任何 tcl 或 tk

【问题讨论】:

    标签: snapcraft


    【解决方案1】:

    这里是任何想要尝试的人的解决方案。 Tcl 抱怨找不到 init.tcl 并且希望甚至没有启动。我尝试了各种方法来导出文件所在的路径,但没有成功。我注意到在生成快照包时,会为每个公开的二进制文件生成一个包装器。在这个包中,我创建了两个二进制文件 - tclsh 和 wish。由于没有成功导出,我将包装文件复制到 snapcraft.yaml 文件所在的位置,因为清理系统会杀死之前生成的所有文件。我在每个包装器中添加了以下内容:

    export TCL_LIBRARY=$SNAP/usr/share/tcltk/tcl8.6:$TCL_LIBRARY:$TK_LIBRARY
    export TK_LIBRARY=$SNAP/usr/share/tcltk/tk8.6:$TK_LIBRARY:$TCL_LIBRARY
    

    然后我编辑了apps: 部分以反映包装器的使用,而不是直接二进制调用。

    apps:
      tclsh:
        command: tclsh.wrapper #used to be just tclsh without the benefit of a wrapper with exports in it
        plugs: [home, unity7, network, x11]
      wish:
        command: wish.wrapper # same as above
        plugs: [home, unity7, network, x11]
    

    最后,在我的胶水部分,我加入了这些包装器:

    glue:
      plugin: copy
        files:
          tclsh.wrapper: usr/bin/tclsh.wrapper
          wish.wrapper: usr/bin/wish.wrapper
    

    然后我制作了 snap 包并安装了它。 tclsh 和 wish 都按预期工作,没有任何抱怨。

    tclsh 的执行命令是 tcl.tclsh,wish 是 tcl.wish

    【讨论】:

      猜你喜欢
      • 2013-10-15
      • 2011-07-28
      • 2013-06-01
      • 2023-03-07
      • 2017-06-30
      • 2016-03-18
      • 2016-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多