Pregunta

En nuestro proyecto, escribimos muchos registros de aplicaciones (a veces son muy útiles) en la carpeta tmp .

En esta carpeta tenemos directorios de componentes, como:

  • api
  • email2sms
  • envío_programado
  • facturación
  • etc. Menos de 10 carpetas, en resumen.

El problema: la carpeta del nuevo componente surge con el tiempo; cada una de estas carpetas debe poder escribirse.

Por lo tanto, lleva tiempo para que todos los desarrolladores cambien cada una de estas carpetas en sus entornos locales, se necesita tiempo para modificar esas carpetas en producción.

¿Cómo se puede resolver este problema? ¿Cómo se puede automatizar este proceso (tarea de Apache Ant, propiedades de SVN, secuencia de comandos de la aplicación, que tiene que ser responsable de la tarea)?

Medio ambiente: Entornos de desarrollo - Ubuntu, Windows; producción - FreeBSD

¿Fue útil?

Solución

El método rápido y sucio que he usado en la mayoría de las empresas para las que trabajo fue algo como esto:

  1. Coloque todo el código en un sistema de versiones (como SVN o algo así) para que todos los desarrolladores tengan una única fuente de los archivos. Obviamente ya estás haciendo esto. Hurray!
  2. Coloque en la raíz de ese código, un archivo llamado setup_permissions.sh que actualiza todo el material del entorno local. Esto puede incluir permisos, o lo que sea que necesite ejecutar.
  3. Cada mañana, todos los programadores hacen svn update , que actualiza los archivos, y también setup_permissions.sh .
  4. Intentan ejecutar su código. Ver un problema Ejecutan setup_permissions.sh .
  5. ¡Todo está bien en el mundo!

En cuanto al contenido de setup_permissions.sh , podría ser algo como:

#/bin/sh
TMP=/tmp

mkdir $TMP/api
mkdir $TMP/email2sms
mkdir $TMP/scheduled_sending
mkdir $TMP/billing
chmod 777 -r $TMP/api $TMP/email2sms $TMP/scheduled_sending $TMP/billing

Y agregue más comandos que sienta que necesita.
(Ah, y no use chmod 777 ... es una idea terrible. Solo vea esto como un ejemplo.)

La clave de este enfoque es disciplina . Debe confiar en que sus programadores tienen la disciplina para ejecutar setup_permissions.sh cuando actualicen sus entornos locales. Lo mismo ocurre con quien actualiza el sistema de producción.

También debe tener la disciplina para actualizar setup_permissions con cualquier cambio que realice en la estructura del directorio, y cualquier cambio de permiso que necesite, en lugar de simplemente hacer los cambios manualmente en su computadora y dejarlos a eso. (Y lo mismo ocurre con todos los demás desarrolladores que realizan cambios en la estructura del directorio).

Otros consejos

el que (el programa / componente) que crea el registro debe ser responsable de hacer que los archivos de registro puedan escribirse para todos, para usar mod = 777 (todos pueden escribirse) cuando se crean los registros.

Si implementa el proceso tiene un script de instalación, también hágalo en el script.

mkdir y chmod en un simple script de shell deberían ser suficientes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top