Одновременное использование ActivePerl и Strawberry

Недавно я обновил свою версию 64-битного ActivePerl на стороне клиента с версии 5.10.1.1007 до 5.22.2.2203, и у меня с ней масса проблем.

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

Могу ли я установить портативную версию Strawberry и протестировать ее, продолжая использовать версию ActivePerl для производственной работы?

(Другие вопросы о stackoverflow, подобные моему, получили ответы только о Perl на стороне сервера.)


person Dean Hannotte    schedule 20.03.2017    source источник
comment
Вы уверены, что Strawberry решит ваши проблемы? Версия ActiveState качественная. Если ваши проблемы присущи Perl 5.22 (например, некоторые модули, которые вам нужны, несовместимы с 5.22), Strawberry Perl не решит эту проблему. Я пишу это, потому что некоторые считают, что Strawberry с открытым исходным кодом похож на волшебство и решает все проблемы мира, но это не так. Поэтому, прежде чем переключаться, убедитесь, что оно того стоит!   -  person Fabio says Reinstate Monica    schedule 20.03.2017
comment
Я ничего не знаю о портативных сборках, но у меня без проблем установлено несколько сборок ActivePerl и StrawberryPerl. Просто убедитесь, что вы используете правильный perl, cpan, cpanm, ppm и т. д.   -  person ikegami    schedule 20.03.2017


Ответы (2)


Вы можете, вам просто нужно смотреть, какой Perl вы используете. Только один может быть "первым" в вашем PATH. Для этого я бы предложил оставить старый perl в качестве основного по умолчанию. Это окажет наименьшее влияние на существующий (производственный) код.

Однако у вас может быть вторичный perl в вашем PATH с другим именем. Например, perl5.22.2.exe может находиться в вашем PATH, и вы можете использовать его при выполнении тестов.

Если у вас есть пакетный файл или что-то подобное в качестве оболочки для Perl-скриптов, вы можете заставить пакетный файл для каждого приложения запускать правильный Perl для этого приложения, и вам просто нужно а) способ переопределить используемый им Perl и б) чтобы по умолчанию использовался проверенный уровень Perl, который вы хотите использовать. Таким образом, вы можете некоторое время тестировать 5.22.2, но по умолчанию остается 5.10.1. И затем вы можете переключить значение по умолчанию на 5.22.2, когда будете готовы к переключению этого приложения.

Будь то на стороне клиента или на стороне сервера, не имеет для этого никакого значения.

(И платформа тоже не имеет большого значения — хотя реальная реализация в системе unix/linux может немного отличаться, общая идея не обязательно должна быть такой. Вы можете установить обе программы одновременно и управлять какой Perl использовать в приложении за приложением, если вам нужно.)

person Tanktalus    schedule 20.03.2017
comment
Очевидная проблема заключается в том, что пакетные файлы, созданные pl2bat, полагаются на perl на %PATH%. - person Sinan Ünür; 20.03.2017

Одним из преимуществ berrybrew является то, что он позволяет вам устанавливать и использовать любую версию Strawberry Portable в управляемый способ, с возможностью очень легко вернуться к вашей системе perl (в вашем случае ActiveState) в любое время.

Вы можете установить с Github (ссылка выше) или через zip-файл в соответствии с инструкциями по установке.

Потом:

cd berrybrew
bin\berrybrew.exe config

Закройте окно cmd, откройте новое.

berrybrew install 5.24.1_64
berrybrew switch 5.24.1_64

Открыть новое окно cmd

На данный момент вы используете Strawberry Portable версии 5.24.1. Чтобы переключиться обратно в ActiveState:

berrybrew off

Чтобы вернуться к экземпляру Strawberry, управляемому berrybrew, просто используйте команду switch, как указано выше.

person stevieb    schedule 20.03.2017