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 -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple