14
votes

I get errors like this

Running make install
Prepending blib/arch and blib/lib of 17 build dirs to PERL5LIB; for 'install'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/usr/local/man/man3'
Do not have write permissions on '/usr/local/man/man3'
  You may have to su to root to install the package
  (Or you may want to run something like
    o conf make_install_make_command 'sudo make'

Will I still be able to run the software / library's that perl / CPAN installs as a my default user.

What is the best practice when working with CPAN / Perl on Debian like systems.

3

3 Answers

27
votes

You should run the cpan command as your normal user. You have two choices:

  1. Install modules into a directory under your home dir. local::lib will help you set that up.

  2. Configure cpan to use sudo during the install phase. You do that by starting the cpan shell and typing:

    o conf make_install_make_command 'sudo make'
    o conf mbuild_install_build_command 'sudo ./Build'
    o conf commit
    

    The first line configures MakeMaker to use sudo. The second line does the same for Module::Build. The third line saves the changes.

8
votes

If you want to install your modules for your own use, then you should be running it as yourself. Use local::lib to set up your environment variables so that this works nicely. You may wish to look at cpan minus as an alternative to the default cpan installer.

You may also wish to consider using perlbrew to install a newer version of perl that is completely independent from the system perl.

If you want to install them system wide, then I recommend (since you have tagged this ubuntu) looking at dh-make-perl to produce .deb files that you can install and uninstall with dpkg.

3
votes

If you want to install modules as a non-root user, you can configure your cpan to use an install base:

makepl_arg         [INSTALL_BASE=/home/nelaar/perl]
mbuildpl_arg       [--install_base=/home/nelaar/perl]

And set PERL5LIB accordingly to /home/nelaar/perl/lib/perl5.