如果在Linux中使用CPAN,我应该使用sudo / root或者我的默认用户来运行它

时间:2012-02-23 09:05:27

标签: linux perl ubuntu configuration install

我收到这样的错误

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'

我是否仍然可以运行perl / CPAN安装的软件/库作为我的默认用户。

在Debian系统上使用CPAN / Perl时的最佳做法是什么。

3 个答案:

答案 0 :(得分:18)

您应该以普通用户身份运行cpan命令。你有两个选择:

  1. 将模块安装到您家庭目录下的目录中。 local::lib会帮助您进行设置。

  2. 在安装阶段配置cpan以使用sudo。您可以通过启动cpan shell并输入:

    来实现
    o conf make_install_make_command 'sudo make'
    o conf mbuild_install_build_command 'sudo ./Build'
    o conf commit
    

    第一行配置MakeMaker以使用sudo。第二行对Module::Build执行相同操作。第三行保存更改。

答案 1 :(得分:7)

如果您想安装模块供自己使用,那么您应该像自己一样运行它。使用local::lib设置您的环境变量,以便它可以很好地工作。您可能希望查看cpan minus作为默认cpan安装程序的替代方法。

您可能还希望考虑使用perlbrew来安装完全独立于系统perl的更新版本的perl。

如果您想在系统范围内安装它们,那么我建议(因为您已标记此 ubuntu )查看dh-make-perl以生成可以使用dpkg安装和卸载的.deb文件

答案 2 :(得分:3)

如果要以非root用户身份安装模块,可以将cpan配置为使用安装基础:

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

并相应地将PERL5LIB设置为/home/nelaar/perl/lib/perl5