I'm using a hosted Linux machine so I don't have permissions to write
into the /usr/lib directory.
When I try to install a CPAN module by doing the usual:
perl Makefile.PL
make test
make install
That module is extracted to a blib/lib/ folder. I have kept use
blib/lib/ModuleName but it still the compiler says module can not be
found. I have tried copying the .pm file into local directory and kept
require ModuleName but still it gives me some error.
How can I install a module into some other directory and use it?
-
local::lib will help you. It will convince "make install" (and "Build install") to install to a directory you can write to, and it will tell
perlhow to get at those modules.In general, if you want to use a module that is in a blib/ directory, you want to say
perl -Mblib ...where...is how you would normally invoke your script.melo : I **really** recommend that you use local::lib. It takes care of all the little details. -
I had a similar problem, where I couldn't even install local::lib
I created an installer that installed the module somewhere relative to the .pl files
The install goes like:
perl Makefile.PL PREFIX=./modulos make make installThen, in the .pl file that requires the module, which is in ./
use lib qw(./modulos/share/perl/5.8.8/); # You may need to change this path use module::name;The rest of the files (makefile.pl, module.pm, etc) require no changes.
You can call the .pl file with just
perl file.pljrockway : There is no reason to modify your script -- set PERL5LIB instead of using `use lib`. local::lib takes care of this for you -- follow its instructions and you should be fine.brian d foy : use INSTALL_BASE instead of PREFIX.ram : perl Makefile.PL INSTALL_BASE=/home/irraju/PadWalker gave me this error "'INSTALL_BASE' is not a known MakeMaker parameter name." Even PREFIX option gave me the same -
Other answers already on Stackoverflow:
- How do I install modules locally without root access...
- How can I use a new Perl module without install permissions?
From perlfaq8:
How do I keep my own module/library directory?When you build modules, tell Perl where to install the modules.
For Makefile.PL-based distributions, use the INSTALL_BASE option when generating Makefiles:
perl Makefile.PL INSTALL_BASE=/mydir/perlYou can set this in your CPAN.pm configuration so modules automatically install in your private library directory when you use the CPAN.pm shell:
% cpan cpan> o conf makepl_arg INSTALL_BASE=/mydir/perl cpan> o conf commitFor Build.PL-based distributions, use the --install_base option:
perl Build.PL --install_base /mydir/perlYou can configure CPAN.pm to automatically use this option too:
% cpan cpan> o conf mbuild_arg --install_base /mydir/perl cpan> o conf commit
0 comments:
Post a Comment