missing perl directories

Achim Gratz Stromeko@nexgo.de
Fri Jan 22 19:35:35 GMT 2021


Anthony Heading writes:
> Whenever I have a new cygwin setup,  I get an error/warning when trying to install perl modules:
>
> % cpan install Win32::Symlink
> Loading internal logger. Log::Log4perl recommended for better logging
> [...]
> Use of uninitialized value $what in concatenation (.) or string at /usr/share/perl5/5.30/App/Cpan.pm line 679, <STDIN> line 1.
> Warning: You do not have write permission for Perl library directories.
>
> I think it is just because the site_perl directories do not exist.

No, I don't get these warnings, so it's something on your system that
triggers these.

$ rm -fr /usr/local/{lib,share}
$  cpan install Win32::Symlink
CPAN: CPAN::SQLite loaded ok (v0.219)
Database was generated on Fri, 22 Jan 2021 19:19:22 GMT
Running install for module 'Win32::Symlink'
CPAN: Digest::SHA loaded ok (v6.02)
CPAN: Compress::Zlib loaded ok (v2.096)
Checksum for /cygdrive/c/Users/ASSI/CygwinHome/.local/share/.cpan/sources/authors/id/A/AU/AUDREYT/Win32-Symlink-0.06.tar.gz ok
CPAN: YAML::XS loaded ok (v0.82)
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)
CPAN: Parse::CPAN::Meta loaded ok (v2.150010)
CPAN: CPAN::Meta loaded ok (v2.150010)
Configuring A/AU/AUDREYT/Win32-Symlink-0.06.tar.gz with Makefile.PL
Cannot determine license info from Symlink.pm
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Win32::Symlink
Writing MYMETA.yml and MYMETA.json
  AUDREYT/Win32-Symlink-0.06.tar.gz
  /usr/bin/perl Makefile.PL -- OK
Running make for A/AU/AUDREYT/Win32-Symlink-0.06.tar.gz
CPAN: Module::CoreList loaded ok (v5.20200601_30)
cp Symlink.pm blib/lib/Win32/Symlink.pm
Running Mkbootstrap for Symlink ()
chmod 644 "Symlink.bs"
"/usr/bin/perl.exe" "-Iinc" -MExtUtils::Command::MM -e 'cp_nonempty' -- Symlink.bs blib/arch/auto/Win32/Symlink/Symlink.bs 644
"/usr/bin/perl.exe" "-Iinc" "/usr/share/perl5/vendor_perl/5.30/ExtUtils/xsubpp"  -typemap '/usr/share/perl5/5.30/ExtUtils/typemap' -typemap '/cygdrive/c/Users/ASSI/CygwinHome/.local/share/.cpan/build/Win32-Symlink-0.06-1/typemap'  Symlink.xs > Symlink.xsc
Please specify prototyping behavior for Symlink.xs (see perlxs manual)
mv Symlink.xsc Symlink.c
gcc -c   -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -D_GNU_SOURCE -ggdb -O2 -pipe -Wall -Werror=format-security -D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -fdebug-prefix-map=/mnt/share/cygpkgs/perl/perl.x86_64/build=/usr/src/debug/perl-5.30.3-1 -fdebug-prefix-map=/mnt/share/cygpkgs/perl/perl.x86_64/src/perl-5.30.3=/usr/src/debug/perl-5.30.3-1 -fwrapv -fno-strict-aliasing -DUSEIMPORTLIB -O3   -DVERSION=\"0.06\" -DXS_VERSION=\"0.06\"  "-I/usr/lib/perl5/5.30/x86_64-cygwin-threads/CORE"   Symlink.c
rm -f blib/arch/auto/Win32/Symlink/Symlink.dll
g++  --shared  -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--enable-auto-image-base -fstack-protector-strong  Symlink.o  -o blib/arch/auto/Win32/Symlink/Symlink.dll  \
  /usr/lib/perl5/5.30/x86_64-cygwin-threads/CORE/cygperl5_30.dll -lpthread -lnsl -ldl -lcrypt   \
  
chmod 755 blib/arch/auto/Win32/Symlink/Symlink.dll
Manifying 1 pod document
  AUDREYT/Win32-Symlink-0.06.tar.gz
  /usr/bin/make -- OK
Running make test for AUDREYT/Win32-Symlink-0.06.tar.gz
"/usr/bin/perl.exe" "-Iinc" -MExtUtils::Command::MM -e 'cp_nonempty' -- Symlink.bs blib/arch/auto/Win32/Symlink/Symlink.bs 644
PERL_DL_NONLAZY=1 "/usr/bin/perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/*.t
t/1-basic.t .. ok   
All tests successful.
Files=1, Tests=4,  1 wallclock secs ( 0.05 usr  0.03 sys +  0.09 cusr  0.06 csys =  0.23 CPU)
Result: PASS
  AUDREYT/Win32-Symlink-0.06.tar.gz
  /usr/bin/make test -- OK
Running make install for AUDREYT/Win32-Symlink-0.06.tar.gz
"/usr/bin/perl.exe" "-Iinc" -MExtUtils::Command::MM -e 'cp_nonempty' -- Symlink.bs blib/arch/auto/Win32/Symlink/Symlink.bs 644
Manifying 1 pod document
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/local/lib/perl5/site_perl/5.30/x86_64-cygwin-threads/auto/Win32/Symlink/Symlink.dll
Installing /usr/local/lib/perl5/site_perl/5.30/x86_64-cygwin-threads/Win32/Symlink.pm
Installing /usr/local/share/man/man3/Win32.Symlink.3pm
Appending installation info to /usr/lib/perl5/5.30/x86_64-cygwin-threads/perllocal.pod
  AUDREYT/Win32-Symlink-0.06.tar.gz
  /usr/bin/make install  -- OK
$

For good measure I repeated this with /usr/local not existing at all and
the result stays the same.

> % perl -V
> Summary of my perl5 (revision 5 version 30 subversion 3) configuration:
> [...]
>   @INC:
>     /usr/local/lib/perl5/site_perl/5.30/x86_64-cygwin-threads
>     /usr/local/share/perl5/site_perl/5.30
>     /usr/lib/perl5/vendor_perl/5.30/x86_64-cygwin-threads
>     /usr/share/perl5/vendor_perl/5.30
>     /usr/lib/perl5/5.30/x86_64-cygwin-threads
>     /usr/share/perl5/5.30
>
> ls: cannot access '/usr/local/lib/perl5/site_perl/5.30/x86_64-cygwin-threads': No such file or directory
> ls: cannot access '/usr/local/share/perl5/site_perl/5.30': No such file or directory
>
> If I simply create these empty directories the problem goes away.

If its just a warning then there really isn't a problem that needs
fixing, but anyway there is no presumtption that the site directories
must exist anyway.  All installation methods are supposed to create
leading path components.

> Could the perl package just include these empty directories?

See above and /usr/local is off-limits for packaging.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptations for KORG EX-800 and Poly-800MkII V0.9:
http://Synth.Stromeko.net/Downloads.html#KorgSDada


More information about the Cygwin mailing list