5

I'm trying to install the XML::Parser perl module using CPAN and can't get it to work. Below is the output that is being displayed by CPAN which appears to indicate that Expat is the issue.

Geting this installed is critical for us and I'm at a loss as to what to do next. Any help would be greatly appreciated!

cpan[1]> install XML::Parser
CPAN: Storable loaded ok (v2.21)
Going to read '/root/.cpan/Metadata'
  Database was generated on Fri, 15 Apr 2011 16:29:49 GMT
Running install for module 'XML::Parser'
Running make for C/CH/CHORNY/XML-Parser-2.40.tar.gz
CPAN: Digest::SHA loaded ok (v5.48)
CPAN: Compress::Zlib loaded ok (v2.03)
Checksum for /root/.cpan/sources/authors/id/C/CH/CHORNY/XML-Parser-2.40.tar.gz ok
Scanning cache /root/.cpan/build for sizes
............................................................................DONE
CPAN: Archive::Tar loaded ok (v1.68)
XML-Parser-2.40
XML-Parser-2.40/Changes
XML-Parser-2.40/Makefile.PL
XML-Parser-2.40/MANIFEST
XML-Parser-2.40/META.yml
XML-Parser-2.40/Parser.pm
XML-Parser-2.40/README
XML-Parser-2.40/Expat
XML-Parser-2.40/Expat/encoding.h
XML-Parser-2.40/Expat/Expat.pm
XML-Parser-2.40/Expat/Expat.xs
XML-Parser-2.40/Expat/Makefile.PL
XML-Parser-2.40/Expat/typemap
XML-Parser-2.40/inc
XML-Parser-2.40/inc/Devel
XML-Parser-2.40/inc/Devel/CheckLib.pm
XML-Parser-2.40/Parser
XML-Parser-2.40/Parser/LWPExternEnt.pl
XML-Parser-2.40/Parser/Encodings
XML-Parser-2.40/Parser/Encodings/big5.enc
XML-Parser-2.40/Parser/Encodings/euc-kr.enc
XML-Parser-2.40/Parser/Encodings/ibm866.enc
XML-Parser-2.40/Parser/Encodings/iso-8859-2.enc
XML-Parser-2.40/Parser/Encodings/iso-8859-3.enc
XML-Parser-2.40/Parser/Encodings/iso-8859-4.enc
XML-Parser-2.40/Parser/Encodings/iso-8859-5.enc
XML-Parser-2.40/Parser/Encodings/iso-8859-7.enc
XML-Parser-2.40/Parser/Encodings/iso-8859-8.enc
XML-Parser-2.40/Parser/Encodings/iso-8859-9.enc
XML-Parser-2.40/Parser/Encodings/Japanese_Encodings.msg
XML-Parser-2.40/Parser/Encodings/koi8-r.enc
XML-Parser-2.40/Parser/Encodings/README
XML-Parser-2.40/Parser/Encodings/windows-1250.enc
XML-Parser-2.40/Parser/Encodings/windows-1251.enc
XML-Parser-2.40/Parser/Encodings/windows-1252.enc
XML-Parser-2.40/Parser/Encodings/windows-1255.enc
XML-Parser-2.40/Parser/Encodings/x-euc-jp-jisx0221.enc
XML-Parser-2.40/Parser/Encodings/x-euc-jp-unicode.enc
XML-Parser-2.40/Parser/Encodings/x-sjis-cp932.enc
XML-Parser-2.40/Parser/Encodings/x-sjis-jdk117.enc
XML-Parser-2.40/Parser/Encodings/x-sjis-jisx0221.enc
XML-Parser-2.40/Parser/Encodings/x-sjis-unicode.enc
XML-Parser-2.40/Parser/Style
XML-Parser-2.40/Parser/Style/Debug.pm
XML-Parser-2.40/Parser/Style/Objects.pm
XML-Parser-2.40/Parser/Style/Stream.pm
XML-Parser-2.40/Parser/Style/Subs.pm
XML-Parser-2.40/Parser/Style/Tree.pm
XML-Parser-2.40/samples
XML-Parser-2.40/samples/canonical
XML-Parser-2.40/samples/canontst.xml
XML-Parser-2.40/samples/ctest.dtd
XML-Parser-2.40/samples/REC-xml-19980210.xml
XML-Parser-2.40/samples/xmlcomments
XML-Parser-2.40/samples/xmlfilter
XML-Parser-2.40/samples/xmlstats
XML-Parser-2.40/t
XML-Parser-2.40/t/astress.t
XML-Parser-2.40/t/cdata.t
XML-Parser-2.40/t/decl.t
XML-Parser-2.40/t/defaulted.t
XML-Parser-2.40/t/encoding.t
XML-Parser-2.40/t/ext.ent
XML-Parser-2.40/t/ext2.ent
XML-Parser-2.40/t/external_ent.t
XML-Parser-2.40/t/file.t
XML-Parser-2.40/t/finish.t
XML-Parser-2.40/t/foo.dtd
XML-Parser-2.40/t/namespaces.t
XML-Parser-2.40/t/parament.t
XML-Parser-2.40/t/partial.t
XML-Parser-2.40/t/skip.t
XML-Parser-2.40/t/stream.t
/bin/tar: Read 3072 bytes from -
XML-Parser-2.40/t/styles.t
CPAN: File::Temp loaded ok (v0.22)
CPAN: Parse::CPAN::Meta loaded ok (v1.40)

  CPAN.pm: Going to build C/CH/CHORNY/XML-Parser-2.40.tar.gz


