2010-07-22 29 views
5

En $ work, mantenemos un conjunto de módulos Perl en una ubicación central para facilitar su inclusión a través de PERL5LIB. Como hay una reinstalación por delante y necesitamos proporcionar los módulos para la arquitectura de 32 y 64 bits, nos preguntamos si es mejor instalarlos en el mismo árbol de directorios, confiando en los subdirectorios $ archname, o mantener las dos arquitecturas completamente separado y duplicado cada módulo.¿Diferentes arquitecturas en los mismos o diferentes árboles de directorios?

No tuve mucho éxito investigando el funcionamiento interno del proceso de búsqueda de módulos de Perl que implica $ archname, tal vez alguien me puede señalar en la dirección correcta.

En su experiencia, ¿cuáles son los pros y los contras de los dos enfoques?

Respuesta

3

De perldoc lib:

Al utilizar use lib LIST;

Para cada directorio en la LISTA (llamado $dir aquí) el módulo lib también comprobaciones para ver si un directorio llamado $dir/$archname/auto existe. Si es así el directorio $dir/$archname es se supone que es un directorio específico de arquitectura y es agregado a @INC delante de $dir.

lib.pm comprueba también si existen directorios llamados $dir/$version y $dir/$version/$archname y añade estos directorios a @ INC.

En mi humilde opinión, es más idiomático -y me atrevería a decir, más limpio- utilizar los subdirectorios por arquitectura, como las bibliotecas estándar de Perl.

Sin embargo, por la noche es más sencillo administrar por arquitectura de todo el árbol de sus propias bibliotecas, aunque no por un gran margen una vez que haya creado algunas herramientas/scripts básicos para hacerlo.

1

Construya los módulos por separado en cada sistema para que solo obtenga los archivos necesarios allí. O use un sistema de empaque que distinga entre arquitecturas. No intente proporcionar los archivos de todas las arquitecturas a todos los sistemas.

+0

si solo son 2 arquitecturas, ¿cuáles serían las desventajas de hacer el enfoque de "todos los archivos para todas las arquitecturas en todos los sistemas"? Suponiendo que no hay binarios súper grandes para hacer que el almacenamiento sea una preocupación ... – DVK

+0

¿Y cuando obtienes otra arquitectura? ¿O una distribución más nueva con una versión perl diferente? Simplemente se siente como un kludge. – ysth

+0

(1) no hay suficientes arquitecturas distintas para hacer de esto un problema de mantenimiento, en mi humilde opinión. En cuanto a las versiones, recomiendo encarecidamente árbol por versión basado en la facilidad de uso de la experiencia personal. – DVK

Cuestiones relacionadas