Навсегда изменить @ IN C для Perl сценариев - PullRequest
2 голосов
/ 13 февраля 2020

У меня есть виртуальная машина (Debian 9), работающая на Google Cloud Platform. Мне нужно добавить какую-нибудь папку в @INC, чтобы нормально выполнять мои Perl скрипты. Я пытался сделать что-то вроде этого:

export PERLLIB=/path/to/my/dir

или

PERL5LIB=/path/to/my/dir

, но это работает только для моего текущего сеанса S SH. Когда я закрываю окно браузера и снова подключаюсь, я получаю старый @INC путь.

Как это сделать навсегда? Или, может быть, есть другие способы сделать это?

PS Способы, подобные этому:

perl -I/path/to/my/dir program.pl

или это:

push @INC, '/path/to/my/dir/';

являются не подходит для меня, потому что я хочу легко вызывать скрипты и не хочу изменять их содержимое.

1 Ответ

5 голосов
/ 13 февраля 2020

Очевидно, что установка переменных окружения, таких как PERL5LIB и PERLLIB, повлияет только на ваш текущий сеанс оболочки. Когда вы выйдете из системы и снова войдете в систему, эти настройки будут удалены.

Таким образом, следующий шаг - сделать эти настройки более постоянными, устанавливая их автоматически при каждом входе в систему. Вы делаете это, добавляя свои изменения в файлы .bashrc или .profile (в зависимости от того, какую оболочку вы используете). Эти файлы выполняются каждый раз, когда вы входите в систему, поэтому все, что вы добавляете, будет доступно для каждого сеанса входа.

Однако есть еще одно потенциальное осложнение. Вы говорите, что эта система работает в облачной платформе Google. Поэтому мне кажется вероятным, что у вас есть виртуальная машина или система на основе контейнеров, которая часто перестраивается или сбрасывается. В этом случае, чтобы ваши изменения были действительно постоянными, вам необходимо добавить их в любые механизмы, которые вы используете для создания своих виртуальных машин или контейнеров. Возможно, это манифест Кукольный, рецепт шеф-повара или что-то в этом роде. Не зная, как устроена ваша система, трудно дать конкретный совет.

...