2012-05-08 1 views
2

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

У нас есть сервер, который арендует прокат. Старый сервер представляет собой 32-битный сервер Windows, а новый сервер - это 64-разрядные окна 2008 R2 SP1.

В одном из веб-приложений Perl запускает несколько сценариев.

  1. Мы можем запустить ту же 32-битную версию на новой 64-битной машине? (например, если есть одна и та же версия, но одна из них 32-разрядная, а одна - 64-разрядная, то они по существу одинаковы?)
  2. Если скрипт работает с 32-разрядной версией, должен ли он по-прежнему работать под 64 -битная версия Perl?

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

+0

Я отвечу на свою команду и затем правильно пометьте соответствующий ответ. Спасибо, ребята, за ответы просто. – HPWD

ответ

2

Я думаю, что ответы на ваши вопросы да. 32-разрядные приложения должны отлично работать на вашей 64-битной Windows, но не смогут использовать любую из 64-битных функций (где большее удобное для использования адресное пространство может быть самым важным, если вы когда-либо захотите разбирать большие XML с использованием XML :: Twig ;-).

Скрипт, выполняющийся под 32-разрядным perl, будет работать на 64-битном персе, если вы получите все модули для 64-разрядного perl в порядке, поскольку они обычно запускаются из разных каталогов. Кроме того, имейте в виду, что для 64-битного perl в Windows вам, вероятно, понадобится Strawberry perl, ActiveState perl или аналогичный. Насколько я знаю, Cygwin только 32-бит.

2
  1. Да, вы можете, до тех пор, пока вы перераспределяете надлежащим образом, включая шаги сборки для зависимостей. Простое копирование файлов будет работать только в том случае, если весь стек приложения является чистым - Perl, что маловероятно. — Да, они по сути одни и те же, но двоичные несовместимы.
  2. Скорее всего, да. Проблемы могут возникать с зависимостями, однако количество модулей, которые выходят из строя из-за 32-разрядных/64-разрядных различий, является незначительным.
2

Если вы обеспокоены совместимостью, вы должны иметь возможность запускать 32-разрядную версию perl на 64-разрядной машине (при условии, что оба они являются x86). Но 64-разрядная версия должна работать более или менее так же, как и 32-разрядная, с несколькими исключениями, которые не должны влиять на скрипты. (Они в основном связаны с кодом C/XS в модулях. Бинарная совместимость. Модули должны быть построены для 64-разрядных. К счастью, любой интерпретатор Perl, который не сосать, будет делать материал сборки для вас в случай * nix или предоставить менеджер пакетов, у которого есть предварительно построенные модули, такие как ActiveState.)