Могу ли я установить предварительно настроенный двоичный пакет Perl в мой домашний каталог? - PullRequest
5 голосов
/ 26 февраля 2009

Я хочу настроить Perl 5.10 в моем домашнем каталоге в дополнение к древнему Perl, который в настоящее время находится на машине в / usr / local. Я не супер-пользователь на этой машине.

Я нашел бинарный пакет 5.10 HPUX perl , и он, кажется, работает, но по какой-то причине кажется, что он работает в / usr / local (о чем свидетельствуют сообщения об ошибках @INC). Есть ли какая-либо другая переменная в дополнение к PERLLIB, например, PERLHOME или что-то, что мне нужно установить, чтобы Perl ничего не искал в / usr / local dirs?

P.S. Я видел совет онлайн по компиляции и установке директории на шаге ./Configure, но мне было трудно компилировать вещи на этом старом блоке, поэтому я предпочел бы использовать предварительно скомпилированный Perl, поскольку он в основном на работу.


ОБНОВЛЕНИЕ - Леон ответил на это, так что в принципе невозможно правильно запустить Perl двоичный файл из вашего домашнего каталога, если он не был скомпилирован с учетом этого

Ответы [ 3 ]

5 голосов
/ 27 февраля 2009

Вам не понравится этот ответ.

Perl хранит @INC как строки в своем двоичном файле. До появления userelocatableinc методика перемещения Perl заключалась в том, чтобы выполнить поиск и замену в двоичном файле, а также изменить их в Config.pm. Вот как ActiveState отправил перемещаемый Perl.

Строки должны оставаться того же размера, что и раньше, дополняя любое дополнительное пространство нулевыми байтами. ActiveState может обойти это, настроив Perl с префиксом вроде «/ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTMPPATHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx» или что-то в этом роде Это также сделало его действительно однозначным в двоичном коде. У вас нет такой удачи, поэтому она будет работать, только если текущие пути короче, чем пути, которыми вы хотите их заменить.

Но это слишком сложно. Просто скомпилируйте Perl для себя, используя исходный код HP / UX, или просто возьмите обычный источник с perl.org. В Perl есть специальный разработчик HP / UX, поэтому все должно идти гладко.

4 голосов
/ 26 февраля 2009

Это зависит от того, можно ли переместить ваш двоичный файл perl. Это вариант времени компиляции. Каков вывод этой команды? Это определено или нет?

perl -V:userelocatableinc
0 голосов
/ 26 февраля 2009

Вы можете указать любой путь интерпретатора в первой строке:

!#/my/local/perl 

И если вам не нужна переносимость между компьютерами, вы можете вручную установить @INC в своем скрипте. Я думаю, что есть способ получить его и из env, который может быть более переносимым.

...