perl - 永久更改 Perl 脚本的 @INC

标签 perl google-cloud-platform debian

我有一个在 Google Cloud Platform 上运行的 VM (Debian 9)。
我需要添加一些文件夹到 @INC正常执行我的 Perl 脚本。我试图做这样的事情:

export PERLLIB=/path/to/my/dir

或者
PERL5LIB=/path/to/my/dir

但这仅适用于我当前的 SSH session 。当我关闭浏览器窗口并再次连接时,我变老了 @INC小路。

如何永久地做到这一点?或者也许还有其他一些方法可以做到这一点?

附言像这样的方法:
perl -I/path/to/my/dir program.pl

或这个:
push @INC, '/path/to/my/dir/';

不适合我,因为我想轻松调用脚本,并且不想修改它们的内容。

最佳答案

显然,只需设置环境变量,如 PERL5LIBPERLLIB只会影响您当前的 shell session 。当您注销并重新登录时,这些设置将被清除。

因此,下一步是通过在您每次登录系统时自动设置这些设置来使这些设置更加永久。您可以通过将更改添加到 .bashrc 来完成此操作。或 .profile文件(取决于您使用的 shell )。每次登录系统时都会执行这些文件,因此您添加的任何内容都可用于每个登录 session 。

然而,还有一个额外的潜在并发症。你说这个系统在谷歌云平台上运行。因此,在我看来,您有一个经常重建或重置的虚拟机或基于容器的系统。在这种情况下,为了使您的更改真正永久有效,您需要将它们添加到用于构建 VM 或容器的任何机制中。也许那是 Puppet list 、Chef 食谱或类似的东西。在不知道您的系统是如何构建的情况下,很难给出任何具体的建议。

关于perl - 永久更改 Perl 脚本的 @INC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60203454/

相关文章:

google-cloud-platform - 使用谷歌云计算的深度学习虚拟机时,如何更改 jupyter lab 的根目录?

Debian:Oracle Java 9 (JDK9) - 无法找到包

php - 阅读受密码保护的页面

perl - 生成包含条件项的列表

oracle - perl中如何处理模块抛出的错误

docker - 使用 Google Run Cloud 尝试使用 Gitlab CI 并失败

arrays - 对具有字母数字值的哈希数组进行排序

python-3.x - Cloud Storage python客户端无法检索存储桶

c# - 如何在带有单声道的 Linux 中使用 NLog?

php - 龙骨活着 mysql、php 和 apache2