为 Perl 脚本永久更改 @INC
Permanently change @INC for Perl scripts
我有一个虚拟机 (Debian 9),运行 在 Google 云平台上。
我需要向 @INC
添加一些文件夹才能正常执行我的 Perl 脚本。我试过这样做:
export PERLLIB=/path/to/my/dir
或
PERL5LIB=/path/to/my/dir
但这仅适用于我当前的 SSH 会话。当我关闭浏览器 window 并再次连接时,我得到旧的 @INC
路径。
如何永久执行此操作?或者也许还有其他一些方法可以做到这一点?
P.S. 方式如下:
perl -I/path/to/my/dir program.pl
或者这个:
push @INC, '/path/to/my/dir/';
不适合我,因为我想轻松调用脚本,不想修改它们的内容。
显然,仅设置 PERL5LIB
和 PERLLIB
等环境变量只会影响您当前的 shell 会话。当您注销并重新登录时,这些设置将被清除。
所以下一步是通过在您每次登录系统时自动设置这些设置来使它们更永久。您可以通过将您的更改添加到 .bashrc
或 .profile
文件(取决于您使用的 shell 文件)来完成此操作。这些文件会在您每次登录系统时执行,因此您在其中添加的任何内容都可用于每次登录会话。
但是,还有一个潜在的并发症。你说这个系统是Google云平台中的运行。因此,在我看来,您可能有一个经常重建或重置的虚拟机或基于容器的系统。在这种情况下,为了使您的更改真正永久化,您需要将它们添加到用于构建 VM 或容器的任何机制中。也许那是 Puppet 清单、Chef 食谱或类似的东西。不知道你的系统是如何构建的,很难给出任何具体的建议。
我有一个虚拟机 (Debian 9),运行 在 Google 云平台上。
我需要向 @INC
添加一些文件夹才能正常执行我的 Perl 脚本。我试过这样做:
export PERLLIB=/path/to/my/dir
或
PERL5LIB=/path/to/my/dir
但这仅适用于我当前的 SSH 会话。当我关闭浏览器 window 并再次连接时,我得到旧的 @INC
路径。
如何永久执行此操作?或者也许还有其他一些方法可以做到这一点?
P.S. 方式如下:
perl -I/path/to/my/dir program.pl
或者这个:
push @INC, '/path/to/my/dir/';
不适合我,因为我想轻松调用脚本,不想修改它们的内容。
显然,仅设置 PERL5LIB
和 PERLLIB
等环境变量只会影响您当前的 shell 会话。当您注销并重新登录时,这些设置将被清除。
所以下一步是通过在您每次登录系统时自动设置这些设置来使它们更永久。您可以通过将您的更改添加到 .bashrc
或 .profile
文件(取决于您使用的 shell 文件)来完成此操作。这些文件会在您每次登录系统时执行,因此您在其中添加的任何内容都可用于每次登录会话。
但是,还有一个潜在的并发症。你说这个系统是Google云平台中的运行。因此,在我看来,您可能有一个经常重建或重置的虚拟机或基于容器的系统。在这种情况下,为了使您的更改真正永久化,您需要将它们添加到用于构建 VM 或容器的任何机制中。也许那是 Puppet 清单、Chef 食谱或类似的东西。不知道你的系统是如何构建的,很难给出任何具体的建议。