Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^3: CPAN Installation of Perl Packages Fails

by m_jaser (Novice)
on Jun 22, 2017 at 15:40 UTC ( [id://1193305]=note: print w/replies, xml ) Need Help??


in reply to Re^2: CPAN Installation of Perl Packages Fails
in thread CPAN Installation of Perl Packages Fails

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 .

Replies are listed 'Best First'.
Re^4: CPAN Installation of Perl Packages Fails
by afoken (Chancellor) on Jun 22, 2017 at 20:14 UTC

    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". ;-)

      I agree with you about preferring Strawberry Perl over ActivePerl.

      However, you can use PPM to install MinGW and dmake for ActivePerl so that you can install directly from CPAN. Also, according to this blog post, it looks like ActiveState has decided to start moving away from using their own package managers for their distributions of programming languages and will rely more on the community package repository for each programming language. For ActivePerl, that means support for install modules directly from CPAN.

        However, you can use PPM to install MinGW and dmake for ActivePerl so that you can install directly from CPAN.

        That's what I tried to say with "A working build environment was only recently added as an optional package."

        it looks like ActiveState has decided to start moving away from using their own package managers for their distributions of programming languages and will rely more on the community package repository

        That sounds like a good idea, and it is a logical consequence of providing a build environment package. ActiveState could not stop people from using CPAN anyway, and even less after providing the build environment.

        To be fair, I haven't used or even followed the changes in ActivePerl. For me, it is obsoleted by Strawberry Perl, and so I feel no need to follow what happens in ActivePerl.

        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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1193305]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (5)
As of 2024-04-16 18:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found