灵感来自如何以非 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.pl
Theperl
是否已配置为与-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 不会太费力。