Trouble installing 'private' versions of modules 
Author Message
 Trouble installing 'private' versions of modules

At last I've moved off of 5.4 to 5.6 [we upgraded our system, yay!].  BUT
-- I'm running into a problem and I confess that I have never really
understood all the config/module/install stuff very well and so I'm a bit
befuddled.  I have one of my old 5.4 modules that I need to install
privately.  I tried doing the exact same thing on the new system that I did
on the old one, but it isn't working.  Here's what I do:

make clean
perl Makefile.PL PREFIX=/home/bernie/MYPERLDIR

Quote:
} Checking if your kit is complete...
} Looks good
} Using DBI 1.20 installed in /mnt/perlmodules/lib/site_perl/5.6.1/i686-linux/auto
} /DBI
} Writing Makefile for DBD::SQLite

so far so good. I double check in the makefile:
$ grep bernie Makefile

Quote:
} #   MakeMaker ARGV: (q[PREFIX=/home/bernie/MYPERLDIR)
} PREFIX = /home/bernie/MYPERLDIR
}         $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" Makefile.PL "PREFIX=/home/bernie/MYPERLDIR"
}                 PREFIX=/home/bernie/MYPERLDIR

and then I do a 'make' and it produces a huge pile of stuff but it is all
OK, ending with:

Quote:
} Running Mkbootstrap for DBD::SQLite ()
} chmod 644 SQLite.bs
} rm -f blib/arch/auto/DBD/SQLite/SQLite.so
} LD_RUN_PATH="" gcc  -shared -L/usr/local/lib SQLite.o btree.o build.o dbdimp.o d
} elete.o expr.o func.o hash.o insert.o main.o os.o pager.o parse.o printf.o rando
} m.o select.o table.o tokenize.o update.o util.o vdbe.o where.o  -o blib/arch/aut
} o/DBD/SQLite/SQLite.so
} chmod 755 blib/arch/auto/DBD/SQLite/SQLite.so
} cp SQLite.bs blib/arch/auto/DBD/SQLite/SQLite.bs
} chmod 644 blib/arch/auto/DBD/SQLite/SQLite.bs
} Manifying blib/man3/DBD::SQLite.3

so I go to install the module and I get:

$ make install

Quote:
} Warning: You do not have permissions to install into /mnt/perlmodules/lib/site_perl/5.6.1/i686-linux at /mnt/perl/lib/5.6.1/ExtUtils/Install.pm line 85.
} mkdir /mnt/perlmodules/lib/site_perl/5.6.1/i686-linux/auto/DBD/SQLite: Read-only
}  file system at /mnt/perl/lib/5.6.1/ExtUtils/Install.pm line 139
} make: *** [pure_site_install] Error 255

Indeed, the 'perlmodules' filesystem *IS* read-only [that's why I'm
installing a private copy! :o)]...  but I don't know what that error is
telling me or what I need to do to get it to work.   What am I doing wrong?

Thanks!  /bernie\
--
Bernie Cosell                     Fantasy Farm Fibers

    -->  Too many people, too few sheep  <--          



Wed, 27 Oct 2004 21:11:41 GMT  
 Trouble installing 'private' versions of modules

[ snip ]

Quote:
> perl Makefile.PL PREFIX=/home/bernie/MYPERLDIR
[ snip ]
> $ make install

[ long lines rearranged ]
Quote:
> } Warning: You do not have permissions to install into
> /mnt/perlmodules/lib/site_perl/5.6.1/i686-linux at
> /mnt/perl/lib/5.6.1/ExtUtils/Install.pm line 85.
> } mkdir
> /mnt/perlmodules/lib/site_perl/5.6.1/i686-linux/auto/DBD/SQLite:
> Read-only } file system at /mnt/perl/lib/5.6.1/ExtUtils/Install.pm
> line 139
> } make: *** [pure_site_install] Error 255

[ snip ]

When using `perl Makefile.PL PREFIX=/tmp/eek LIB=/tmp/eek' I
successfully installed this module into the specified directory.
Maybe someone can help us understand when you use PREFIX and when you
use LIB, but I've just found that if you put both on the command line
then one of them works.

It looks like MakeMaker says you should just use LIB...
From perldoc ExtUtils::MakeMaker...
[ snip ]
       PREFIX and LIB attribute

       PREFIX and LIB can be used to set several INSTALL*
       attributes in one go. The quickest way to install a module
       in a non-standard place might be

           perl Makefile.PL LIB=~/lib

       This will install the module's architecture-independent
       files into ~/lib, the architecture-dependent files into
       ~/lib/$archname/auto.

       Another way to specify many INSTALL directories with a
       single parameter is PREFIX.

           perl Makefile.PL PREFIX=~

       This will replace the string specified by $Config{prefix}
       in all $Config{install*} values.
[ snip ]
--
John Borwick



Thu, 28 Oct 2004 00:48:45 GMT  
 Trouble installing 'private' versions of modules

Quote:


}
} [ snip ]
} > perl Makefile.PL PREFIX=/home/bernie/MYPERLDIR
} [ snip ]
} > $ make install
} > } Warning: You do not have permissions to install into
} > /mnt/perlmodules/lib/site_perl/5.6.1/i686-linux at
} > /mnt/perl/lib/5.6.1/ExtUtils/Install.pm line 85.
}
} When using `perl Makefile.PL PREFIX=/tmp/eek LIB=/tmp/eek' I
} successfully installed this module into the specified directory.

THANKS!!  That did it.  I had keyed off of the faq8 section, and that
worked great for me for our perl 5.4 installation:

Quote:
>>>     When you build modules, use the PREFIX option when gener-
>>>        ating Makefiles:

>>>            perl Makefile.PL PREFIX=/u/mydir/perl

But obviously didn't work right in 5.6, but adding LIB did the job.

Thanks again!!  /Bernie\
--
Bernie Cosell                     Fantasy Farm Fibers

    -->  Too many people, too few sheep  <--          



Thu, 28 Oct 2004 04:06:31 GMT  
 
 [ 3 post ] 

 Relevant Pages 

1. Installing a private version of modules

2. Private install of libnet (wish I didn't have to ask this)

3. Can't install Net module using ppm - Can't find module

4. Trouble 'make'ing CPAN Modules!

5. ping all ip's fron one file without ip's from private sector

6. Newbie: Problem installing private version of HTML::Parse

7. installing modules without 'make'

8. Installing modules without 'make'

9. local install of '.so' modules

10. Installing XML::Parser 'make install error'

11. Difficult to install Perl modules in private space in FreeBSD-3.1

12. install modules in a private way

 

 
Powered by phpBB® Forum Software