Я использую Module :: Build (хотя я гибок в средах сборки) для упаковки некоторого программного обеспечения Perl, которое я пишу для внутреннего использования, где я работаю.Он включает в себя несколько сценариев и несколько вспомогательных модулей.Мой план состоит в том, чтобы сделать так, чтобы вы могли указывать префикс того, что вы хотите (то есть что-то вне значения по умолчанию в perl @INC
) во время процесса сборки, и встроенные скрипты должны все еще без проблем находить свои вспомогательные модули.
Я хочу сделать это, потому что я хочу распространять это программное обеспечение внутри компании с помощью Encap, который является инструментом упаковки, который по умолчанию может не устанавливать что-либо за пределами / usr / local, ив RedHat наш perl не ищет / usr / local / lib для модулей по умолчанию.
Это дает мне возможность либо сказать пользователю вручную устанавливать PERL5LIB
в / usr / local / lib каждыекогда они захотят запустить приложение или сделать что-то умное с системой сборки, чтобы оно работало со строкой use lib
каждого скрипта после указания --prefix
.
Сейчас я просто устанавливаю use lib
указывать прямо на / usr / local / lib вручную в каждом из моих сценариев, но мне не очень нравится это как решение.Главным образом из-за процесса тестирования: я хочу переопределить @INC
во время тестирования, чтобы он сначала использовал мой рабочий каталог для модулей perl, но после сборки рабочий каталог должен быть удален из @INC
и заменен указанным пользователем префиксом,Но также потому, что я хотел бы, чтобы это программное обеспечение было установлено в произвольных местах (например, на его собственном маленьком островке где-то в NFS с собственным bin / и lib / dirs) и все еще работало без проблем.
вопрос :
Может ли модуль :: Build позволить мне поиграться со строками use lib
моих скриптов во время шагов сборки?Я заметил, что в MakeMaker есть опция pm_filter, которая позволяет вам указать функцию поиска и замены, которая может произвольно изменять ваши файлы .pm по мере их создания, но работает только с файлами .pm, а не со скриптами.Модуль :: Сборка должна быть более гибкой, но я тону в документации, пытаясь выяснить, где вы бы это указали.