Expat must be installed prior to building XML::Parser and I can't find
it in the standard library directories. Install 'expat-devel' package with your
OS package manager.

Or you can download expat from:

http://sourceforge.net/projects/expat/

If expat is installed, but in a non-standard directory, then use the
following options to Makefile.PL:

    EXPATLIBPATH=...  To set the directory in which to find libexpat

    EXPATINCPATH=...  To set the directory in which to find expat.h

For example:

    perl Makefile.PL EXPATLIBPATH=/home/me/lib EXPATINCPATH=/home/me/include

Note that if you build against a shareable library in a non-standard location
you may (on some platforms) also have to set your LD_LIBRARY_PATH environment
variable at run time for perl to find the library.

Checking if your kit is complete...
Looks good
Writing Makefile for XML::Parser::Expat
Writing Makefile for XML::Parser
Could not read metadata file. Falling back to other methods to determine prerequisites
cp Parser/Encodings/x-sjis-cp932.enc blib/lib/XML/Parser/Encodings/x-sjis-cp932.enc
cp Parser/Encodings/koi8-r.enc blib/lib/XML/Parser/Encodings/koi8-r.enc
cp Parser/Encodings/iso-8859-7.enc blib/lib/XML/Parser/Encodings/iso-8859-7.enc
cp Parser/Encodings/ibm866.enc blib/lib/XML/Parser/Encodings/ibm866.enc
cp Parser/Style/Tree.pm blib/lib/XML/Parser/Style/Tree.pm
cp Parser/Encodings/iso-8859-9.enc blib/lib/XML/Parser/Encodings/iso-8859-9.enc
cp Parser/Encodings/x-euc-jp-unicode.enc blib/lib/XML/Parser/Encodings/x-euc-jp-unicode.enc
cp Parser/Encodings/README blib/lib/XML/Parser/Encodings/README
cp Parser/Encodings/euc-kr.enc blib/lib/XML/Parser/Encodings/euc-kr.enc
cp Parser/Encodings/windows-1250.enc blib/lib/XML/Parser/Encodings/windows-1250.enc
cp Parser/Encodings/windows-1252.enc blib/lib/XML/Parser/Encodings/windows-1252.enc
cp Parser/Encodings/big5.enc blib/lib/XML/Parser/Encodings/big5.enc
cp Parser/Encodings/windows-1255.enc blib/lib/XML/Parser/Encodings/windows-1255.enc
cp Parser/Encodings/iso-8859-3.enc blib/lib/XML/Parser/Encodings/iso-8859-3.enc
cp Parser/Encodings/Japanese_Encodings.msg blib/lib/XML/Parser/Encodings/Japanese_Encodings.msg
cp Parser/Encodings/x-euc-jp-jisx0221.enc blib/lib/XML/Parser/Encodings/x-euc-jp-jisx0221.enc
cp Parser/Style/Subs.pm blib/lib/XML/Parser/Style/Subs.pm
cp Parser/Encodings/iso-8859-8.enc blib/lib/XML/Parser/Encodings/iso-8859-8.enc
cp Parser/Encodings/iso-8859-4.enc blib/lib/XML/Parser/Encodings/iso-8859-4.enc
cp Parser/Encodings/x-sjis-jdk117.enc blib/lib/XML/Parser/Encodings/x-sjis-jdk117.enc
cp Parser/Encodings/iso-8859-2.enc blib/lib/XML/Parser/Encodings/iso-8859-2.enc
cp Parser/Encodings/x-sjis-unicode.enc blib/lib/XML/Parser/Encodings/x-sjis-unicode.enc
cp Parser/LWPExternEnt.pl blib/lib/XML/Parser/LWPExternEnt.pl
cp Parser/Style/Objects.pm blib/lib/XML/Parser/Style/Objects.pm
cp Parser.pm blib/lib/XML/Parser.pm
cp Parser/Style/Debug.pm blib/lib/XML/Parser/Style/Debug.pm
cp Parser/Encodings/windows-1251.enc blib/lib/XML/Parser/Encodings/windows-1251.enc
cp Parser/Encodings/x-sjis-jisx0221.enc blib/lib/XML/Parser/Encodings/x-sjis-jisx0221.enc
cp Parser/Style/Stream.pm blib/lib/XML/Parser/Style/Stream.pm
cp Parser/Encodings/iso-8859-5.enc blib/lib/XML/Parser/Encodings/iso-8859-5.enc
make[1]: Entering directory `/root/.cpan/build/XML-Parser-2.40-xNvsuv/Expat'
cp Expat.pm ../blib/lib/XML/Parser/Expat.pm
/usr/bin/perl /usr/share/perl5/ExtUtils/xsubpp -noprototypes -typemap /usr/share/perl5/ExtUtils/typemap -typemap typemap  Expat.xs > Expat.xsc && mv Expat.xsc Expat.c
gcc -c   -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables   -DVERSION=\"2.40\" -DXS_VERSION=\"2.40\" -fPIC "-I/usr/lib/perl5/CORE"   Expat.c
Expat.xs:12:19: error: expat.h: No such file or directory
Expat.xs:60: error: expected specifier-qualifier-list before ‘XML_Parser’
Expat.xs:111: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘nsdelim’
Expat.xs:194: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ms’
Expat.xs:197: error: expected ‘)’ before ‘parser’
Expat.xs:249: error: expected ‘)’ before ‘*’ token
Expat.xs:286: error: expected ‘)’ before ‘parser’
Expat.xs: In function ‘characterData’:
Expat.xs:470: error: ‘CallbackVector’ has no member named ‘char_sv’
Expat.xs: In function ‘startElement’:
Expat.xs:482: error: ‘CallbackVector’ has no member named ‘ns’
Expat.xs:488: error: ‘CallbackVector’ has no member named ‘st_serial’
Expat.xs:490: error: ‘CallbackVector’ has no member named ‘skip_until’
Expat.xs:491: error: ‘CallbackVector’ has no member named ‘st_serial’
Expat.xs:491: error: ‘CallbackVector’ has no member named ‘skip_until’
Expat.xs:494: error: ‘CallbackVector’ has no member named ‘skip_until’
Expat.xs:498: error: ‘CallbackVector’ has no member named ‘st_serial_stackptr’
Expat.xs:498: error: ‘CallbackVector’ has no member named ‘st_serial_stacksize’
Expat.xs:499: error: ‘CallbackVector’ has no member named ‘st_serial_stacksize’
Expat.xs:501: error: ‘CallbackVector’ has no member named ‘st_serial_stack’
Expat.xs:501: error: ‘CallbackVectorâ has no member named âst_serial_stackâ
Expat.xs:502: error: ‘CallbackVector’ has no member named ‘st_serial_stacksize’
Expat.xs:505: error: ‘CallbackVector’ has no member named ‘st_serial_stack’
Expat.xs:505: error: ‘CallbackVector’ has no member named ‘st_serial_stackptr’
Expat.xs:505: error: ‘CallbackVector’ has no member named ‘st_serial’
Expat.xs:508: error: ‘CallbackVector’ has no member named ‘nstab’
Expat.xs:508: error: ‘CallbackVector’ has no member named ‘nslst’
Expat.xs:512: error: ‘CallbackVector’ has no member named ‘start_sv’
Expat.xs:512: error: ‘CallbackVector’ has no member named ‘start_sv’
Expat.xs:512: error: ‘CallbackVector’ has no member named ‘start_sv’
Expat.xs:512: error: ‘CallbackVector’ has no member named ‘start_sv’
Expat.xs:512: error: ‘CallbackVector’ has no member named ‘start_sv’
Expat.xs:512: error: ‘CallbackVector’ has no member named ‘start_sv’
Expat.xs:512: error: ‘CallbackVector’ has no member named ‘start_sv’
Expat.xs:512: error: ‘CallbackVector’ has no member named ‘start_sv’
Expat.xs:512: error: ‘CallbackVector’ has no member named ‘start_sv’
Expat.xs:530: error: ‘CallbackVector’ has no member named ‘nstab’
Expat.xs:530: error: ‘CallbackVector’ has no member named ‘nslst’
Expat.xs:539: error: ‘CallbackVector’ has no member named ‘start_sv’
Expat.xs:545: error: ‘CallbackVector’ has no member named ‘context’
Expat.xs:547: error: ‘CallbackVector’ has no member named ‘ns’
Expat.xs:548: error: ‘CallbackVector’ has no member named ‘new_prefix_list’
Expat.xs:485: warning: unused variable ‘pnslst’
Expat.xs:484: warning: unused variable ‘pnstab’
Expat.xs:481: warning: unused variable ‘pcontext’
Expat.xs: In function ‘endElement’:
Expat.xs:559: error: ‘CallbackVector’ has no member named ‘context’
Expat.xs:561: error: ‘CallbackVector’ has no member named ‘st_serial_stackptr’
Expat.xs:565: error: ‘CallbackVector’ has no member named ‘skip_until’
Expat.xs:565: error: ‘CallbackVector’ has no member named ‘end_sv’
Expat.xs:565: error: ‘CallbackVector’ has no member named ‘end_sv’
Expat.xs:565: error: ‘CallbackVector’ has no member named ‘end_sv’
Expat.xs:565: error: ‘CallbackVector’ has no member named ‘end_sv’
Expat.xs:565: error: ‘CallbackVector’ has no member named ‘end_sv’
Expat.xs:565: error: ‘CallbackVector’ has no member named ‘end_sv’
Expat.xs:565: error: ‘CallbackVector’ has no member named ‘end_sv’
Expat.xs:565: error: ‘CallbackVector’ has no member named ‘end_sv’
Expat.xs:565: error: ‘CallbackVector’ has no member named ‘end_sv’
Expat.xs:575: error: ‘CallbackVector’ has no member named ‘end_sv’
Expat.xs:581: error: ‘CallbackVector’ has no member named ‘st_serial_stackptr’
Expat.xs: In function ‘processingInstruction’:
Expat.xs:601: error: ‘CallbackVector’ has no member named ‘proc_sv’
Expat.xs: In function ‘commenthandle’:
Expat.xs:621: error: ‘CallbackVector’ has no member named ‘cmnt_sv’
Expat.xs: In function ‘startCdata’:
Expat.xs:633: error: ‘CallbackVector’ has no member named ‘startcd_sv’
Expat.xs:640: error: ‘CallbackVector’ has no member named ‘startcd_sv’
Expat.xs: In function ‘endCdata’:
Expat.xs:653: error: ‘CallbackVector’ has no member named ‘endcd_sv’
Expat.xs:660: error: ‘CallbackVector’ has no member named ‘endcd_sv’
Expat.xs: At top level:
Expat.xs:668: warning: type defaults to ‘int’ in declaration of ‘XML_Char’
Expat.xs:668: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
Expat.xs:688: warning: type defaults to ‘int’ in declaration of ‘XML_Char’
Expat.xs:688: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
Expat.xs: In function ‘defaulthandle’:
Expat.xs:720: error: ‘CallbackVector’ has no member named ‘dflt_sv’
Expat.xs: At top level:
Expat.xs:729: error: expected declaration specifiers or ‘...’ before ‘XML_Content’
Expat.xs: In function ‘elementDecl’:
Expat.xs:738: warning: implicit declaration of function ‘generate_model’
Expat.xs:738: error: ‘model’ undeclared (first use in this function)
Expat.xs:738: error: (Each undeclared identifier is reported only once
Expat.xs:738: error: for each function it appears in.)
Expat.xs:738: warning: assignment makes pointer from integer without a cast
Expat.xs:747: error: ‘CallbackVector’ has no member named ‘eledcl_sv’
Expat.xs: In function ‘attributeDecl’:
Expat.xs:785: error: ‘CallbackVector’ has no member named ‘attdcl_sv’
Expat.xs: In function ‘entityDecl’:
Expat.xs:818: error: ‘CallbackVector’ has no member named ‘entdcl_sv’
Expat.xs: In function ‘doctypeStart’:
Expat.xs:844: error: ‘CallbackVector’ has no member named ‘doctyp_sv’
Expat.xs: In function ‘doctypeEnd’:
Expat.xs:861: error: ‘CallbackVector’ has no member named ‘doctypfin_sv’
Expat.xs: In function ‘xmlDecl’:
Expat.xs:887: error: ‘CallbackVector’ has no member named ‘xmldec_sv’
Expat.xs: In function ‘unparsedEntityDecl’:
Expat.xs:915: error: ‘CallbackVector’ has no member named ‘unprsd_sv’
Expat.xs: In function ‘notationDecl’:
Expat.xs:956: error: ‘CallbackVector’ has no member named ‘notation_sv’
Expat.xs: At top level:
Expat.xs:960: error: expected ‘)’ before ‘parser’
Expat.xs:1115: error: expected declaration specifiers or ‘...’ before ‘XML_Encoding’
Expat.xs: In function ‘unknownEncoding’:
Expat.xs:1146: warning: unused variable ‘count’
Expat.xs:1167: error: ‘info’ undeclared (first use in this function)
Expat.xs: In function ‘recString’:
Expat.xs:1187: error: ‘CallbackVector’ has no member named ‘recstring’
Expat.xs:1188: error: ‘CallbackVector’ has no member named ‘recstring’
Expat.xs:1191: error: ‘CallbackVector’ has no member named ‘recstring’
Expat.xs: In function ‘suspend_callbacks’:
Expat.xs:1197: error: ‘CallbackVector’ has no member named ‘char_sv’
Expat.xs:1197: error: ‘CallbackVector’ has no member named ‘char_sv’
Expat.xs:1197: error: ‘CallbackVector’ has no member named ‘char_sv’
Expat.xs:1197: error: ‘CallbackVector’ has no member named ‘char_sv’
Expat.xs:1197: error: ‘CallbackVector’ has no member named ‘char_sv’
Expat.xs:1197: error: ‘CallbackVector’ has no member named ‘char_sv’
Expat.xs:1197: error: ‘CallbackVector’ has no member named ‘char_sv’
Expat.xs:1197: error: ‘CallbackVector’ has no member named ‘char_sv’
Expat.xs:1197: error: ‘CallbackVector’ has no member named ‘char_sv’
Expat.xs:1198: warning: implicit declaration of function ‘XML_SetCharacterDataHandler’
Expat.xs:1198: error: ‘CallbackVector’ has no member named ‘p’
Expat.xs:1199: error: ‘XML_CharacterDataHandler’ undeclared (first use in this function)
Expat.xs:1199: error: expected ‘)’ before numeric constant
Expat.xs:1202: error: ‘CallbackVector’ has no member named ‘proc_sv’
Expat.xs:1202: error: ‘CallbackVector’ has no member named ‘proc_sv’
Expat.xs:1202: error: ‘CallbackVector’ has no member named ‘proc_sv’
Expat.xs:1202: error: ‘CallbackVector’ has no member named ‘proc_sv’
Expat.xs:1202: error: ‘CallbackVector’ has no member named ‘proc_sv’
Expat.xs:1202: error: ‘CallbackVector’ has no member named ‘proc_sv’
Expat.xs:1202: error: ‘CallbackVector’ has no member named ‘proc_sv’
Expat.xs:1202: error: ‘CallbackVector’ has no member named ‘proc_sv’
Expat.xs:1202: error: ‘CallbackVector’ has no member named ‘proc_sv’
Expat.xs:1203: warning: implicit declaration of function ‘XML_SetProcessingInstructionHandler’
Expat.xs:1203: error: ‘CallbackVector’ has no member named ‘p’
Expat.xs:1204: error: ‘XML_ProcessingInstructionHandler’ undeclared (first use in this function)
Expat.xs:1204: error: expected ‘)’ before numeric constant
Expat.xs:1207: error: ‘CallbackVector’ has no member named ‘cmnt_sv’
Expat.xs:1207: error: ‘CallbackVector’ has no member named ‘cmnt_sv’
Expat.xs:1207: error: ‘CallbackVector’ has no member named ‘cmnt_sv’
Expat.xs:1207: error: ‘CallbackVector’ has no member named ‘cmnt_sv’
Expat.xs:1207: error: ‘CallbackVector’ has no member named ‘cmnt_sv’
Expat.xs:1207: error: ‘CallbackVector’ has no member named ‘cmnt_sv’
Expat.xs:1207: error: ‘CallbackVector’ has no member named ‘cmnt_sv’
Expat.xs:1207: error: ‘CallbackVector’ has no member named ‘cmnt_sv’
Expat.xs:1207: error: ‘CallbackVector’ has no member named ‘cmnt_sv’
make[1]: *** [Expat.o] Error 1
make[1]: Leaving directory `/root/.cpan/build/XML-Parser-2.40-xNvsuv/Expat'
make: *** [subdirs] Error 2
  CHORNY/XML-Parser-2.40.tar.gz
  /usr/bin/make -- NOT OK
