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

Какой план резервного копирования мне нужен для установки модулей Perl в производственной среде?

Я управляю приложением, которое годами подвергалось тяжелой гонке и откладывалось мокрым, но которое, как ожидается, продолжит работать. Серверная ОС поддерживается, но экземпляр Perl - нет, потому что за ящиком не назначен никого, знающий Perl. Мне нужно установить новый модуль для запроса, но мое руководство обеспокоено тем, как мы можем отменить изменения, если возникнет проблема. Я использовал CPAN, чтобы установить его локально на свой компьютер, но также пришлось установить множество зависимостей.

К сожалению, у меня нет тестового сервера для запуска, мне нужно сразу перейти к производству. (Я не говорил, что это идеальная ситуация)

Сервер - это оконная коробка. Можно ли сделать резервную копию каталога Perl, которую я могу наложить поверх, если новые модули обновления / установки не работают?

Я знаю, что это немного расплывчато. Я не администратор сервера, и без него я с подозрением отношусь к установке чего-либо в производственную систему без плана резервного копирования.

Первый подход:

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

В конце концов, модули Perl - это всего лишь куча файлов в каталоге. Просто сделайте резервную копию этого каталога (заархивируйте их и сохраните из коробки), затем установите модуль любым способом, который вам нравится.

Если что-то пойдет не так, восстановите весь каталог Perl.

Второй:

Используйте это, если этот новый модуль используется только одним или двумя новыми модулями.

Если это новый модуль и он используется новым приложением, вы можете установить его и все его зависимости в новый каталог, назовем его c: \ new_perl_module, а имя нового модуля - fancy :: newthing;

Perlbrew - это современный способ установки новой версии perl и модулей в отдельный каталог, но cpan тоже может это сделать.

Затем в скрипте, которому нужен этот модуль, добавьте эти строки в самый верх вашего скрипта:

use lib 'c:\new_perl_module';
use fancy::newthing;

Таким образом, только этот скрипт будет использовать этот новый и обновленный модули. Если это не удалось, закомментируйте эти строки, и ваш откат будет выполнен. Установленная версия модулей осталась нетронутой.

Сделайте резервную копию вашего дерева каталогов Perl, используя все, что вам нравится, даже простую рекурсивную копию файла. Далее установите то, что вам нужно. В крайне маловероятном случае, если это произойдет, просто восстановите дерево Perl из резервной копии. Серьезно, ничего проще.

В этом случае я бы использовал Perlbrew установить новый Perl в домашний каталог с нуля со всеми новыми модулями от CPAN. Таким образом, старая установка вообще не затрагивается. И, в принципе, неплохо использовать новейшую версию всех доступных модулей. Если что-то пойдет не так, тоже нет проблем. Все это сохраняется дома, и Perlbrew тоже позаботится об этом.

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