对于不同的登录ID,我的perl环境变量和@INC具有不同的值

时间:2015-02-28 19:46:42

标签: perl

我发现对于不同的登录ID,我的perl环境变量和@INC具有不同的设置,如下所示

sufuser(perl -V)

==========================

%ENV:

PERL5LIB="/opt/SMAW/SMAWsuf"

@INC:

/opt/SMAW/SMAWsuf
/opt/SMAW/SMAWrtppl/5.8.9-03/lib/perl5/5.8.9/x86_64-linux
/opt/SMAW/SMAWrtppl/5.8.9-03/lib/perl5/5.8.9
/opt/SMAW/SMAWrtppl/5.8.9-03/lib/perl5/site_perl/5.8.9/x86_64-linux
/opt/SMAW/SMAWrtppl/5.8.9-03/lib/perl5/site_perl/5.8.9

root(perl -V)

==========================

@INC:

/opt/SMAW/SMAWrtppl/5.8.9-03/lib/perl5/5.8.9/x86_64-linux
/opt/SMAW/SMAWrtppl/5.8.9-03/lib/perl5/5.8.9
/opt/SMAW/SMAWrtppl/5.8.9-03/lib/perl5/site_perl/5.8.9/x86_64-linux
/opt/SMAW/SMAWrtppl/5.8.9-03/lib/perl5/site_perl/5.8.9

我如何让root用户和sufuser一样(持久化方法就是我想要找到的)

首先如何设置%ENV:以永久方式设置root

第二次添加/ opt / SMAW / SMAWsuf行到root用户@INC部分

1 个答案:

答案 0 :(得分:0)

对于每个用户,您必须设置PERL5LIB环境变量。如果您可以控制系统,并且每个人都在使用Bash shell,那么您应该查看/etc/profile文件,因为这是在新用户登录时首先执行的。您不应该直接修改该文件,因为它可以是由OS更新修改。而是查看它并查看是否存在某种扩展机制(例如,它在/etc/profile.d目录中的所有文件中都有来源)。

更好的是,create modules已安装在Perl发行版中。这很有趣也很刺激!

好吧,这并不好玩和令人兴奋,但学习如何创建好的Perl模块以及如何为这些模块创建单元测试将改善您的Perl并提高可移植性。如果你在新机器上怎么办?没问题,因为您可以在新机器上安装这些模块。无需修改PERL5LIB。无需担心副作用。您将学习编写更好的代码,并且可能在许多Perl开发人员不知道的过程中学习一些东西,但应该:

如果您已经了解了很多这些信息,那么创建一个可以安装在默认位置的模块应该不难。

是的,这需要更多的时间,特别是如果你必须学习很多这些,但是以正确的方式做事最终会花费更少的时间和精力。如果多个用户在同一系统上共享相同的模块,则正确安装它们而不是希望$PERL5LIB在各个用户之间保持同步是可行的方法。