CPAN: YAML loaded ok (v0.72)
Running make test
  Can't test without successful make
Running make install
  Make had returned bad status, install seems impossible
Failed during this command:
 CHORNY/XML-Parser-2.40.tar.gz                : make NO
3
  • What OS/distribution are you using?
    – chuckx
    Apr 15, 2011 at 17:37
  • Which disto? Just install your distro's flavor of the expat development package. On Debian, apt-get install libexpat1-dev or lib64expat1-dev
    – jscott
    Apr 15, 2011 at 17:39
  • Amazon Linux AMI release 1 (beta) on Amazon EC2
    – Russell C.
    Apr 15, 2011 at 18:40

2 Answers 2

5

You're probably missing the expat dev package.

On Debian or Ubuntu, just type:

apt-get update
apt-get install libexpat1-dev

On RedHat or CentOS, type:

yum install expat-devel

Hope this helps!

3
  • We're running the Amazon Linux AMI release 1 (beta) on Amazon EC2. I tried yum install and am getting the following error response: [root@ip-10-166-227-138 build]# yum install libexpat1-dev Loaded plugins: fastestmirror, security Determining fastest mirrors amzn | 2.1 kB 00:00 amzn/primary_db | 1.3 MB 00:00 Setting up Install Process No package libexpat1-dev available. Error: Nothing to do
    – Russell C.
    Apr 15, 2011 at 18:25
  • @Russel: the name of the package in CentOS is expat-devel. Edited the answer to correct it. Apr 15, 2011 at 21:52
  • Glad it helped :) Apr 15, 2011 at 23:58
0

logically to me is to try:

yum install expat-devel

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .