灵感来自如何以非 root 用户身份使用 CPAN?我想知道,如何为非登录用户(如www)设置 cpanm?没有登录,所以我不知道如何在@INC.
编辑:我如何为非登录用户设置像 PERL5LIB 这样的永久环境变量?我不能从.bashrc(需要登录)而不是从/etc/environment(设置给所有人)设置它。
灵感来自如何以非 root 用户身份使用 CPAN?我想知道,如何为非登录用户(如www)设置 cpanm?没有登录,所以我不知道如何在@INC.
编辑:我如何为非登录用户设置像 PERL5LIB 这样的永久环境变量?我不能从.bashrc(需要登录)而不是从/etc/environment(设置给所有人)设置它。
改变方法@INC:
在每个脚本的基础上:
use lib ...;-Mlib=...在shebang线上。在每个进程的基础上:
PERL5LIB环境变量。
sh:export PERL5LIB=... ; perl ...sh:PERL5LIB=... perl ...apache:SetEnv PERL5LIB ...逐项perl:
@INC在构建时指定目录perl。use lib ...;sitecustomize.pl在由 .返回的目录中命名的脚本中perl -V:sitelib。[1]当然,您也可以安装自己的本地 Perl,也许使用perlbrew.
笔记:
sitecustomize.plTheperl是否已配置为与-Dusesitecustomize. 检查perl -V:usesitecustomize是否是。在 $PATH 中创建第perl一个 shell 脚本,检查以调用用户命名的文件,获取该文件,然后调用真正的 perl:
$ cat /usr/local/etc/perl.user.d/www-data
PERL5LIB=/随便/你/需要
导出 PERL5LIB
$ cat /usr/local/bin/perl
#!/bin/sh
PERLBIN=/usr/bin/perl
USER_CUSTOMIZE=/usr/local/etc/perl.user.d/$(whoami)
[ -e "$USER_CUSTOMIZE" ] && 源 "$USER_CUSTOMIZE"
执行 $PERLBIN "$@"
注意 ,我并不衷心推荐这个。它类似于sitecustomize.pl 其他地方的建议,但更hackish。与其他回答的人一样,我认为识别您关心的所有父进程(apache、cron 和...?)并在那里设置 PERL5LIB 不会太费力。