为什么创建 GTK 应用程序会导致依赖项错误?

Why does creating a GTK app cause a dependency error?

我想使用 Perl 6 测试一些 GTK::Simple 应用程序片段:

use GTK::Simple;

my GTK::Simple::App $app .= new;
$app.border_width = 20;
$app.set_content(GTK::Simple::Label.new(text => "Goodbye, World!"));
$app.run;

来自 RosettaCode.

但是我得到了一个有趣的错误:

$ perl6 gui.perl6
===SORRY!===
Failed to open file /home/cat/.perl6/2015.12-221-g85d20f3/precomp/81A1D2D4AD67A53BB9FDD05C0772E081A53D528B.1453913647.88375/D0/D0F2A6FBB788535370F2DE11458DE9A2F602F27A.deps: no such file or directory

touch 编辑了那个文件名,但得到了一个不同的错误(所以它必须包含一些特定的东西,而不仅仅是一个锁):

===SORRY!===
Missing or wrong version of dependency '/home/cat/.rakudobrew/moar-nom/install/share/perl6/sources/D57DE2EF74B56D825F14A3B5B0E6402D49B53D5B' (from '/home/cat/.rakudobrew/moar-nom/install/share/perl6/site/sources/D0F2A6FBB788535370F2DE11458DE9A2F602F27A')

这些文件名包含一堆 Perl 6 类 和方法,显然与 GTK 相关。

我用 panda install GTK::Simple 安装了 GTK::Simplepanda 声称安装正确。

这是怎么回事,我该如何解决?


我不确定这是否是 Rakudo / Moar 中的错误,但如果是,我不反对关闭此问题。

这个"just works" (tm) 对我来说。我是 运行 This is Rakudo version 2015.12-232-ga5fe347 built on MoarVM version 2015.12-29-g8079ca5 implementing Perl 6.c. 此外,该模块在此处有一个稍微复杂的示例:Example 01_hello_world.p6 同样逐字工作。 模块自述文件;

此模块需要安装 GTK3 库。

在 Debian 上安装它 Linux:

sudo apt-get install libgtk-3-dev

我准确地键入了那个命令,然后是 panda install GTK::Simple。我没有使用 GTK 的经验,但乍一看 - 可能是您的本地安装有问题?

如果您是通过 rakudobrew 安装的,它会安装在您位于 ~/.rakudobrew 的主目录中。您可以相对轻松地 rm -rf -i ~/.rakudobrew 并重新开始。当然,如果这会删除您的硬盘并杀死您的整个家庭,您将不得不为您决定采取的任何行动负责;-)。 PS 感谢您引导 GTK:Simple。顾名思义,GTK window 应用程序再简单不过了。

我没有太多,但我写这篇文章是为了推动事情发展。

What's happening?

我知道你知道这一点,但对于那些正在阅读的人来说,它没有找到它期望找到的文件。

您几乎可以肯定安装有问题。

What can I do to fix it?

我建议您核对您的 Rakudo 安装(rm -rf 或等同物或 rakudobrew nuke moar)并重新安装。如果这不起作用 visit #perl6-toolchain, leave a message, and either hang out on the channel for an answer or read the logs 稍后。

这就是我建议的原因:

我通过手动检查发现的唯一有趣的结果 a google search of the #perl6 log for 'Failed to open file' are a case from December and a case from January

在第一种情况下,根据日志重建解决了问题。

在第二种情况下,对 Perl 6 的相关部分相当了解的人说 "time to nuke your install"。我没有找到任何后续讨论来确认这是否有效。

如果需要的话,我希望在几天内再次访问,以便再次推进。