2011-01-11 6 views
10

Estoy usando DBI y DBD :: SQLite, y ahora me gustaría usar la característica R * Tree de SQLite. Dado que DBD :: SQLite no compila esta característica de forma predeterminada, debo agregar -DSQLITE_ENABLE_RTREE=1 a la variable @CC_DEFINE en DBD :: SQLite's Makefile.PL. Si hago un 'perl Makefile.PL & & make & & make install', todo funciona bien localmente en mi máquina, pero finalmente debe ser desplegable/distribuible para los usuarios finales.¿La mejor práctica para usar un modificador ligeramente modificador de CPAN?

¿Qué debo hacer en un caso como este? ¿Debo copiar la fuente, grep la fuente y crear un DBD :: SQLite :: WithRTree? Crear una versión privada de DBD :: SQLite 1.31.1 (Donde 1.31 es la versión actual de DBD :: SQLite)? Tal vez una mejor manera en conjunto?

Todas las demás distribuciones del proyecto se implementan/distribuyen a través de un CPAN :: Mini mirror no público + CPAN :: Mini :: Inject.

Respuesta

11

tengo que añadir un '-DSQLITE_ENABLE_RTREE = 1' a la variable @CC_DEFINE en DBD :: SQLite Makefile.PL de

Estás haciendo esto mal, perl Makefile.PL DEFINE='-DSQLITE_ENABLE_RTREE=1' obras. Esto está documentado en ExtUtils::MakeMaker. Ahora que lo sabe, es probable que se implemente una solución simple que involucre Distroprefs.

3

Para problemas similares, he instalado la distribución modificada en un directorio separado (sin cambiar los nombres de los módulos), y usando use lib qw(the/special/directory) o estableciendo $PERL5LIB para los scripts que necesitan usar el módulo mejorado.

Afinar el nombre del módulo también haría el trabajo, pero eso parece mucho más trabajo para hacer y probar.

+1

Y mantener registro cuidadoso de lo que ha cambiado – justintime

0

Usted puede hacer esto:

cpan 
o conf makepl_arg "DEFINE='-DSQLITE_ENABLE_RTREE=1'" 
o conf commit 

CPAN a continuación, añadir de forma permanente que definen al frente de todas las llamadas de su Makefile.PL.

Por lo tanto, debe acaba de ser

cpan DBD::SQLite 

Y sus opciones makefile debe obtener rellenos en sus líneas de compilación

Cuestiones relacionadas