2009年12月9日星期三

[PerlChina] Re: 安装mod_perl modperl_xsinit.c:30: 错误

我用CPAN 安装ExtUtils::Embed时,提示can't locate ExtUtils::Embed.pm
不知道 是怎么回事。"perl -v"、"uname -a"及安装时的输出如下。请指点。谢谢
 
 
[linhy@fc12onlaptop ~]$ perl -v
 
This is perl, v5.10.0 built for i386-linux-thread-multi
 
Copyright 1987-2007, Larry Wall
 
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
 
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
 
[linhy@fc12onlaptop ~]$ uname -a
Linux fc12onlaptop 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686 i686 i386 GNU/Linux
 

[linhy@fc12onlaptop ~]$ perl -MCPAN -e shell
Terminal does not support AddHistory.
 
cpan shell -- CPAN exploration and modules installation (v1.9402)
Enter 'h' for help.
 
cpan[1]> install ExtUtils::Embed
CPAN: Storable loaded ok (v2.18)
Going to read '/home/linhy/.cpan/Metadata'
  Database was generated on Thu, 10 Dec 2009 05:43:18 GMT
Running install for module 'ExtUtils::Embed'
CPAN: YAML loaded ok (v0.70)
Running make for D/DO/DOUGM/ExtUtils-Embed-1.14.tar.gz
CPAN: Digest::SHA loaded ok (v5.47)
CPAN: Compress::Zlib loaded ok (v2.008)
Checksum for /home/linhy/.cpan/sources/authors/id/D/DO/DOUGM/ExtUtils-Embed-1.14.tar.gz ok
Scanning cache /home/linhy/.cpan/build for sizes
............................................................................DONE
CPAN: Archive::Tar loaded ok (v1.46)
Will not use Archive::Tar, need 1.00
ExtUtils-Embed-1.14/
ExtUtils-Embed-1.14/eg/
ExtUtils-Embed-1.14/eg/buildall
ExtUtils-Embed-1.14/eg/README
ExtUtils-Embed-1.14/eg/perl_eval_pv.c
ExtUtils-Embed-1.14/eg/call_anon.c
ExtUtils-Embed-1.14/eg/testall
ExtUtils-Embed-1.14/eg/showtime.pl
ExtUtils-Embed-1.14/eg/persistent.pl
ExtUtils-Embed-1.14/eg/cleanall
ExtUtils-Embed-1.14/eg/match.c
ExtUtils-Embed-1.14/eg/script.pl
ExtUtils-Embed-1.14/eg/persistent.c
ExtUtils-Embed-1.14/eg/interp.c
ExtUtils-Embed-1.14/eg/regex.pl
ExtUtils-Embed-1.14/eg/string.c
ExtUtils-Embed-1.14/eg/hashref.pl
ExtUtils-Embed-1.14/eg/regex.c
ExtUtils-Embed-1.14/eg/build
ExtUtils-Embed-1.14/eg/hashref.c
ExtUtils-Embed-1.14/eg/power.pl
ExtUtils-Embed-1.14/eg/multiplicity.c
ExtUtils-Embed-1.14/eg/orig-match.c
ExtUtils-Embed-1.14/eg/power.c
ExtUtils-Embed-1.14/eg/showtime.c
ExtUtils-Embed-1.14/eg/uri-url.c
ExtUtils-Embed-1.14/t/
ExtUtils-Embed-1.14/t/embed.pl
ExtUtils-Embed-1.14/t/multiplicity.t
ExtUtils-Embed-1.14/t/loop.c
ExtUtils-Embed-1.14/t/embed.c
ExtUtils-Embed-1.14/t/sub.pl
ExtUtils-Embed-1.14/t/minimod.PL
ExtUtils-Embed-1.14/t/persistent.pl
ExtUtils-Embed-1.14/t/loop.t
ExtUtils-Embed-1.14/t/embed.t
ExtUtils-Embed-1.14/t/eval.test
ExtUtils-Embed-1.14/lib/
ExtUtils-Embed-1.14/lib/Embed/
ExtUtils-Embed-1.14/lib/Embed/Persistent.pm
ExtUtils-Embed-1.14/lib/ExtUtils/
ExtUtils-Embed-1.14/lib/ExtUtils/Embed.pm
ExtUtils-Embed-1.14/MANIFEST
ExtUtils-Embed-1.14/Changes
ExtUtils-Embed-1.14/Makefile.PL
ExtUtils-Embed-1.14/README
ExtUtils-Embed-1.14/genmake
CPAN: File::Temp loaded ok (v0.21)
 
  CPAN.pm: Going to build D/DO/DOUGM/ExtUtils-Embed-1.14.tar.gz
 
