Назад | Перейти на главную страницу

Что делать, если в сценариях bash указан неверный путь интерпретатора?

Я пытаюсь установить BugZilla на наш сервер. Проблема в том, что скрипты Perl BugZilla определяют путь как /usr/bin/perl, а моя установка perl находится по адресу /usr/local/bin/perl.

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

Как вы справляетесь с подобными ситуациями?

РЕДАКТИРОВАТЬ: Я только что заметил, что у нас есть две копии perl на сервере, одна в стандартном расположении, в / usr / local / bin / perl, но which perl возвращает прежний путь.

Кстати, вот ошибка, которую я получаю, когда запускаю perl-скрипт bugzilla

bash: ./checksetup.pl: /usr/bin/perl: bad interpreter: Permission denied

Вы можете создать мягкая ссылка с помощью пер который связывает / usr / bin / perl с / usr / local / bin / perl

ln -s /usr/local/bin/perl /usr/bin/perl

Мы делаем это в моей среде: мы оставляем системный perl в / usr / bin / perl и устанавливаем наш собственный интерпретатор в / usr / local / bin / perl; это позволяет нам сохранить надежный Perl, который, как мы знаем, не унесет с ума.

Я бы сказал, что самый простой способ обойти эту проблему - полностью обойти строку shebang и просто вызвать эти сценарии с помощью интерпретатора perl, который вы действительно хотите, чтобы они выполнялись:

/usr/local/bin/perl /path/to/someBugzillaScript.pl

Это дает вам контроль над средой выполнения без необходимости вносить изменения на системном уровне, чтобы приспособить пакет Bugzilla.