当前位置: 首页 > 知识库问答 >
问题:

如何找出Linenoise无法安装的原因?

柳宏深
2023-03-14

这是在64位Windows 10 Pro和MSVC 2015上实现的。这个问题有很长的篇幅,因为我想事先提供完整的信息,但实际问题相当简单:

在安装失败后,如何让panda保持工作目录(如cpanm所做的),以便诊断出哪里出了问题?

从下面的日志中可以看到,linenoise.dll似乎是在正确的地方创建的,但是到了安装时间,它却无处可寻。

%TEMP%中的panda work目录已不存在。

我只是从源头建造了乐道

  1. git克隆git://github.com/rakudo/rakudo.git
  2. cd rakudo
  3. set CFLAGS=/O2/favor:INTEL64/Qpar
  4. perl配置。pl--gen moar--gen nqp--backends=moar--prefix=c:/opt/perl6
  5. n进行测试
  6. n进行安装
  7. nmake spectest← 自从我上次尝试这个方法以来,失败的次数一直在增加,但这与我的问题无关

然后我安装了panda

  1. git克隆——递归git://github.com/tadzik/panda.git

奏效了。

然后我做到了

panda安装任务::Star

我测试失败了:

==> Building NativeHelpers::Blob
==> Testing NativeHelpers::Blob

t/00-trivial.t ..
Dubious, test returned 5 (wstat 1280, 0x500)
Failed 1/1 subtests

但我强制安装了它,因为我想尽快完成安装。

所以,向前迈进,我做到了:

C:\Users\...\Temp> panda install Linenoise
==> Fetching Linenoise
==> Building Linenoise

Microsoft (R) Program Maintenance Utility Version 14.00.24210.0
Copyright (C) Microsoft Corporation.  All rights reserved.

        cl -c  /nologo /MT /Ox /GL /DNDEBUG  /DWIN32 /DAO_ASSUME_WINDOWS98  /O2 /favor:INTEL64 /Qpar /Folinenoise.obj linenoise.c
linenoise.c
        perl6 -e "mkdir 'resources'; mkdir 'resources/libraries'"
        link /dll /nologo /LTCG  shell32.lib ws2_32.lib mswsock.lib rpcrt4.lib advapi32.lib psapi.lib iphlpapi.lib userenv.lib /out:resources/libraries/libline
noise.dll linenoise.obj
Generating code
Finished generating code
        cl /Foconstant-helper /nologo /MT /Ox /GL /DNDEBUG  /DWIN32 /DAO_ASSUME_WINDOWS98  /O2 /favor:INTEL64 /Qpar constant-helper.c
constant-helper.c
Generating code
Finished generating code
        perl6 fill-constants.pl  lib/Linenoise.pm
==> Testing Linenoise
==> Installing Linenoise
Failed to open file C:\Users\...\Temp\.panda-work\1483278033_1\resources\libraries\linenoise.dll: no such file or directory
  in any  at C:\opt\perl6/share/perl6/runtime/CORE.setting.moarvm line 1
  in block  at C:\opt\perl6\share\perl6\site\sources\85367160D11E565B2D089507C79BC309215430D6 (Panda::Installer) line 61
  in sub indir at C:\opt\perl6\share\perl6\site\sources\24811C576EF8F85E7672B26955C802BB2FC94675 (Panda::Common) line 20
  in method install at C:\opt\perl6\share\perl6\site\sources\85367160D11E565B2D089507C79BC309215430D6 (Panda::Installer) line 42
  in method install at C:\opt\perl6\share\perl6\site\sources\582CB7486602954A4601BDCE5A0EAC54B05DA58A (Panda) line 190
  in method resolve at C:\opt\perl6\share\perl6\site\sources\582CB7486602954A4601BDCE5A0EAC54B05DA58A (Panda) line 263
  in sub MAIN at C:\opt\perl6\share\perl6\site\resources\1C71F7B377C6F2C6C4707E3C25016AA25A2926B1 line 20
  in block  at C:\opt\perl6\share\perl6\site\resources\1C71F7B377C6F2C6C4707E3C25016AA25A2926B1 line 165