Writing files for ExtUtils::Embed tests...
Can't locate ExtUtils/Embed.pm in @INC (@INC contains: ./lib /usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0
 
/usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.10.0/i386-linux-thread-multi /usr/lib/perl5/5.10.0
 
/usr/lib/perl5/site_perl .) at ../genmake line 5.
BEGIN failed--compilation aborted at ../genmake line 5.
Can't locate ExtUtils/Embed.pm in @INC (@INC contains: ./lib /usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0
 
/usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.10.0/i386-linux-thread-multi /usr/lib/perl5/5.10.0
 
/usr/lib/perl5/site_perl .) at ../genmake line 5.
BEGIN failed--compilation aborted at ../genmake line 5.
Checking if your kit is complete...
Looks good
Writing Makefile for ExtUtils-Embed
cp lib/Embed/Persistent.pm blib/lib/Embed/Persistent.pm
cp lib/ExtUtils/Embed.pm blib/lib/ExtUtils/Embed.pm
Manifying blib/man3/ExtUtils::Embed.3pm
  DOUGM/ExtUtils-Embed-1.14.tar.gz
  /usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/build.t ......... 1/2 make[1]: Makefile.embed: No such file or directory
make[1]: *** No rule to make target `Makefile.embed'.  Stop.
make[1]: Makefile.loop: No such file or directory
make[1]: *** No rule to make target `Makefile.loop'.  Stop.
t/build.t ......... Failed 2/2 subtests
t/embed.t ......... Can't exec "./embed": No such file or directory at t/embed.t line 2.
t/embed.t ......... No subtests run
t/loop.t .......... sh: ./loop: No such file or directory
sh: ./loop: No such file or directory
sh: ./loop: No such file or directory
sh: ./loop: No such file or directory
sh: ./loop: No such file or directory
sh: ./loop: No such file or directory
sh: ./loop: No such file or directory
sh: ./loop: No such file or directory
Can't exec "./loop": No such file or directory at t/loop.t line 59.
Use of uninitialized value $p in pattern match (m//) at t/loop.t line 59.
t/loop.t .......... Failed 18/18 subtests
t/multiplicity.t .. skipped: (no reason given)
 
Test Summary Report
-------------------
t/build.t       (Wstat: 0 Tests: 2 Failed: 2)
  Failed tests:  1-2
t/embed.t       (Wstat: 0 Tests: 0 Failed: 0)
  Parse errors: No plan found in TAP output
t/loop.t        (Wstat: 0 Tests: 0 Failed: 0)
  Parse errors: Bad plan.  You planned 18 tests but ran 0.
Files=4, Tests=2,  2 wallclock secs ( 0.03 usr  0.05 sys +  0.01 cusr  0.13 csys =  0.22 CPU)
Result: FAIL
Failed 3/4 test programs. 2/2 subtests failed.
make: *** [test_dynamic] Error 255
  DOUGM/ExtUtils-Embed-1.14.tar.gz
  /usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
  reports DOUGM/ExtUtils-Embed-1.14.tar.gz
Running make install
  make test had returned bad status, won't install without force
Failed during this command:
 DOUGM/ExtUtils-Embed-1.14.tar.gz             : make_test NO
 
cpan[2]>
 
 
 
 
----- Original Message -----
From: cnhack TNT
Sent: Tuesday, December 08, 2009 11:15 AM
Subject: [PerlChina] Re: 安装mod_perl modperl_xsinit.c:30: 错误

你的 ExtUtils::Embed 模块版本有点老
yum 仓库里面的包是帮你处理好相应模块版本依赖关系的,所以装起来顺利:-)

