develooper Front page | perl.perl5.porters | Postings from July 2003

Re: [perl #23011] Cwd::cwd() fails during perl-5.8.0 compilation

From:
slaven
Date:
July 21, 2003 05:32
Subject:
Re: [perl #23011] Cwd::cwd() fails during perl-5.8.0 compilation
Message ID:
1058790071.17982@devpc01.iconmobile.de
"Vrihad Shoonya" <vrihad@myway.com> wrote:
> 
> 
> Hi!
> 
> >> I am compiling perl-5.8.0 in chrooted environment
> >> where many system tools are not in its proper places.
> >> --snip--
> 
> > Cwd.pm should check $ENV{PATH} for an executable pwd,
> > hence you should set your PATH variable appropriately.
> I think it is not happening with Cwd.pm available in
> lib/Cwd.pm in perl source tree. I checked the file and
> though I am not a perl expert, the path for /usr/bin/pwd
> and /bin/pwd is checked explicitly here. And my PATH
> variable contains /usr/local/bin.

This is the code (beginning at line 211):

unless(defined &cwd) {
    # The pwd command is not available in some chroot(2)'ed environments
    if( $^O eq 'MacOS' || (defined $ENV{PATH} && 
                           grep { -x "$_/pwd" } split(':', $ENV{PATH})) ) 
    {
        *cwd = \&_backtick_pwd;
...

> 
> > As an alternative, you can use fastcwd() instead,
> > which on many systems use an cwd implementation
> > which does not need external tools.
> I don't know how to use it. I am talking about the
> perl configuration script which uses Cwd::cwd() and it
> was failing in my case. Anyway the problem is solved by
> providing a symlink of /usr/local/bin/pwd to /usr/bin/pwd.
> 

   perl -MCwd=fastcwd -e 'warn fastcwd'

or to still retain calling cwd(), but using fastcwd() under the hood:

   perl -MCwd= -e '*cwd=\&Cwd::fastcwd; warn cwd'

Regards,
    Slaven



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About