Actually thrown at:
  in method throw at C:\opt\perl6/share/perl6/runtime/CORE.setting.moarvm line 1
  in any  at gen/moar/Metamodel.nqp line 3072
  in block  at C:\opt\perl6\share\perl6\site\sources\85367160D11E565B2D089507C79BC309215430D6 (Panda::Installer) line 61
  in sub indir at C:\opt\perl6\share\perl6\site\sources\24811C576EF8F85E7672B26955C802BB2FC94675 (Panda::Common) line 20
  in method install at C:\opt\perl6\share\perl6\site\sources\85367160D11E565B2D089507C79BC309215430D6 (Panda::Installer) line 42
  in method install at C:\opt\perl6\share\perl6\site\sources\582CB7486602954A4601BDCE5A0EAC54B05DA58A (Panda) line 190
  in method resolve at C:\opt\perl6\share\perl6\site\sources\582CB7486602954A4601BDCE5A0EAC54B05DA58A (Panda) line 263
  in sub MAIN at C:\opt\perl6\share\perl6\site\resources\1C71F7B377C6F2C6C4707E3C25016AA25A2926B1 line 20
  in block  at C:\opt\perl6\share\perl6\site\resources\1C71F7B377C6F2C6C4707E3C25016AA25A2926B1 line 165

共有1个答案

沈凯康
2023-03-14

Linenoise的Build.pm文件根本没有正确写入。他们正在硬编码库名称的“lib”前缀,同时还试图在另一个部分使用平台库名称猜测机制。如果它想使用$*VM. Platform-puile-name,那么它需要生成一个名为linenoise.dll的文件,而不是liblinenoise.dll

我也不确定Linenoise即使安装了也能在窗口上工作。

您可能应该使用zef而不是panda。如果是,您可以查看~/上使用的工作目录。zef/store/p6线路噪音。git

 类似资料:
  • 问题内容: 使用在Windows 8上使用Python 2.7给我的错误: 问题: 如何解决错误?运行给出了同样的错误… 问题答案: 您可以改用ol’good 。 不是pip,而是它的一个好方面是也能够下载和安装二进制程序包,这使您无需准备VC ++。当然,这取决于二进制文件是为您的Python版本准备的。 更新: 是的,Pip现在可以安装二进制文件! 有一种新的二进制Python存档格式(whe

  • 我经常遇到问题,因为我在具有多个节点的docker swell上部署的服务无法启动,并且没有生成的日志可以使用查看 服务无法启动有许多可能的原因,例如 无法从注册表下载图像 无法满足的约束 我很难弄清楚为什么集装箱不能启动。我找到了命令,它列出了一个或多个服务的任务和一条简短的错误消息(如果有错误)。但是,当我尝试使用(它应该显示任务的日志)检查任务时,我从守护进程得到。 有人能帮我得到为什么服务

  • readline 的一个替代产品,目前Redis, MongoDB, 和Android都在使用。 单行和多行编辑模式,实现了常用的键绑定。 历史处理。 完成。 提示(键入时,提示右侧的建议)。 大约1,100行BSD许可证源代码。 仅使用VT100转义的子集(与ANSI.SYS兼容)。

  • 所以当我的终端显示我没有python时,我试图安装python,这很奇怪,因为我认为我有。当我试图找到它时,我找不到它,我使用如下命令: 当我试图删除python时(我正在尝试随机操作): 然后此错误将显示:操作无法完成。无法找到Java运行时。请访问http://www.java.com以获取有关安装Java的信息。 当我尝试用安装时 然后会抛出相同的Java错误。 更新:抱歉,我在macOS蒙

  • 问题内容: 我一直在尝试在本地计算机上安装进行测试。我已经安装了Python 2.7.10。当我键入: 它给出一个错误: 我找不到CL.exe,在Google上进行的快速搜索似乎缺少了一些Visual C 编译器。但是,我尝试安装说VC 2008可再发行的x86,但仍然是同样的问题。 知道有什么问题吗?操作系统是Windows 7 64位。 问题答案: 我设法解决了这个问题,尽管这很奇怪。老实说,

  • 本篇教程将详细介绍使用微PE中的第三方windows安装器安装微软原版系统的具体方法流程、注意事项、异常问题解决等。 第三方的Windows安装器利用了与微软原版Windows安装程序一样的原理,直接将系统中的文件,解压到硬盘上,实现最终的安装。 该方式的特点是:安装系统和PE的启动类型、PE的位数无关,以任何方式启动的PE,均能将系统安装至任意分区表类型的硬盘上。 本方法支持的系统:Window