2009/12/8 Fangyuan <chengfangyuan2008@gmail.com>

奇怪的是,我通过以下方式,mod_perl竟然安装成功
#yum install httpd
#yum install mod_perl
然后提示安装成功。

On 12月8日, 上午9时01分, Fangyuan <chengfangyuan2...@gmail.com> wrote:
> 谢谢你的帮助。
> $locate Embed.pm
> /root/.cpan/build/ExtUtils-Embed-1.14-6naOrM/blib/lib/ExtUtils/
> Embed.pm
> /root/.cpan/build/ExtUtils-Embed-1.14-6naOrM/lib/ExtUtils/Embed.pm
> /usr/lib/perl5/5.10.0/ExtUtils/Embed.pm
> --------------------------------------------------------------------------------------------
> $perl -
> V
> Summary of my perl5 (revision 5 version 10 subversion 0)
> configuration:
>
> Platform:
>     osname=linux, osvers=2.6.18-164.el5, archname=i386-linux-thread-
> multi
>     uname='linux x86-2.fedora.phx.redhat.com 2.6.18-164.el5 #1 smp tue
> aug 18 15:51:48 edt 2009 i686 i686 i386 gnulinux
> '
>     config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-
> D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-
> size=4 -m32 -march=i586 -mtune=generic -fasynchronous-unwind-tables -
> Accflags=-DPERL_USE_SAFE_PUTENV -Dversion=5.10.0 -
> Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red
> Hat, Inc. -Dprefix=/usr -Dvendorprefix=/usr -Dsiteprefix=/usr/local -
> Dprivlib=/usr/lib/perl5/5.10.0 -Dsitelib=/usr/local/lib/perl5/
> site_perl/5.10.0 -Dvendorlib=/usr/lib/perl5/vendor_perl/5.10.0 -
> Darchlib=/usr/lib/perl5/5.10.0/i386-linux-thread-multi -Dsitearch=/usr/
> local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi -Dvendorarch=/
> usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi -
> Dinc_version_list=none -Darchname=i386-linux-thread-multi -Duseshrplib
> -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun
> -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -
> Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -
> Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -
> Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto -
> Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto -
> Dscriptdir=/usr/bin -Dotherlibdirs=/usr/lib/perl5/
> site_perl'
>     hint=recommended, useposix=true,
> d_sigaction=define
>     useithreads=define,
> usemultiplicity=define
>     useperlio=define, d_sfio=undef, uselargefiles=define,
> usesocks=undef
>     use64bitint=undef, use64bitall=undef,
> uselongdouble=undef
>     usemymalloc=n,
> bincompat5005=undef
>
> Compiler:
>     cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -
> DPERL_USE_SAFE_PUTENV -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/
> local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/
> include/gdbm',
>     optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -
> fstack-protector --param=ssp-buffer-size=4 -m32 -march=i586 -
> mtune=generic -fasynchronous-unwind-
> tables',
>     cppflags='-D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -
> DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -I/usr/
> include/
> gdbm'
>     ccversion='', gccversion='4.4.1 20090725 (Red Hat 4.4.1-2)',
> gccosandvers=''
>     intsize=4, longsize=4, ptrsize=4, doublesize=8,
> byteorder=1234
>     d_longlong=define, longlongsize=8, d_longdbl=define,
> longdblsize=12
>     ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
> lseeksize=8
>     alignbytes=4,
> prototype=define
>   Linker and Libraries:
>     ld='gcc', ldflags =' -L/usr/local/lib'
>     libpth=/usr/local/lib /lib /usr/lib
>     libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -
> lc
>     perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
>     libc=/lib/libc-2.10.1.so, so=so, useshrplib=true,
> libperl=libperl.so
>     gnulibc_version='2.10.1'
>   Dynamic Linking:
>     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -
> Wl,-rpath,/usr/lib/perl5/5.10.0/i386-linux-thread-multi/CORE'
>     cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall -Wp,-
> D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-
> size=4 -m32 -march=i586 -mtune=generic -fasynchronous-unwind-tables -L/
> usr/local/lib'
>
> Characteristics of this binary (from libperl):
>   Compile-time options: DEBUGGING MULTIPLICITY PERL_DONT_CREATE_GVSV
>                         PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
>                         PERL_TRACK_MEMPOOL PERL_USE_SAFE_PUTENV
> USE_ITHREADS
>                         USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API
>   Built under linux
>   Compiled at Sep 18 2009 15:01:24
>   @INC:
>     /usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi
>     /usr/local/lib/perl5/site_perl/5.10.0
>     /usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi
>     /usr/lib/perl5/vendor_perl/5.10.0
>     /usr/lib/perl5/vendor_perl
>     /usr/lib/perl5/5.10.0/i386-linux-thread-multi
>     /usr/lib/perl5/5.10.0
>     /usr/lib/perl5/site_perl
>     .
>
> On 12月7日, 下午10时35分, cnhack TNT <cnhack...@gmail.com> wrote:
>
> > 另外附上你的 perl -V 信息
>
> > 2009/12/7 cnhack TNT <cnhack...@gmail.com>
>
> > > 请运行 : locate Embed.pm
> > > 告诉我们结果 :-)
>
> > > 2009/12/7 程方圆 <chengfangyuan2...@gmail.com>
>
> > > 请教个问题:
> > >> 我手动安装mod_perl时出错,使用CPAN安装也有同样的错误而make终止:
> > >> 错误如下:
> > >> =============================================================
> > >> modperl_xsinit.c: 在函数'xs_init'中:
> > >> modperl_xsinit.c:30: 错误:'my_perl'未声明(在此函数内第一次使用)
> > >> modperl_xsinit.c:30: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
> > >> modperl_xsinit.c:30: 错误:所在的函数内也只报告一次。)
> > >> modperl_xsinit.c:30: 警告:传递'Perl_newXS'的第 3 个参数时在不兼容的指针类型间转换
> > >> /usr/lib/perl5/5.10.0/i386-linux-thread-multi/CORE/proto.h:1500:
> > >> 附注:需要类型'XSUBADDR_t',但实参的类型为'void (*)(struct CV *)'
> > >> make[1]: *** [modperl_xsinit.lo] 错误 1
> > >> make[1]: Leaving directory
> > >> `/root/.cpan/build/mod_perl-2.0.4-mf94jz/src/modules/perl'
> > >> make: *** [modperl_lib] 错误 2
> > >>   GOZER/mod_perl-2.0.4.tar.gz
> > >>   /usr/bin/make -- NOT OK
> > >> Running make test
> > >>   Can't test without successful make
> > >> Running make install
> > >>   Make had returned bad status, install seems impossibl
> > >> =====================================================
>
> > >> 我用"modperl_xsinit.c:30"作为关键词搜索google,发现有人提出同样的问题,但没有找到答案。
> > >>http://d.hatena.ne.jp/hirose31/20090302/1235967816这里好像有解决办法,但是我看不懂日文。
>
> > >> 希望哪位能指点一下,谢谢!
>
> > >> 系统是fedora12
> > >> mod_perl version: mod_perl-2.0.4
> > >> httpd version:
> > >> Server version: Apache/2.2.14 (Unix)
> > >> Server built:   Dec  7 2009 17:42:54


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: