in reply to Problems installing Crypt:OpenPGP in local user area

First try touch /home/wright/.cpan/sources/xyz to make sure you really can create files there. If not, take a closer look at .cpan and .cpan/sources with "ls -al". Are you really the owner, is it maybe a symbolic link to somewhere you don't have write permissions to?

You might use strace -f -o /tmp/xyz as a prefix to your cpan invocation. You'll then find in /tmp/xyz all system calls done by cpan and even if you don't know much about unix you probably can identify the specific system call that resulted in the warning message somewhere near the end of the file. Check the man-page for that call or post it here for an interpretation.

Maybe the error message you got is wrong (bug in cpan or some installer!?), and it really is a full file system or a corrupted file system or a totally different directory that denies access. Try df /home/wright/.cpan/sources/ to check for space left on the partition it is in. This also shows you whether the dir is really in the file system you expect

Replies are listed 'Best First'.
Re^2: Problems installing Crypt:OpenPGP in local user area
by Popcorn Dave (Abbot) on Apr 16, 2008 at 21:53 UTC
    Thanks for the reply to both you and almut!

    Your first suggestion worked out just fine. No problems there at all. I was able to do 'touch xyz' and it created the file without a hitch. So I tried the strace and came back with a 25M file, of which I searched for a permissions issue and it came back with this:

    15290 open("/etc/shadow", O_RDONLY) = -1 EACCES (Permission denied +) 15290 stat64("/home/wright/.libnetrc", 0x8121b60) = -1 ENOENT (No such + file or directory) 15290 stat64("utils/Fcntl.pmc", 0xbfffd5e0) = -1 ENOENT (No such file +or directory) 15290 open("utils/Fcntl.pm", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No suc +h file or directory) 15290 stat64("/home/wright/lib/perl5/site_perl/5.8.4/i686-linux/Fcntl. +pmc", 0xbfffd5e0) = -1 ENOENT (No such file or directory) 15290 open("/home/wright/lib/perl5/site_perl/5.8.4/i686-linux/Fcntl.pm +", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 15290 stat64("/home/wright/lib/perl­5/site_perl/5.8.4/Fcntl.pmc", 0xbf +ffd5e0) = -1 ENOENT (No such file or directory) 15290 open("/home/wright/lib/perl­5/site_perl/5.8.4/Fcntl.pm", O_RDONL +Y|O_LARGEFILE) = -1 ENOENT (No such file or directory) 15290 stat64("/usr/lib/perl5/5.8.0/i386-linux/Fcntl.pmc", 0xbfffd5e0) += -1 ENOENT (No such file or directory) 15290 open("/usr/lib/perl5/5.8.0/i386-linux/Fcntl.pm", O_RDONLY|O_LARG +EFILE) = 4 15290 ioctl(4, SNDCTL_TMR_TIMEBASE, 0xbfffd3e0) = -1 ENOTTY (Inappropr +iate ioctl for device) 15290 _llseek(4, 0, [0], SEEK_CUR) = 0 15290 brk(0x8499000) = 0x8499000 15290 read(4, "package Fcntl;\n\n=head1 NAME\n\nFcn"..., 4096) = 4096 15290 brk(0x849a000) = 0x849a000 15290 read(4, "SENFMT\t\t\n\t\t S_IFMT S_IMODE\n "..., 4096) = 102 +6 15290 brk(0x849b000) = 0x849b000 15290 brk(0x849c000) = 0x849c000 15290 brk(0x849d000) = 0x849d000 15290 brk(0x849e000) = 0x849e000 15290 brk(0x849f000) = 0x849f000 15290 read(4, "", 4096) = 0 15290 close(4) = 0 15290 brk(0x84a0000) = 0x84a0000 15290 stat64("/usr/lib/perl5/5.8.0/i386-linux/auto/Fcntl/Fcntl.so", {s +t_mode=S_IFREG|0555, st_size=11256, ...}) = 0 15290 stat64("/usr/lib/perl5/5.8.0/i386-linux/auto/Fcntl/Fcntl.bs", {s +t_mode=S_IFREG|0444, st_size=0, ...}) = 0 15290 open("/usr/lib/perl5/5.8.0/i386-linux/auto/Fcntl/Fcntl.so", O_RD +ONLY) = 4 15290 read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260\t\0 +"..., 1024) = 1024 15290 fstat64(4, {st_mode=S_IFREG|0555, st_size=11256, ...}) = 0 15290 old_mmap(NULL, 14180, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = +0x2d6000 15290 mprotect(0x2d9000, 1892, PROT_NONE) = 0 15290 old_mmap(0x2d9000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_F +IXED, 4, 0x2000) = 0x2d9000 15290 close(4) = 0

    Hopefully I've provided enough of a snippet there that it makes sense to you, because unfortunately it's left me more confused than when I started. I would think that since the CPAN shell is running in my local directory it should be able to create the directories it needs or am I wrong in that?

    I've tried to even install some of the pre-requisites *before* trying Crypt::OpenPGP but when I then try to install the module, it seems to be saying that the pre-requisites that I've already (I thought) installed aren't there which makes no sense as they seem to have installed with no errors.

    Finally, the df command returned:

    Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda1 198980892 129116736 69864156 65% /

    so I would think that I've got plenty of room to install all that I'm trying to do, don't I?


    Revolution. Today, 3 O'Clock. Meet behind the monkey bars.

    I would love to change the world, but they won't give me the source code

      Sorry for the late reply. Actually almut has the probable cause of your problems. Especially after all my suggestions turned up negative.

      EDIT: A step-by-step recipe of almuts solution:

      First find the installed ExtUtils::AutoInstall:

      locate ExtUtils/AutoInstall
      or
      find /usr/lib -name 'AutoInstall.pm' -print
      This will tell you the location of AutoInstall.pm, probably in /usr/lib/perl5/5.8.0/ExtUtils/

      Now copy the systemwide AutoInstall.pm to your homedir:

      mkdir ~/lib/perl5/site_perl/5.8.0/ExtUtils cp <pathtoautoinstall>/AutoInstall.pm ~/lib/perl5/site_perl/5.8.0/ExtU +tils
      Edit your copy of AutoInstall.pm. Find the line mentioned by almut (the one with Config{sitelib}) and change it to the newer version.

      That's it. You don't need to change PERL5LIB because you already did this when you installed cpan with Zaxos method.