Can't Install Perl as Non-Root

Discussion in 'Perl Misc' started by dawmail333, Jan 18, 2008.

  1. dawmail333

    dawmail333 Guest

    Hi!

    I was trying to install a personal version of Perl to my own user
    folder. I am running on a remote webserver that uses Apache. I have
    succeeded with the following steps:

    wget http://perl.com/CPAN/src/stable.tar.gz
    tar zvxf stable.tar.gz
    cd perl-5.8.8
    sh Configure -de -Dprefix=/home/.bazooka/dawliam/perl/

    This is the line I encounter problems on:
    make && make test && make install

    This is the 'dump':
    Extracting find2perl (with variable substitutions)

    make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.8.8/x2p'

    Making B (dynamic)
    opendir(./../../../../..): Permission denied at ../../lib/File/Find.pm
    line 604
    Use of chdir('') or chdir(undef) as chdir() is deprecated at ../../lib/
    File/Find
    ..pm line 751.
    opendir(./../..): Permission denied at ../../lib/ExtUtils/MakeMaker.pm
    line 170
    Couldn't change to directory /home/.bazooka/dawliam/C: No such file or
    directory
    at Makefile.PL line 18
    Writing Makefile for B
    Warning: No Makefile!
    make[1]: Entering directory `/home/.bazooka/dawliam/perl-5.8.8/ext/B'
    make[1]: *** No rule to make target `config'. Stop.
    make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.8.8/ext/B'
    make config failed, continuing anyway...
    make[1]: Entering directory `/home/.bazooka/dawliam/perl-5.8.8/ext/B'
    make[1]: *** No rule to make target `all'. Stop.
    make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.8.8/ext/B'
    make: *** [lib/auto/B/B.so] Error 2
    [hyperion]$ /home/.bazooka/dawliam/perl -MCPAN -e shell
    -bash: /home/.bazooka/dawliam/perl: is a directory
    [hyperion]$

    Can anyone help? Thanks in advance.
     
    dawmail333, Jan 18, 2008
    #1
    1. Advertising

  2. dawmail333

    Ben Morrow Guest

    Quoth dawmail333 <>:
    > Hi!
    >
    > I was trying to install a personal version of Perl to my own user
    > folder. I am running on a remote webserver that uses Apache. I have
    > succeeded with the following steps:
    >
    > wget http://perl.com/CPAN/src/stable.tar.gz
    > tar zvxf stable.tar.gz
    > cd perl-5.8.8
    > sh Configure -de -Dprefix=/home/.bazooka/dawliam/perl/
    >
    > This is the line I encounter problems on:
    > make && make test && make install
    >
    > This is the 'dump':
    > Extracting find2perl (with variable substitutions)
    >
    > make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.8.8/x2p'
    >
    > Making B (dynamic)
    > opendir(./../../../../..): Permission denied at ../../lib/File/Find.pm
    > line 604


    File::Find is trying to work out its cwd, which means it needs to be
    able to readdir all the directories down from /. Do you not have read
    permission on /home?

    > Use of chdir('') or chdir(undef) as chdir() is deprecated at ../../lib/
    > File/Find
    > .pm line 751.


    This is a bug in File::Find. If it can't determine the cwd (and it
    really needs to) it should fail, not start randomly chdiring all over
    the place.

    The rest of the errors are a consequence of being in the wrong
    directory.

    Is it possible for you to build perl (not necessarily install perl) in a
    directory where you *can* read all the directories down from /? Perhaps
    /tmp, if there's enough room there? Otherwise, try 5.10.0, which has a
    newer version of Cwd that (at least on my machine) doesn't fail in the
    same way.

    Ben
     
    Ben Morrow, Jan 19, 2008
    #2
    1. Advertising

  3. dawmail333

    dawmail333 Guest

    On Jan 19, 5:12 pm, Ben Morrow <> wrote:
    > Quoth dawmail333 <>:
    >
    >
    >
    > > Hi!

    >
    > > I was trying to install a personal version of Perl to my own user
    > > folder.  I am running on a remote webserver that uses Apache.  I have
    > > succeeded with the following steps:

    >
    > > wgethttp://perl.com/CPAN/src/stable.tar.gz
    > > tar zvxf stable.tar.gz
    > > cd perl-5.8.8
    > > sh Configure -de -Dprefix=/home/.bazooka/dawliam/perl/

    >
    > > This is the line I encounter problems on:
    > > make && make test && make install

    >
    > > This is the 'dump':
    > > Extracting find2perl (with variable substitutions)

    >
    > > make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.8.8/x2p'

    >
    > >         Making B (dynamic)
    > > opendir(./../../../../..): Permission denied at ../../lib/File/Find.pm
    > > line 604

    >
    > File::Find is trying to work out its cwd, which means it needs to be
    > able to readdir all the directories down from /. Do you not have read
    > permission on /home?
    >
    > > Use of chdir('') or chdir(undef) as chdir() is deprecated at ../../lib/
    > > File/Find
    > > .pm line 751.

    >
    > This is a bug in File::Find. If it can't determine the cwd (and it
    > really needs to) it should fail, not start randomly chdiring all over
    > the place.
    >
    > The rest of the errors are a consequence of being in the wrong
    > directory.
    >
    > Is it possible for you to build perl (not necessarily install perl) in a
    > directory where you *can* read all the directories down from /? Perhaps
    > /tmp, if there's enough room there? Otherwise, try 5.10.0, which has a
    > newer version of Cwd that (at least on my machine) doesn't fail in the
    > same way.
    >
    > Ben


    I don't have read permissions in home, and I don't think I have write
    in tmp either. Doesn't that get removed anyway?

    I tried 5.10, and this is my new error.

    make: *** [install] Error 2
    [hyperion]$ make
    AutoSplitting perl library
    ./miniperl -Ilib -e 'use AutoSplit; \
    autosplit_lib_modules(@ARGV)' lib/*.pm
    ./miniperl -Ilib -e 'use AutoSplit; \
    autosplit_lib_modules(@ARGV)' lib/*/*.pm
    make lib/re.pm
    make[1]: Entering directory `/home/.bazooka/dawliam/perl-5.10.0'
    make[1]: `lib/re.pm' is up to date.
    make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.10.0'

    Making DynaLoader (static)
    make[1]: Entering directory `/home/.bazooka/dawliam/perl-5.10.0/ext/
    DynaLoader'
    /bin/sh: line 1: /miniperl: No such file or directory
    make[1]: *** [../../lib/.exists] Error 127
    make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.10.0/ext/
    DynaLoader'
    make config failed, continuing anyway...
    make[1]: Entering directory `/home/.bazooka/dawliam/perl-5.10.0/ext/
    DynaLoader'
    /bin/sh: line 1: /miniperl: No such file or directory
    make[1]: *** [../../lib/.exists] Error 127
    make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.10.0/ext/
    DynaLoader'
    make: *** [DynaLoader.o] Error 2

    What the hell is going wrong now???
     
    dawmail333, Jan 23, 2008
    #3
  4. dawmail333

    Ben Morrow Guest

    Quoth dawmail333 <>:
    > On Jan 19, 5:12 pm, Ben Morrow <> wrote:
    > >
    > > File::Find is trying to work out its cwd, which means it needs to be
    > > able to readdir all the directories down from /. Do you not have read
    > > permission on /home?
    > >

    <snip>
    > > Is it possible for you to build perl (not necessarily install perl) in a
    > > directory where you *can* read all the directories down from /? Perhaps
    > > /tmp, if there's enough room there? Otherwise, try 5.10.0, which has a
    > > newer version of Cwd that (at least on my machine) doesn't fail in the
    > > same way.

    >
    > I don't have read permissions in home, and I don't think I have write
    > in tmp either. Doesn't that get removed anyway?


    It doesn't matter if it gets removed: you only need to build perl there,
    not install it, so you'd remove the build tree afterwards anyway.

    > I tried 5.10, and this is my new error.
    >

    <snip>
    > make[1]: Entering directory `/home/.bazooka/dawliam/perl-5.10.0/ext/
    > DynaLoader'
    > /bin/sh: line 1: /miniperl: No such file or directory


    This looks like the same problem: the Makefile is supposed to invoke
    miniperl by an absolute path, but it is failing because it can't work
    out its cwd. If you look at ext/Dynaloader/Makefile, what is ABSPERL set
    to (it's in the section called 'MakeMaker constants section')? It should
    be an absolute path to miniperl in the build directory.

    I suspect you may not be able to fix this, as MakeMaker needs to know
    its cwd, even after perl is installed. Can you find it at all? What do
    you get if you run, from the build directory,

    /bin/pwd
    ./miniperl -Ilib -MCwd -le'print Cwd::getcwd'
    ./miniperl -Ilib -MCwd -le'print Cwd::cwd'

    If one of those works, you may be able to patch MakeMaker to use it.

    Ben
     
    Ben Morrow, Jan 23, 2008
    #4
  5. dawmail333

    dawmail333 Guest

    On Jan 24, 1:41 am, Ben Morrow <> wrote:
    > Quoth dawmail333 <>:
    >
    > > On Jan 19, 5:12 pm, Ben Morrow <> wrote:

    >
    > > > File::Find is trying to work out its cwd, which means it needs to be
    > > > able to readdir all the directories down from /. Do you not have read
    > > > permission on /home?

    >
    > <snip>
    > > > Is it possible for you to build perl (not necessarily install perl) ina
    > > > directory where you *can* read all the directories down from /? Perhaps
    > > > /tmp, if there's enough room there? Otherwise, try 5.10.0, which has a
    > > > newer version of Cwd that (at least on my machine) doesn't fail in the
    > > > same way.

    >
    > > I don't have read permissions in home, and I don't think I have write
    > > in tmp either.  Doesn't that get removed anyway?

    >
    > It doesn't matter if it gets removed: you only need to build perl there,
    > not install it, so you'd remove the build tree afterwards anyway.
    >
    >
    >
    > > I tried 5.10, and this is my new error.

    >
    > <snip>
    > > make[1]: Entering directory `/home/.bazooka/dawliam/perl-5.10.0/ext/
    > > DynaLoader'
    > > /bin/sh: line 1: /miniperl: No such file or directory

    >
    > This looks like the same problem: the Makefile is supposed to invoke
    > miniperl by an absolute path, but it is failing because it can't work
    > out its cwd. If you look at ext/Dynaloader/Makefile, what is ABSPERL set
    > to (it's in the section called 'MakeMaker constants section')? It should
    > be an absolute path to miniperl in the build directory.
    >
    > I suspect you may not be able to fix this, as MakeMaker needs to know
    > its cwd, even after perl is installed. Can you find it at all? What do
    > you get if you run, from the build directory,
    >
    >     /bin/pwd
    >     ./miniperl -Ilib -MCwd -le'print Cwd::getcwd'
    >     ./miniperl -Ilib -MCwd -le'print Cwd::cwd'
    >
    > If one of those works, you may be able to patch MakeMaker to use it.
    >
    > Ben


    This line works:
    ./miniperl -Ilib -MCwd -le'print Cwd::cwd'
    So how do I patch Dynaloader?
     
    dawmail333, Jan 24, 2008
    #5
  6. dawmail333

    Ben Morrow Guest

    Quoth dawmail333 <>:
    > On Jan 24, 1:41 am, Ben Morrow <> wrote:
    > > Quoth dawmail333 <>:
    > > > On Jan 19, 5:12 pm, Ben Morrow <> wrote:

    > >
    > > > > File::Find is trying to work out its cwd, which means it needs to be
    > > > > able to readdir all the directories down from /. Do you not have read
    > > > > permission on /home?

    > >

    <snip>
    > > > I tried 5.10, and this is my new error.

    > >

    <snip>
    > > I suspect you may not be able to fix this, as MakeMaker needs to know
    > > its cwd, even after perl is installed. Can you find it at all? What do
    > > you get if you run, from the build directory,
    > >
    > >     /bin/pwd
    > >     ./miniperl -Ilib -MCwd -le'print Cwd::getcwd'
    > >     ./miniperl -Ilib -MCwd -le'print Cwd::cwd'
    > >
    > > If one of those works, you may be able to patch MakeMaker to use it.

    >
    > This line works:
    > ./miniperl -Ilib -MCwd -le'print Cwd::cwd'
    > So how do I patch Dynaloader?


    Apply this patch with patch -p0 <cwd.patch from in the perl source
    directory. Check after you have installed perl that you can still
    install XS modules sucessfully, and make sure you don't upgrade
    File::Spec (if you do, you'll need to patch it again) :). Could you let
    me know if this works? If it does I'll suggest it to the File::Spec
    maintainer.

    Ben

    --- lib/File/Spec/Unix.pm Tue Dec 18 10:47:07 2007
    +++ lib/File/Spec/Unix.pm.cwd Thu Jan 24 02:38:09 2008
    @@ -475,7 +475,7 @@
    # File::Spec subclasses use this.
    sub _cwd {
    require Cwd;
    - Cwd::getcwd();
    + Cwd::cwd();
    }
     
    Ben Morrow, Jan 24, 2008
    #6
  7. dawmail333

    dawmail333 Guest

    On Jan 24, 12:46 pm, Ben Morrow <> wrote:
    > Quoth dawmail333 <>:
    >
    >
    >
    > > On Jan 24, 1:41 am, Ben Morrow <> wrote:
    > > > Quoth dawmail333 <>:
    > > > > On Jan 19, 5:12 pm, Ben Morrow <> wrote:

    >
    > > > > > File::Find is trying to work out its cwd, which means it needs to be
    > > > > > able to readdir all the directories down from /. Do you not have read
    > > > > > permission on /home?

    >
    > <snip>
    > > > > I tried 5.10, and this is my new error.

    >
    > <snip>
    > > > I suspect you may not be able to fix this, as MakeMaker needs to know
    > > > its cwd, even after perl is installed. Can you find it at all? What do
    > > > you get if you run, from the build directory,

    >
    > > >     /bin/pwd
    > > >     ./miniperl -Ilib -MCwd -le'print Cwd::getcwd'
    > > >     ./miniperl -Ilib -MCwd -le'print Cwd::cwd'

    >
    > > > If one of those works, you may be able to patch MakeMaker to use it.

    >
    > > This line works:
    > > ./miniperl -Ilib -MCwd -le'print Cwd::cwd'
    > > So how do I patch Dynaloader?

    >
    > Apply this patch with patch -p0 <cwd.patch from in the perl source
    > directory. Check after you have installed perl that you can still
    > install XS modules sucessfully, and make sure you don't upgrade
    > File::Spec (if you do, you'll need to patch it again) :). Could you let
    > me know if this works? If it does I'll suggest it to the File::Spec
    > maintainer.
    >
    > Ben
    >
    > --- lib/File/Spec/Unix.pm       Tue Dec 18 10:47:07 2007
    > +++ lib/File/Spec/Unix.pm.cwd   Thu Jan 24 02:38:09 2008
    > @@ -475,7 +475,7 @@
    >  # File::Spec subclasses use this.
    >  sub _cwd {
    >      require Cwd;
    > -    Cwd::getcwd();
    > +    Cwd::cwd();
    >  }


    Sorry, I'm not a terribly knowledgeable person about Linux. Could you
    please give me easy, step by step commands to follow? I can access a
    terminal and all that, but I have never installed Perl before, and
    don't understand what you are saying.
     
    dawmail333, Jan 24, 2008
    #7
  8. dawmail333

    Ben Morrow Guest

    Quoth dawmail333 <>:
    > On Jan 24, 12:46 pm, Ben Morrow <> wrote:
    > >

    <snip>
    > > Apply this patch with patch -p0 <cwd.patch from in the perl source
    > > directory. Check after you have installed perl that you can still
    > > install XS modules sucessfully, and make sure you don't upgrade
    > > File::Spec (if you do, you'll need to patch it again) :). Could you let
    > > me know if this works? If it does I'll suggest it to the File::Spec
    > > maintainer.

    >
    > Sorry, I'm not a terribly knowledgeable person about Linux. Could you
    > please give me easy, step by step commands to follow? I can access a
    > terminal and all that, but I have never installed Perl before, and
    > don't understand what you are saying.


    OK, that's fine :).

    - Save this message somewhere, and transfer it to the machine you're
    building perl on. Make sure your newsreader/ftp client/whatever
    doesn't mangle it.

    - Delete your perl build directory and untar it again.

    rm -rf perl-5.10.0
    tar -xzvf perl-5.10.0.tar.gz

    - Copy this message into the new perl-5.10.0 directory as cwd.patch.

    cp this.message perl-5.10.0/cwd.patch

    - cd into the perl build directory.

    cd perl-5.10.0

    - Run the command

    patch -p0 <cwd.patch

    - Try to build perl again.

    - If it succeeds, and installs correctly, try installing an XS
    module from CPAN, to make sure it works. Something like

    /path/to/new/perl -MCPAN -e'force(install => "Scalar::Util")'

    . This should succeed.

    If you could post the output of

    /path/to/new/perl -MCwd -le'print Cwd::cwd'
    /path/to/new/perl -MCwd -le'print Cwd::getcwd'

    after installing, this would be helpful: at least on my system, getcwd
    only fails under miniperl, as getcwd(3) has kernel support and doesn't
    need readable directories.

    Ben

    [patch appended again]

    --- lib/File/Spec/Unix.pm Thu Jan 24 04:18:08 2008
    +++ lib/File/Spec/Unix.pm.cwd Thu Jan 24 04:19:40 2008
    @@ -475,7 +475,7 @@
    # File::Spec subclasses use this.
    sub _cwd {
    require Cwd;
    - Cwd::getcwd();
    + Cwd::cwd();
    }
     
    Ben Morrow, Jan 24, 2008
    #8
  9. dawmail333

    dawmail333 Guest

    On Jan 24, 2:22 pm, Ben Morrow <> wrote:
    > Quoth dawmail333 <>:
    >
    > > On Jan 24, 12:46 pm, Ben Morrow <> wrote:

    >
    > <snip>
    > > > Apply this patch with patch -p0 <cwd.patch from in the perl source
    > > > directory. Check after you have installed perl that you can still
    > > > install XS modules sucessfully, and make sure you don't upgrade
    > > > File::Spec (if you do, you'll need to patch it again) :). Could you let
    > > > me know if this works? If it does I'll suggest it to the File::Spec
    > > > maintainer.

    >
    > > Sorry, I'm not a terribly knowledgeable person about Linux.  Could you
    > > please give me easy, step by step commands to follow?  I can access a
    > > terminal and all that, but I have never installed Perl before, and
    > > don't understand what you are saying.

    >
    > OK, that's fine :).
    >
    >     - Save this message somewhere, and transfer it to the machine you're
    >       building perl on. Make sure your newsreader/ftp client/whatever
    >       doesn't mangle it.
    >
    >     - Delete your perl build directory and untar it again.
    >
    >         rm -rf perl-5.10.0
    >         tar -xzvf perl-5.10.0.tar.gz
    >
    >     - Copy this message into the new perl-5.10.0 directory as cwd.patch.
    >
    >         cp this.message perl-5.10.0/cwd.patch
    >
    >     - cd into the perl build directory.
    >
    >         cd perl-5.10.0
    >
    >     - Run the command
    >
    >         patch -p0 <cwd.patch
    >
    >     - Try to build perl again.
    >
    >     - If it succeeds, and installs correctly, try installing an XS
    >       module from CPAN, to make sure it works. Something like
    >
    >         /path/to/new/perl -MCPAN -e'force(install => "Scalar::Util")'
    >
    >       . This should succeed.
    >
    > If you could post the output of
    >
    >     /path/to/new/perl -MCwd -le'print Cwd::cwd'
    >     /path/to/new/perl -MCwd -le'print Cwd::getcwd'
    >
    > after installing, this would be helpful: at least on my system, getcwd
    > only fails under miniperl, as getcwd(3) has kernel support and doesn't
    > need readable directories.
    >
    > Ben
    >
    > [patch appended again]
    >
    > --- lib/File/Spec/Unix.pm       Thu Jan 24 04:18:08 2008
    > +++ lib/File/Spec/Unix.pm.cwd   Thu Jan 24 04:19:40 2008
    > @@ -475,7 +475,7 @@
    >  # File::Spec subclasses use this.
    >  sub _cwd {
    >      require Cwd;
    > -    Cwd::getcwd();
    > +    Cwd::cwd();
    >  }


    That patch didn't work, so I manually changed the line in question.
    It then went much further, until:

    including snprintf
    including exception
    including strlfuncs
    running /home/.bazooka/dawliam/perl-5.10.0/miniperl -I../../../lib
    ppport_h.PL
    installing ppport.h for ext/Time/HiRes
    installing ppport.h for ext/Win32API/File
    removing temporary file PPPort.pm
    removing temporary file ppport.h

    Making B (dynamic)
    opendir(./../../../../..): Permission denied at ../../lib/File/Find.pm
    line 605
    Use of chdir('') or chdir(undef) as chdir() is deprecated at ../../lib/
    File/Find
    .pm line 768.
    Writing Makefile for B
    Warning: No Makefile!
    make[1]: Entering directory `/home/.bazooka/dawliam/perl-5.10.0/ext/B'
    make[1]: *** No rule to make target `config'. Stop.
    make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.10.0/ext/B'
    make config failed, continuing anyway...
    make[1]: Entering directory `/home/.bazooka/dawliam/perl-5.10.0/ext/B'
    make[1]: *** No rule to make target `all'. Stop.
    make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.10.0/ext/B'
    make: *** [lib/auto/B/B.so] Error 2
    [hyperion]$

    Is this another error to do with not being able to read the /home/ dir?
     
    dawmail333, Jan 24, 2008
    #9
  10. dawmail333

    dawmail333 Guest

    On Jan 24, 2:45 pm, dawmail333 <> wrote:
    > On Jan 24, 2:22 pm, Ben Morrow <> wrote:
    >
    >
    >
    > > Quoth dawmail333 <>:

    >
    > > > On Jan 24, 12:46 pm, Ben Morrow <> wrote:

    >
    > > <snip>
    > > > > Apply this patch with patch -p0 <cwd.patch from in the perl source
    > > > > directory. Check after you have installed perl that you can still
    > > > > install XS modules sucessfully, and make sure you don't upgrade
    > > > > File::Spec (if you do, you'll need to patch it again) :). Could you let
    > > > > me know if this works? If it does I'll suggest it to the File::Spec
    > > > > maintainer.

    >
    > > > Sorry, I'm not a terribly knowledgeable person about Linux.  Could you
    > > > please give me easy, step by step commands to follow?  I can access a
    > > > terminal and all that, but I have never installed Perl before, and
    > > > don't understand what you are saying.

    >
    > > OK, that's fine :).

    >
    > >     - Save this message somewhere, and transfer it to the machine you're
    > >       building perl on. Make sure your newsreader/ftp client/whatever
    > >       doesn't mangle it.

    >
    > >     - Delete your perl build directory and untar it again.

    >
    > >         rm -rf perl-5.10.0
    > >         tar -xzvf perl-5.10.0.tar.gz

    >
    > >     - Copy this message into the new perl-5.10.0 directory as cwd.patch.

    >
    > >         cp this.message perl-5.10.0/cwd.patch

    >
    > >     - cd into the perl build directory.

    >
    > >         cd perl-5.10.0

    >
    > >     - Run the command

    >
    > >         patch -p0 <cwd.patch

    >
    > >     - Try to build perl again.

    >
    > >     - If it succeeds, and installs correctly, try installing an XS
    > >       module from CPAN, to make sure it works. Something like

    >
    > >         /path/to/new/perl -MCPAN -e'force(install => "Scalar::Util")'

    >
    > >       . This should succeed.

    >
    > > If you could post the output of

    >
    > >     /path/to/new/perl -MCwd -le'print Cwd::cwd'
    > >     /path/to/new/perl -MCwd -le'print Cwd::getcwd'

    >
    > > after installing, this would be helpful: at least on my system, getcwd
    > > only fails under miniperl, as getcwd(3) has kernel support and doesn't
    > > need readable directories.

    >
    > > Ben

    >
    > > [patch appended again]

    >
    > > --- lib/File/Spec/Unix.pm       Thu Jan 24 04:18:08 2008
    > > +++ lib/File/Spec/Unix.pm.cwd   Thu Jan 24 04:19:40 2008
    > > @@ -475,7 +475,7 @@
    > >  # File::Spec subclasses use this.
    > >  sub _cwd {
    > >      require Cwd;
    > > -    Cwd::getcwd();
    > > +    Cwd::cwd();
    > >  }

    >
    > That patch didn't work, so I manually changed the line in question.
    > It then went much further, until:
    >
    > including snprintf
    > including exception
    > including strlfuncs
    > running /home/.bazooka/dawliam/perl-5.10.0/miniperl -I../../../lib
    > ppport_h.PL
    > installing ppport.h for ext/Time/HiRes
    > installing ppport.h for ext/Win32API/File
    > removing temporary file PPPort.pm
    > removing temporary file ppport.h
    >
    >         Making B (dynamic)
    > opendir(./../../../../..): Permission denied at ../../lib/File/Find.pm
    > line 605
    > Use of chdir('') or chdir(undef) as chdir() is deprecated at ../../lib/
    > File/Find
    > .pm line 768.
    > Writing Makefile for B
    > Warning: No Makefile!
    > make[1]: Entering directory `/home/.bazooka/dawliam/perl-5.10.0/ext/B'
    > make[1]: *** No rule to make target `config'.  Stop.
    > make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.10.0/ext/B'
    > make config failed, continuing anyway...
    > make[1]: Entering directory `/home/.bazooka/dawliam/perl-5.10.0/ext/B'
    > make[1]: *** No rule to make target `all'.  Stop.
    > make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.10.0/ext/B'
    > make: *** [lib/auto/B/B.so] Error 2
    > [hyperion]$
    >
    > Is this another error to do with not being able to read the /home/ dir?


    Sorry, I fixed this problem as well. I have hit another one:

    make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.10.0/ext/
    Digest/SHA'

    Making Encode (dynamic)
    opendir(../../lib/../../../..): Permission denied at ../../lib/
    ExtUtils/MakeMake
    r.pm line 182
    opendir(./../../../../..): Permission denied at ../../lib/ExtUtils/
    MakeMaker.pm
    line 182
    ERROR from evaluation of /home/.bazooka/dawliam/perl-5.10.0/ext/Encode/
    Byte/Make
    file.PL: Can't locate File/Spec/Functions.pm in @INC (@INC
    contains: ../../lib /
    home/.bazooka/dawliam/bin/perl/lib/5.10.0/i686-linux /home/.bazooka/
    dawliam/bin/
    perl/lib/5.10.0 /home/.bazooka/dawliam/bin/perl/lib/site_perl/5.10.0/
    i686-linux
    /home/.bazooka/dawliam/bin/perl/lib/site_perl/5.10.0 . .) at ./
    Makefile.PL line
    4.
    BEGIN failed--compilation aborted at ./Makefile.PL line 4.
    Warning: No Makefile!
    make[1]: Entering directory `/home/.bazooka/dawliam/perl-5.10.0/ext/
    Encode'
    make[1]: *** No rule to make target `config'. Stop.
    make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.10.0/ext/
    Encode'
    make config failed, continuing anyway...
    make[1]: Entering directory `/home/.bazooka/dawliam/perl-5.10.0/ext/
    Encode'
    make[1]: *** No rule to make target `all'. Stop.
    make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.10.0/ext/
    Encode'
    make: *** [lib/auto/Encode/Encode.so] Error 2
    [hyperion]$

    /home/.bazooka/dawliam/perl-5.10.0/ext/Encode/lib/auto doesn't exist.
    /home/.bazooka/dawliam/perl-5.10.0/lib/auto/Encode/Encode.so doesn't
    exist.

    What do I need to do now?

    Oh BTW, thanks for the help so far.
     
    dawmail333, Jan 24, 2008
    #10
  11. dawmail333

    Ben Morrow Guest

    Quoth dawmail333 <>:
    > On Jan 24, 2:45 pm, dawmail333 <> wrote:
    > > On Jan 24, 2:22 pm, Ben Morrow <> wrote:
    > > >
    > > > --- lib/File/Spec/Unix.pm       Thu Jan 24 04:18:08 2008
    > > > +++ lib/File/Spec/Unix.pm.cwd   Thu Jan 24 04:19:40 2008
    > > > @@ -475,7 +475,7 @@
    > > >  # File::Spec subclasses use this.
    > > >  sub _cwd {
    > > >      require Cwd;
    > > > -    Cwd::getcwd();
    > > > +    Cwd::cwd();
    > > >  }

    > >
    > > That patch didn't work, so I manually changed the line in question.


    It applied when it left here (I checked), so your newsreader made a mess
    of it somehow.

    <snip>
    > Sorry, I fixed this problem as well. I have hit another one:
    >
    > make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.10.0/ext/
    > Digest/SHA'
    >
    > Making Encode (dynamic)
    > opendir(../../lib/../../../..): Permission denied at ../../lib/
    > ExtUtils/MakeMake
    > r.pm line 182


    OK, this is getting silly... one more try, then I'm giving up :).

    Ben

    --- lib/Cwd.pm Tue Dec 18 10:47:07 2007
    +++ lib/Cwd.pm.cwd Thu Jan 24 12:33:29 2008
    @@ -501,6 +501,11 @@
    sub _perl_abs_path
    {
    my $start = @_ ? shift : '.';
    +
    + # this just returns a path down from /, without attempting to
    + # resolve .. or symlinks. It *may* be sufficient to build perl.
    + return $start =~ m!^/! ? $start : cwd() . '/' . $start;
    +
    my($dotdots, $cwd, @pst, @cst, $dir, @tst);

    unless (@cst = stat( $start ))
     
    Ben Morrow, Jan 24, 2008
    #11
  12. dawmail333

    dawmail333 Guest

    On Jan 24, 10:39 pm, Ben Morrow <> wrote:
    > Quoth dawmail333 <>:
    >
    > > On Jan 24, 2:45 pm, dawmail333 <> wrote:
    > > > On Jan 24, 2:22 pm, Ben Morrow <> wrote:

    >
    > > > > --- lib/File/Spec/Unix.pm       Thu Jan 24 04:18:08 2008
    > > > > +++ lib/File/Spec/Unix.pm.cwd   Thu Jan 24 04:19:40 2008
    > > > > @@ -475,7 +475,7 @@
    > > > >  # File::Spec subclasses use this.
    > > > >  sub _cwd {
    > > > >      require Cwd;
    > > > > -    Cwd::getcwd();
    > > > > +    Cwd::cwd();
    > > > >  }

    >
    > > > That patch didn't work, so I manually changed the line in question.

    >
    > It applied when it left here (I checked), so your newsreader made a mess
    > of it somehow.
    >
    > <snip>
    >
    > > Sorry, I fixed this problem as well.  I have hit another one:

    >
    > > make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.10.0/ext/
    > > Digest/SHA'

    >
    > >         Making Encode (dynamic)
    > > opendir(../../lib/../../../..): Permission denied at ../../lib/
    > > ExtUtils/MakeMake
    > > r.pm line 182

    >
    > OK, this is getting silly... one more try, then I'm giving up :).
    >
    > Ben
    >
    > --- lib/Cwd.pm  Tue Dec 18 10:47:07 2007
    > +++ lib/Cwd.pm.cwd      Thu Jan 24 12:33:29 2008
    > @@ -501,6 +501,11 @@
    >  sub _perl_abs_path
    >  {
    >      my $start = @_ ? shift : '.';
    > +
    > +    # this just returns a path down from /, without attempting to
    > +    # resolve .. or symlinks. It *may* be sufficient to build perl.
    > +    return $start =~ m!^/! ? $start : cwd() . '/' . $start;
    > +
    >      my($dotdots, $cwd, @pst, @cst, $dir, @tst);
    >
    >      unless (@cst = stat( $start ))


    It worked!!! It said the patch ended unexpectedly, but it still
    patched, and Perl is installed!

    Just a question though, I set the prefix to /home/.bazooka/dawliam/
    bin/
    thinking that it would then be /home/.bazooka/dawliam/bin/perl,
    but instead, it is /home/.bazooka/dawliam/bin/bin/perl.
    Is it possible to shift it, and not have to remake or reinstall the
    CPAN packages I installed?
     
    dawmail333, Jan 25, 2008
    #12
  13. dawmail333

    dawmail333 Guest

    On Jan 24, 10:39 pm, Ben Morrow <> wrote:
    > Quoth dawmail333 <>:
    >
    > > On Jan 24, 2:45 pm, dawmail333 <> wrote:
    > > > On Jan 24, 2:22 pm, Ben Morrow <> wrote:

    >
    > > > > --- lib/File/Spec/Unix.pm       Thu Jan 24 04:18:08 2008
    > > > > +++ lib/File/Spec/Unix.pm.cwd   Thu Jan 24 04:19:40 2008
    > > > > @@ -475,7 +475,7 @@
    > > > >  # File::Spec subclasses use this.
    > > > >  sub _cwd {
    > > > >      require Cwd;
    > > > > -    Cwd::getcwd();
    > > > > +    Cwd::cwd();
    > > > >  }

    >
    > > > That patch didn't work, so I manually changed the line in question.

    >
    > It applied when it left here (I checked), so your newsreader made a mess
    > of it somehow.
    >
    > <snip>
    >
    > > Sorry, I fixed this problem as well.  I have hit another one:

    >
    > > make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.10.0/ext/
    > > Digest/SHA'

    >
    > >         Making Encode (dynamic)
    > > opendir(../../lib/../../../..): Permission denied at ../../lib/
    > > ExtUtils/MakeMake
    > > r.pm line 182

    >
    > OK, this is getting silly... one more try, then I'm giving up :).
    >
    > Ben
    >
    > --- lib/Cwd.pm  Tue Dec 18 10:47:07 2007
    > +++ lib/Cwd.pm.cwd      Thu Jan 24 12:33:29 2008
    > @@ -501,6 +501,11 @@
    >  sub _perl_abs_path
    >  {
    >      my $start = @_ ? shift : '.';
    > +
    > +    # this just returns a path down from /, without attempting to
    > +    # resolve .. or symlinks. It *may* be sufficient to build perl.
    > +    return $start =~ m!^/! ? $start : cwd() . '/' . $start;
    > +
    >      my($dotdots, $cwd, @pst, @cst, $dir, @tst);
    >
    >      unless (@cst = stat( $start ))


    Oh great, I can't seem to install some modules. Considering there is
    an earlier version of perl on the system, what special configuration
    do I need to do?
     
    dawmail333, Jan 25, 2008
    #13
  14. dawmail333

    dawmail333 Guest

    On Jan 24, 10:39 pm, Ben Morrow <> wrote:
    > Quoth dawmail333 <>:
    >
    > > On Jan 24, 2:45 pm, dawmail333 <> wrote:
    > > > On Jan 24, 2:22 pm, Ben Morrow <> wrote:

    >
    > > > > --- lib/File/Spec/Unix.pm       Thu Jan 24 04:18:08 2008
    > > > > +++ lib/File/Spec/Unix.pm.cwd   Thu Jan 24 04:19:40 2008
    > > > > @@ -475,7 +475,7 @@
    > > > >  # File::Spec subclasses use this.
    > > > >  sub _cwd {
    > > > >      require Cwd;
    > > > > -    Cwd::getcwd();
    > > > > +    Cwd::cwd();
    > > > >  }

    >
    > > > That patch didn't work, so I manually changed the line in question.

    >
    > It applied when it left here (I checked), so your newsreader made a mess
    > of it somehow.
    >
    > <snip>
    >
    > > Sorry, I fixed this problem as well.  I have hit another one:

    >
    > > make[1]: Leaving directory `/home/.bazooka/dawliam/perl-5.10.0/ext/
    > > Digest/SHA'

    >
    > >         Making Encode (dynamic)
    > > opendir(../../lib/../../../..): Permission denied at ../../lib/
    > > ExtUtils/MakeMake
    > > r.pm line 182

    >
    > OK, this is getting silly... one more try, then I'm giving up :).
    >
    > Ben
    >
    > --- lib/Cwd.pm  Tue Dec 18 10:47:07 2007
    > +++ lib/Cwd.pm.cwd      Thu Jan 24 12:33:29 2008
    > @@ -501,6 +501,11 @@
    >  sub _perl_abs_path
    >  {
    >      my $start = @_ ? shift : '.';
    > +
    > +    # this just returns a path down from /, without attempting to
    > +    # resolve .. or symlinks. It *may* be sufficient to build perl.
    > +    return $start =~ m!^/! ? $start : cwd() . '/' . $start;
    > +
    >      my($dotdots, $cwd, @pst, @cst, $dir, @tst);
    >
    >      unless (@cst = stat( $start ))


    It worked! I installed perl! Now, the trick is, what configuration
    do I need to install modules? There is another version of perl which
    I can't install modules to, so can you tell me what configuration I
    need?
     
    dawmail333, Jan 25, 2008
    #14
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    0
    Views:
    1,245
  2. hector
    Replies:
    5
    Views:
    415
    CBFalconer
    Dec 5, 2006
  3. Replies:
    3
    Views:
    1,502
  4. News123
    Replies:
    4
    Views:
    2,765
    News123
    Apr 21, 2009
  5. Pra Bhandar
    Replies:
    2
    Views:
    132
    Pra Bhandar
    Feb 18, 2009
Loading...

Share This Page