I am trying to port some perl code over from my OS X 10.6.8 server to my new OS X 10.12.6 server. When I run the code, it trips over a missing WWW::Curl::Easy module:
------------------------------
[ns3:~/linkrabbit] administrator% ./linkrabbit.pl -s iq
Can't locate WWW/Curl/Easy.pm in @INC (you may need to install the WWW
+::Curl::Easy module) (@INC contains: /Users/administrator/perl5/perlb
+rew/build/perl-5.24.0/ /Library/Perl/5.18/darwin-thread-multi-2level
+/Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2le
+vel /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.2/darwin-th
+read-multi-2level /Library/Perl/Updates/5.18.2 /System/Library/Perl/5
+.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Libr
+ary/Perl/Extras/5.18/darwin-thread-multi-2level /System/Library/Perl/
+Extras/5.18 . /usr/local/Cellar/curl/7.56.1/) at ./linkrabbit.pl line
+ 35.
BEGIN failed--compilation aborted at ./linkrabbit.pl line 35.
[ns3:~/linkrabbit] administrator%
------------------------------
Sure enough, WWW::Curl::Easy is not installed. So I pop over to cpanp to install the module, but fail miserably:
------------------------------
[ns3:~/linkrabbit] administrator% sudo cpanp -i WWW::Curl::Easy
Password:
Installing WWW::Curl::Easy (4.17)
CPANPLUS::Dist::Build::Constants will be removed from the Perl core di
+stribution in the next major release. Please install it from CPAN. It
+ is being used at /System/Library/Perl/5.18/CPANPLUS/Dist/Build.pm, l
+ine 16.
Running [/usr/bin/perl -e use strict; BEGIN { my $old = select STDERR;
+ $|++; select $old; $|++; $0 = shift(@ARGV); my $rv = do($0); die $@
+if $@; } /Users/administrator/.cpanplus/5.18.2/build/WWW-Curl-4.17/Ma
+kefile.PL]...
Locating required external dependency bin:curl-config... found at /usr
+/bin/curl-config.
The version is libcurl 7.54.0
Found curl.h in /usr/include/curl/curl.h
In file included from /usr/include/curl/curl.h:38:
In file included from /usr/include/curl/curlbuild.h:145:
In file included from /Applications/Xcode.app/Contents/Developer/Toolc
+hains/XcodeDefault.xctoolchain/usr/lib/clang/9.0.0/include/inttypes.h
+:30:
In file included from /usr/include/inttypes.h:224:
In file included from /usr/include/Availability.h:190:
/usr/include/AvailabilityInternal.h:22938:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_12
^
/usr/include/AvailabilityInternal.h:22867:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_11_4
^
/usr/include/AvailabilityInternal.h:22800:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_11_3
^
/usr/include/AvailabilityInternal.h:22737:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_11_2
^
/usr/include/AvailabilityInternal.h:22678:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_11
^
/usr/include/AvailabilityInternal.h:22623:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10_3
^
/usr/include/AvailabilityInternal.h:22572:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10_2
^
/usr/include/AvailabilityInternal.h:22525:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_10
^
/usr/include/AvailabilityInternal.h:22482:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_9
^
/usr/include/AvailabilityInternal.h:22443:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_8
^
/usr/include/AvailabilityInternal.h:22408:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_7
^
/usr/include/AvailabilityInternal.h:22377:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_6
^
/usr/include/AvailabilityInternal.h:22350:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_5
^
/usr/include/AvailabilityInternal.h:22327:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_4
^
/usr/include/AvailabilityInternal.h:22308:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_3
^
/usr/include/AvailabilityInternal.h:22293:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_2
^
/usr/include/AvailabilityInternal.h:22282:10: error: unterminated cond
+itional directive
#if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_1
^
/usr/include/AvailabilityInternal.h:30:2: error: unterminated conditio
+nal directive
#ifndef __AVAILABILITY_INTERNAL__
^
In file included from /usr/include/curl/curl.h:38:
In file included from /usr/include/curl/curlbuild.h:145:
In file included from /Applications/Xcode.app/Contents/Developer/Toolc
+hains/XcodeDefault.xctoolchain/usr/lib/clang/9.0.0/include/inttypes.h
+:30:
In file included from /usr/include/inttypes.h:224:
/usr/include/Availability.h:239:2: error: #else without #if
#else
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
Building curlopt-constants.c for your libcurl version
Building Easy.pm constants for your libcurl version
Building Share.pm constants for your libcurl version
Generating a Unix-style Makefile
Writing Makefile for WWW::Curl
Writing MYMETA.yml and MYMETA.json
[ERROR] MAKE failed: Inappropriate ioctl for device Skip blib/lib/WWW/
+Curl/Easy.pm (unchanged)
Skip blib/lib/WWW/Curl/Multi.pm (unchanged)
Skip blib/lib/WWW/Curl/Form.pm (unchanged)
Skip blib/lib/WWW/Curl.pm (unchanged)
Skip blib/lib/WWW/Curl/Share.pm (unchanged)
Running Mkbootstrap for Curl ()
chmod 644 "Curl.bs"
"/usr/bin/perl" "-Iinc" -MExtUtils::Command::MM -e 'cp_nonempty' -- Cu
+rl.bs blib/arch/auto/WWW/Curl/Curl.bs 644
cc -c -I/usr/include -arch x86_64 -arch i386 -g -pipe -fno-common -DP
+ERL_DARWIN -fno-strict-aliasing -fstack-protector -Os -DVERSION=\"4
+.17\" -DXS_VERSION=\"4.17\" "-I/System/Library/Perl/5.18/darwin-thre
+ad-multi-2level/CORE" Curl.c
In file included from Curl.xs:574:
./curlopt-constants.c:19:58: error: non-void function 'constant' shoul
+d return a value [-Wreturn-type]
if (strEQ(name, "DID_MEMORY_FUNC_TYPEDEFS")) return CURL_D
+ID_MEMORY_FUNC_TYPEDEFS;
^
./curlopt-constants.c:128:49: error: use of undeclared identifier 'CUR
+L_STRICTER'
if (strEQ(name, "STRICTER")) return CURL_STRICTER;
^
./curlopt-constants.c:2051:44: warning: implicit conversion from 'unsi
+gned long' to 'int' changes value from 18446744073709551599 to -17 [-
+Wconstant-conversion]
if (strEQ(name, "ANY")) return CURLAUTH_ANY;
~~~~~~ ^~~~~~~~~~~~
/usr/include/curl/curl.h:679:32: note: expanded from macro 'CURLAUTH_A
+NY'
#define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE)
^~~~~~~~~~~~~~~~~~~
In file included from Curl.xs:574:
./curlopt-constants.c:2052:48: warning: implicit conversion from 'unsi
+gned long' to 'int' changes value from 18446744073709551598 to -18 [-
+Wconstant-conversion]
if (strEQ(name, "ANYSAFE")) return CURLAUTH_ANYSAFE;
~~~~~~ ^~~~~~~~~~~~~~~~
/usr/include/curl/curl.h:680:32: note: expanded from macro 'CURLAUTH_A
+NYSAFE'
#define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 warnings and 2 errors generated.
make: *** [Curl.o] Error 1
[ERROR] Unable to create a new distribution object for 'WWW::Curl::Eas
+y' -- cannot continue
*** Install log written to:
/Users/administrator/.cpanplus/install-logs/WWW-Curl-Easy-4.17-15180
+47969.log
Error installing 'WWW::Curl::Easy'
Problem installing one or more modules
[ns3:~/linkrabbit] administrator%
------------------------------
My linkrabbit.pl file begins with this (line 35 is use WWW::Curl::Easy;):
#! /usr/bin/perl
#
##############################################
use strict;
use lib "/Users/administrator/perl5/perlbrew/build/perl-5.24.0/";
BEGIN {push @INC, '/usr/local/Cellar/curl/7.56.1/'}
use Time::Local;
use Time::HiRes;
use Getopt::Long;
use IO::Handle;
use HTML::TokeParser;
use XML::LibXML;
use WWW::RobotRules;
use LWP::Simple qw(get);
use URI;
use Switch;
use WWW::Curl::Easy;
use WWW::Curl::Multi;
use WWW::Google::PageRank;
use File::Copy;
------------------------------
I have googled my brains out (and I google for a living), but haven't been able to get past this point for months. At this point, I'm quite lost. I'm hoping that I can reach out to someone who might better understand my predicament.
Can anyone assist?
My humble thanks.
Cameron Knowlton
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.