Я компилирую жемчуг, пакет DBI на solaris 10 говорит, что SERVER1 с говорят, что жемчуг 5.8.10 установленных на нем и создает DBI.
Теперь я копирую вышеупомянутое DBI.so и файлы DBI.pm к другой машине solaris SERVER2 с теми же аппаратными средствами и той же версией жемчуга.
Я могу быть уверен, что пакет DBI будет работать гладко, и я не получу ошибок времени выполнения в будущем?
Обратите внимание на то, что у меня нет гибкости для установки компилятора C SERVER2.
Ответ такой же, как и в этом вопросе: Как установить модули Perl на сервер с ограниченным доступом? -- установите ваши модули и библиотеки на систему с такой же архитектурой (используя специальный каталог установки), затем скопируйте модули на вашу систему с ограниченным доступом.
Вам понадобится где-нибудь компилятор C (если только вы не найдете предварительно скомпилированные двоичные файлы .so или .dll, которые вам нужны), но он не обязательно должен быть на целевой системе.
Оборудование не так важно, как вы думаете, операционная система прекрасно абстрагирует это. Для бинарной совместимости должна совпадать младшая версия, поэтому другой Perl также должен быть из серии 5.8. (Кстати, 5.8.9 был последним, 5.8.10 не существует.)
Поскольку вы говорите о динамической библиотеке, интеграция на уровне C намного важнее. Совместимы ли библиотеки, на которые имеются ссылки из DBI.so
(например, libc.so
имеет одинаковую версию на обеих машинах)? Проверьте с помощью команды ldd
.
В случае несоответствия вы не получите ошибок времени выполнения, но получите очень очевидные сбои во время компиляции, когда perl попытается загрузить DBI.