The image Install libgnomeprint on MAC OS X -
error: XML::Parser perl module is required for intltool

Question Problem: You've been trying all day to compile some piece of GNOME software from scratch. You try:

Code:

./configure


and it blows off with an error:

Code:

checking for perl... /usr/bin/perl
checking for XML::Parser... configure: error: XML::Parser perl module is required for intltool


You check and doublecheck that you indeed have the Perl XML::Parser module. But the configure script keeps on complaining that you don't have it. Your day is destroyed.

You check and doublecheck that you indeed have the Perl XML::Parser module. But the configure script keeps on complaining that you don't have it. Your day is destroyed.

Idea Reason: The configure script is clever enough to tell you that the "XML::Parser perl module is required for intltool" (which, taken as an assertion, is indeed always true), but braindamaged enough NOT to tell you the REAL error. To find the real error, you have to dig yourself - and dig deeply:

Search for the error message "XML::Parser perl module is required..." inside the directory of the source code.

change to the directory : /opt/local/var/db/dports/build/
_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_gnome_libgnomeprint/
work/libgnomeprint-2.12.1


 
You will find out that the error comes from this piece of code in the configure script:

Code:

if test "x" != "xno-xml"; then
   echo "$as_me:$LINENO: checking for XML::Parser" >&5
echo $ECHO_N "checking for XML::Parser... $ECHO_C" >&6
    if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
       echo "$as_me:$LINENO: result: ok" >&5


So what's this "intltool" after all? Looking at the code, you only find this:

Code:

INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL

which does not say anything, except to the very initiated ones...

So let's insert an echo to find out - change the above lines to:

Code:

if test "x" != "xno-xml"; then
   echo "$as_me:$LINENO: checking for XML::Parser" >&5
echo $ECHO_N "checking for XML::Parser... $ECHO_C" >&6
   echo "INTLTOOL_PERL=$INTLTOOL_PERL"
   if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
       echo "$as_me:$LINENO: result: ok" >&5


See the line

Code:

echo "INTLTOOL_PERL=$INTLTOOL_PERL"


there? If you run

Code:

./configure


again, it will tell you that
Code:

checking for XML::Parser... INTLTOOL_PERL=/opt/local/bin/perl


Thus
Code:

$INTLTOOL_PERL -e "require XML::Parser


in those configure lines means nothing else than

Code:

/opt/local/bin/perl -e "require XML::Parser"


So it is this simple program that fails:

Code:

/opt/local/bin/perl -e "require XML::Parser"


If you run it on the command line, it will also tell you why - in my occasion, it said that I got the
"locate XML/Parser.pm" error :

Code:

/opt/local/bin/perl -e "require XML::Parser"
Can't locate XML/Parser.pm in @INC (@INC contains: /opt/local/lib/perl5/5.8.8/darwin-2level /opt/local/lib/perl5/5.8.8 /opt/local/lib/perl5/site_perl/5.8.8/darwin-2level /opt/local/lib/perl5/site_perl/5.8.8 /opt/local/lib/perl5/site_perl /opt/local/lib/perl5/vendor_perl/5.8.8/darwin-2level /opt/local/lib/perl5/vendor_perl/5.8.8 /opt/local/lib/perl5/vendor_perl .) at -e line 1.


Arrow Solution: Run
 
Code:

# sudo port installed perl5.8
Password:
The following ports are currently installed:
  perl5.8 @5.8.7_0
  perl5.8 @5.8.8_0+darwin_8 (active)
# sudo port deactivate perl5.8 @5.8.8_0+darwin_8
--->  Deactivating perl5.8 5.8.8_0+darwin_8
# sudo port install libgnomeprint
--->  Configuring libgnomeprint
--->  Building libgnomeprint with target all
...
/bin/sh: /opt/local/bin/glib-mkenums: /opt/local/bin/perl: bad interpreter: No such file or directory
...
# sudo port activate perl5.8 @5.8.8_0+darwin_8
--->  Activating perl5.8 5.8.8_0+darwin_8
# sudo port install libgnomeprint
--->  Building libgnomeprint with target all
--->  Staging libgnomeprint into destroot
--->  Packaging tgz archive for libgnomeprint 2.12.1_0
--->  Installing libgnomeprint 2.12.1_0
--->  Activating libgnomeprint 2.12.1_0
--->  Cleaning libgnomeprint
Installation successful !
 
Now I can install any software which is dependent on error: XML::Parser perl module case.

arrow
arrow
    全站熱搜

    Bluelove1968 發表在 痞客邦 留言(0) 人氣()