Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: CPAN Installation of Perl Packages Fails

by kevbot (Priest)
on Jun 22, 2017 at 05:12 UTC ( #1193257=note: print w/replies, xml ) Need Help??


in reply to CPAN Installation of Perl Packages Fails

Hello m_jaser,

According to this line in your output,

configure: error: no acceptable C compiler found in $PATH
you don't have a C compiler installed (which is needed by Device::SerialPort). Some (but not all) modules require a C compiler.

Module names are case-sensitive. So, your attempts to install Net::SSH and Net::Telnet failed because cpan could not find the modules. Also, you should not need to use the -f flag in most cases. After you install a C compiler, you may want to try the following.

cpan -i Net::SSH cpan -i Net::Telnet
If you want more specific advice on how to fix these problems, then please let us know which operating system you are running and which version of perl you are running.

Replies are listed 'Best First'.
Re^2: CPAN Installation of Perl Packages Fails
by afoken (Abbot) on Jun 22, 2017 at 06:30 UTC
    If you want more specific advice on how to fix these problems, then please let us know which operating system you are running and which version of perl you are running.

    To get information about perl:

    perl -v

    To get much more information about perl:

    perl -V

    To get information about the operating system:

    uname -a

    In case of Linux, also try:

    ls /etc/*version*

    and if that lists a file, show its content:

    cat /etc/some-linux-distro-name-version

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

      Thanks a lot for the replies...! Here are the details of the system i'm using:

      [~]$ perl -v This is perl 5, version 14, subversion 4 (v5.14.4) built for cygwin-th +read-multi-64int (with 14 registered patches, see perl -V for more detail) Copyright 1987-2013, 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 ki +t. 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 Pa +ge.
      [~]$ uname -a CYGWIN_NT-6.1-WOW CA00064210 2.0.1(0.287/5/3) 2015-04-30 18:13 i686 Cy +gwin
      [~]$ perl -V Summary of my perl5 (revision 5 version 14 subversion 4) configuration +: Platform: osname=cygwin, osvers=1.7.35(0.28653), archname=cygwin-thread-mult +i-64int uname='cygwin_nt-6.3-wow cygwin 1.7.35(0.28653) 2015-02-16 13:18 i +686 cygwin ' config_args='-d -e -Dprefix=/usr -Dmksymlinks -Dusethreads -Darchn +ame=i686-cygwin-threads-64int -Dlibperl=cygperl5_14.dll -Dcc=gcc -Dld +=g++ -Accflags=-ggdb -O2 -pipe -Wimplicit-function-declaration -fdebu +g-prefix-map=/mnt/share/maint/perl.x86/build=/usr/src/debug/perl-5.14 +.4-3 -fdebug-prefix-map=/mnt/share/maint/perl.x86/src/perl-5.14.4=/us +r/src/debug/perl-5.14.4-3 -fwrapv' hint=recommended, useposix=true, d_sigaction=define useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=und +ef use64bitint=define, use64bitall=undef, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -ggdb + -O2 -pipe -Wimplicit-function-declaration -fdebug-prefix-map=/mnt/sh +are/maint/perl.x86/build=/usr/src/debug/perl-5.14.4-3 -fdebug-prefix- +map=/mnt/share/maint/perl.x86/src/perl-5.14.4=/usr/src/debug/perl-5.1 +4.4-3 -fwrapv -fno-strict-aliasing -fstack-protector', optimize='-O3', cppflags='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -ggdb -O2 -pipe + -Wimplicit-function-declaration -fdebug-prefix-map=/mnt/share/maint/ +perl.x86/build=/usr/src/debug/perl-5.14.4-3 -fdebug-prefix-map=/mnt/s +hare/maint/perl.x86/src/perl-5.14.4=/usr/src/debug/perl-5.14.4-3 -fwr +apv -fno-strict-aliasing -fstack-protector' ccversion='', gccversion='4.9.2', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1 +2 ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='of +f_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='g++', ldflags =' -Wl,--enable-auto-import -Wl,--export-all-sym +bols -Wl,--enable-auto-image-base -fstack-protector -L/usr/local/lib' libpth=/usr/local/lib /usr/lib /lib libs=-lgdbm -ldb -ldl -lcrypt -lgdbm_compat perllibs=-ldl -lcrypt libc=/usr/lib/libc.a, so=dll, useshrplib=true, libperl=cygperl5_14 +.dll gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags=' --shared -Wl,--enable-auto-import -Wl +,--export-all-symbols -Wl,--enable-auto-image-base -L/usr/local/lib - +fstack-protector' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_PRESERVE_IVUV PERL_USE_SAFE_PUTENV USE_64_BIT_INT USE_ITHREA +DS USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API Locally applied patches: rurban/0c612ce82 Fix building static extensions on cygw +in, -UUSEIMPORTLIB perl.cygwin_autorebase Rebase DLL after building (skip for cy +gport builds) v5.14.0-RC2-6-gfc6f691 skip testing cygwin utf8 readdir() wit +h Win32 ANSI API v5.14.0-RC2-7-g3877b86 Fix test 50 on cygwin: \WINDOWS v5.14.0-RC2-10-gd22b5bd revert +x global.sym from 3691eaa79cc6 +a v5.15.0-579-g8375c93 Export store_cop_label for the perl co +mpiler v5.15.3-232-g1bac5ec sv.c: S_anonymise_cv_maybe UTF8 cleanu +p. v5.15.7-75-g803e389 CYG17 utf8 paths v5.15.7-302-g5bc802d Revise perlcygwin.pod for cygwin-1.7 v5.15.7-303-g286f819 add Cygwin::sync_winenv [perl #110190] v5.19.8-494-g6cc44f6 avoid a "FILE" name conflict with cygw +in's wchar.h v5.19.8-496-g3383030 [perl #120936] op/taint.t handling of +no ipcsysv on cygwin v5.19.8-509-g288d0d9 cygwin doesn't implement $^E (except a +s a read of $!) v5.21.4-548-g860874c wrap the failing call_checker test in +an eval and TODO it Built under cygwin Compiled at Feb 17 2015 21:43:25 @INC: /usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/site_perl/5.14 /usr/lib/perl5/vendor_perl/5.14/i686-cygwin-threads-64int /usr/lib/perl5/vendor_perl/5.14 /usr/lib/perl5/5.14/i686-cygwin-threads-64int /usr/lib/perl5/5.14 .

        So you are using Windows 7, on top of that a 32 bit(?) cygwin, and on top of that, a perl from somewhere unknown, maybe included with cygwin, maybe ripped out of cygwin.

        I guess cygwin should come with a C compiler, but it is also possible to install only parts of cygwin, and so get a system without a working compiler.

        If you don't explicitly need cygwin, and use it only to run perl, get rid of it and use Strawberry Perl instead. It comes preconfigured with some useful non-core packages (list hidden in the release notes). The cpan tool is also preconfigured, and of course, you get a complete build environment based on gcc, mingw, dmake (or gmake in newer versions). Installing modules is just cpan install What::Ever, as if you were using a proper unix operating system.

        Yes, some people may recommend ActivePerl. Once, it was the only sane way to get Perl running on Windows. But: It has its own, strange package manager for precompiled packages. A working build environment was only recently added as an optional package. Before that, you had to hunt for matching binary packages even if cpan had all the sources you needed. Frankly, Strawberry has made ActivePerl quite obsolete. Yes, it has some obscure tools that can generate exe files from perl scripts (no, they don't help protecting your code), IIRC, and some other exotic tools nobody really needs.

        I really prefer Strawberry. Once installed (or unpacked, if you use the Portable edition), it looks and feels like Perl on unix, except for that DOS-style C:\> prompt. And you don't have to pay a license fee of $1200+ per instance and year to get support.

        Heck, I've even installed Strawberry just to compile C programs for Windows.

        Coming back to cygwin: cygwin uses a DLL (cygwin1.dll) shared by all cygwin programs, it shares memory among all of those programs, and its intended use is to simulate POSIX features not available in Windows. Think of it as a mini-kernel running in user space on top of Windows. Of course, this weakens the boundary between cygwin programs, and IIRC, this has lead to security problems. Or at least, it could. One buggy program that overwrites the shared data and all programs using cywin suffer. Also, updating that DLL is not easy, you have to terminate all cygwin programs.

        Alexander

        --
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1193257]
help
Chatterbox?
[marto]: Good morning all

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (5)
As of 2017-12-13 08:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What programming language do you hate the most?




















    Results (350 votes). Check out past polls.

    Notices?