我发现对于不同的登录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部分
答案 0 :(得分:0)
对于每个用户,您必须设置PERL5LIB
环境变量。如果您可以控制系统,并且每个人都在使用Bash shell,那么您应该查看/etc/profile
文件,因为这是在新用户登录时首先执行的。您不应该直接修改该文件,因为它可以是由OS更新修改。而是查看它并查看是否存在某种扩展机制(例如,它在/etc/profile.d
目录中的所有文件中都有来源)。
更好的是,create modules已安装在Perl发行版中。这很有趣也很刺激!
好吧,这并不好玩和令人兴奋,但学习如何创建好的Perl模块以及如何为这些模块创建单元测试将改善您的Perl并提高可移植性。如果你在新机器上怎么办?没问题,因为您可以在新机器上安装这些模块。无需修改PERL5LIB。无需担心副作用。您将学习编写更好的代码,并且可能在许多Perl开发人员不知道的过程中学习一些东西,但应该:
package
命令POD::Usage
模块如果您已经了解了很多这些信息,那么创建一个可以安装在默认位置的模块应该不难。
是的,这需要更多的时间,特别是如果你必须学习很多这些,但是以正确的方式做事最终会花费更少的时间和精力。如果多个用户在同一系统上共享相同的模块,则正确安装它们而不是希望$PERL5LIB
在各个用户之间保持同步是可行的方法。