2010-11-03 16 views
6

Tengo que implementar una aplicación Django en un sistema SuSE Linux Enterprise 11. Las reglas corporativas dicen que necesito implementar usando solo RPM. Si bien puedo usar ./setup.py bdist_rpm para cada dependencia, no es realmente sensato, ya que RPM aún no registra todas las dependencias. Por lo tanto, no tendría ninguna ventaja real en el uso de RPM y administrar dependencias manualmente es algo engorroso y me gustaría evitarlo.Implementando Django con virtualenv dentro de un paquete de distribución?

ahora tenía la siguiente idea: Aunque la construcción de un paquete, podría crear un virtualenv, instalar todas las dependencias a través de mis pip allí y luego empaquetarlo con el resto del código en una RPM sólido.

¿Cuán sensato es este enfoque?

Respuesta

2

He estado usando este enfoque durante aproximadamente un año y ha funcionado bastante bien.

Una cosa es que querrá ver las líneas de explosión en las secuencias de comandos de python escritas en el directorio bin de virtualenv. Estos terminarán siendo nombres de ruta completos utilizados en su entorno de compilación, que probablemente no será el mismo directorio donde terminará instalando el virtualenv. Por lo tanto, es posible que deba agregar algunas llamadas sed en la postinstalación de su RPM para ajustar las rutas.

+0

Es posible que desee investigar la opción --relocatable al crear su virtualenv; no es perfecto pero aborda algunos de los problemas con caminos absolutos. –

Cuestiones relacionadas