我正在尝试从cpan shell"安装SGML :: Parser :: OpenSP",但它在第一次"make test"时失败了.如果我进入构建目录并运行make test,我也会得到同样的错误.
我相信以下输出的这一部分是相关部分.注意当perl到达新库的"use"行时找不到符号.其中列出的文件存在且可读.当我运行unix命令"nm"时,它确实显示了符号.
我不知道该怎么做的符号未找到错误.如果重要的话,我不是以admin/root身份运行的.这是在Mac上,10.4.11我的谷歌搜索出现了一些提示,如果调用gcc而不是g ++,这可能会发生,但我相信这是正确设置的.
还有什么,我该如何解决?
以下是运行make test的摘录:
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/01basic...........1/4
# Failed test 'use SGML::Parser::OpenSP;'
# at t/01basic.t line 14.
# Tried to use 'SGML::Parser::OpenSP'.
# Error: Can't load '/Users/joshgold/.cpan/build/SGML-Parser-OpenSP-0.994/blib/arch/auto/SGML/Parser/OpenSP/OpenSP.bundle' for module SGML::Parser::OpenSP: dlopen(/Users/joshgold/.cpan/build/SGML-Parser-OpenSP-0.994/blib/arch/auto/SGML/Parser/OpenSP/OpenSP.bundle, 2): Symbol not found: __ZTI15SGMLApplication
# Referenced from: /Users/joshgold/.cpan/build/SGML-Parser-OpenSP-0.994/blib/arch/auto/SGML/Parser/OpenSP/OpenSP.bundle
# Expected in: dynamic lookup
# at (eval 3) line 2
# Compilation failed in require at (eval 3) line 2.
# …Run Code Online (Sandbox Code Playgroud) 我已经设定
makepl_arg [INSTALLDIRS=site PREFIX=~/perl]
mbuildpl_arg [--install_base ~/perl]
Run Code Online (Sandbox Code Playgroud)
在CPAN.pm配置中.我曾希望这会导致模块安装在同一个地方,但我仍然需要在PERL5LIB中设置多个路径:
export PERL5LIB=~/perl/share/perl/5.10.0:~/perl/lib/perl5/:~/perl/lib/perl/5.10.0
Run Code Online (Sandbox Code Playgroud)
这种情况已经存在了很长时间,我刚刚和它一起生活,但我想知道是否有人知道如何让CPAN.pm将所有模块放在同一目录中?
我想安装一个Perl模块(在本例中为FindBin),但由于它包含在Perl 5.10.1发行版中,所以cpan想为我安装Perl 5.10.有没有办法只安装模块cpan?
我能看到的唯一选择是直接从源代码安装,这看起来有点粗糙,因为没有单独的软件包(例如Makefile.PL,等等),只是裸.pm文件.
由于这是一个只有一个文件的小模块,在这种情况下它是可行的,但如果我想安装一个更大的包呢?
编辑:这是从原来的问题有点一边,但说话的模块的一般问题被包装以Perl分布:我发现,"独立" FindBin(版本1.49)有一个语法错误,所以我取回1.50版本出来的Perl 5.10.1发行版...但是由于模块现在作为Perl 5.10的一部分在CPAN上列出,我无法找到描述此delta中更改/修复内容的CHANGES文件.我是否应该进入开发者存储库来提取这些信息是否合理?)
编辑2.好的,这是一个更好的例子.在Perl 5.8.8上我有1.04版本的Carp.但是,我看到Perl 5.10.1与1.11版打包在一起.有没有办法让CPAN为我安装最新版本的Carp而不会拖延所有的Perl 5.10.1?除了perl 5.10.1安装之外,我甚至找不到CPAN上Carp模块的链接.
您能告诉我为了获得CPAN帐户而需要遵循的步骤吗?我想贡献一些模块.前段时间,我试图创建一个帐户,我记得我收到了一封包含以下文字的邮件:
The following links are only valid for PAUSE maintainers: 并且有2个链接:
Registration form with editing capabilities:和
Immediate (one click) registration:我记得我点击了Immediate registration它,但它问了我的用户名和密码.我不知道该怎么做.我走错了方向吗?有没有人有一步一步的帐户注册教程?
在Perl中推荐日期算术的推荐方法是什么?
比如我想知道三天前从今天开始的日期(其中today= 2010-10-17和today - 3 days= 2010-10-13).你会如何在Perl中做到这一点?
我正在编写一个我希望与其他人分享的perl程序,最终通过cpan.它已经到了我应该开始更大规模地考虑这一点的地步.
十年前,我曾经使用过h2xs包装制造商.这仍然是最值得推荐的入门方式吗?曾经有过几种选择.因为我从头开始时只有很少的回忆,在这一点上任何简单的事情都会做.
我需要阅读一些长文本文件(而不是perl模块)进行配置.无论模块安装在何处,我在哪里放置它们以及如何访问它们?(FindBin?) _ DATA _不方便.
我需要提供一个可执行文件(linux和osx).可以将可执行文件放入用户的路径中作为模块安装的一部分吗?(怎么样?)
我希望能够继续开发它,为测试目的运行它,拥有一个新版本,重新打包它,并轻松地重新上载它.
在上传到cpan之前,我可以共享一个cpan软件包,以方便本地安装到下载器和测试人员吗?
#cpan <mybundle.cpanbundle
建议赞赏.
问候,
/ IAW
我正在尝试在我的RHEL6.1服务器上安装Perl模块DBD :: Oracle.在这样做的同时,我遵循了以下步骤:
安装以下RPM:
导出环境变量
export ORACLE_HOME=/usr/lib/oracle/12.1/client64
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib
安装DBD :: Oracle
cpan -i DBD::Oracle
这样做时,它会给出以下错误消息:
Installing on a linux, Ver#2.6
Using Oracle in /usr/lib/oracle/12.1/client64
DEFINE _SQLPLUS_RELEASE = "1201000200" (CHAR)
Oracle version 12.1.0.2 (12.1)
Unable to locate an oracle.mk or other suitable *.mk
file in your Oracle installation. (I looked in
/usr/lib/oracle/12.1/client64/rdbms/demo/demo_xe.mk /usr/lib/oracle/12.1/client64/rdbms/lib/oracle.mk /usr/lib/oracle/12.1/client64/rdbms/demo/oracle.mk /usr/lib/oracle/12.1/client64/rdbms/demo/demo_rdbms.mk /usr/lib/oracle/12.1/client64/rdbms/demo/demo_rdbms64.mk /usr/lib/oracle/12.1/client64/rdbms/lib/ins_rdbms.mk /usr/share/oracle/12.1/client64/demo.mk under /usr/lib/oracle/12.1/client64)
The oracle.mk (or demo_rdbms.mk) file is part of the Oracle
RDBMS product. You need to build DBD::Oracle …Run Code Online (Sandbox Code Playgroud) 如果模块A依赖于模块B并且模块B已升级,则A可能因更改而中断.我的想法是重新测试两者A和B升级后B.
我认为最简单的方法就是重新测试可以重新测试的所有内容:从CPAN下载每个已安装的模块并执行其测试脚本.
有没有办法下载和重新测试?
如果没有办法,是否有任何助手/ API,所以我可以实现这样的工具?
我基本上需要
将 Ubuntu 16.04 LTS 升级到 18.04 LTS 后,所有 Perl 模块和“cpan”都停止工作。每次我运行我的脚本时都会导致错误
threads.c: loadable library and Perl binaries are mismatched (got handshake key 0xdb00080, needed 0xde00080)
Run Code Online (Sandbox Code Playgroud)
当我尝试打开 cpan 它显示
Cwd.c: loadable library and Perl binaries are mismatched (got handshake key 0xdb00080, needed 0xde00080)
Run Code Online (Sandbox Code Playgroud)
我在 ubuntu 16.04 中安装了“Cwd”、“threads”模块,其中 Perl 版本为 5.22.1,而在 ubuntu 18.04 中,Perl 版本为 5.26.1。
我试图删除旧版本的模块但失败了。我删除了 ~/.cpan 文件夹中的内容。
PS:在root用户下一切正常。如果我跑
sudo su
cpan
Run Code Online (Sandbox Code Playgroud)
完美地工作。但是作为普通用户,我无法运行任何 perl 模块/脚本/cpan。
如何更正问题?如何重新安装 cpan 或 cpan 模块?
我尝试重新安装 Perl,但没有帮助
sudo apt-get --reinstall install perl
sudo apt-get --reinstall install libcwd-guard-perl …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的 Windows 机器上安装“nipe”,但我一直收到此错误代码。我已经安装了 Strawberry Perl。
这是错误代码:
Can't locate CPAN/Author.pm in @INC (you may need to install the CPAN::Author module) (@INC contains: /usr/lib/perl5/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl) at /usr/share/perl5/core_perl/CPAN.pm line 19.
BEGIN failed--compilation aborted at /usr/share/perl5/core_perl/CPAN.pm line 19.
Compilation failed in require at /usr/share/perl5/core_perl/App/Cpan.pm line 290.
BEGIN failed--compilation aborted at /usr/share/perl5/core_perl/App/Cpan.pm line 290.
Compilation failed in require at /c/Strawberry/perl/bin/cpan line 7.
BEGIN failed--compilation aborted at /c/Strawberry/perl/bin/cpan line 7.
Run Code Online (Sandbox Code Playgroud)