2012-04-01 14 views
11

Si tengo esta línea en los archivos%:Cómo establecer el propietario del directorio en% de archivos?

%attr(0555, myuser, myuser) /opt/myapp/lib/my.jar 

Entonces my.jar tendrán miUsuario como propietario, pero el directorio/opt/miaplicacion/lib habrá propietario de raíz. no quiero escribir

%attr(0555, myuser, myuser) /opt/myapp/lib/ 

como no quiero que todos los archivos en/opt/miaplicacion/lib/para ser incluidos.

¿Cómo puedo configurar el propietario para el directorio/opt/myapp/lib /?

Gracias.

Respuesta

17

No soy un experto RPM .. pero por lo que yo sé, se puede usar la directiva% dir de la siguiente manera:

%files 
%dir %attr(0555, myuser, myuser) /opt/myapp/lib 
%attr(0555, myuser, myuser) /opt/myapp/lib/my.jar 

o, aún más simple:

%files 
%defattr(555,myuser,myuser,555) 
%dir /opt/myapp/lib 
/opt/myapp/lib/my.jar 

El La directiva% dir le permite agregar el directorio, pero no su contenido.

+1

El propósito de% dir es crear un directorio vacío (como logs dir) en la máquina de destino. –

+3

No, esto no es verdad. (Consulte la documentación: http://www.rpm.org/max-rpm-snapshot/s1-rpm-specref-files-list-directives.html): la directiva% dir se usa para indicar a RPM que empaque solo el directorio , independientemente de qué archivos pueden residir en el directorio en el momento en que se crea el paquete. – Javaguru

+0

@Javaguru El enlace da un 404 – sebix

2

como las otras personas "súper útiles" dicen ...% dir es para otra cosa. La solución es usar% attr para configurar el usuario y el propietario del grupo de su directorio ... ya que ya configuré mis directorios en 755 usando% defattr. Utilizo un solo guión, en la línea% attr para decir ... dejo esto como es

%files 
#%attr(<mode>, <user>, <group>) file 
#%defattr(file perms, user, group, dir perms) 
%defattr(644,apache,apache,755) 
%attr(-,apache,apache) /var/www/coolapp 
%attr(-,apache,apache) /var/www/coolapp/users 
%attr(-,apache,apache) /var/www/coolapp/static 
/var/www/coolapp/myDB.sqlite 
/var/www/coolapp/__init__.py 
/var/www/coolapp/settings.py 
/var/www/coolapp/urls.py 
/var/www/coolapp/wsgi.py 
Cuestiones relacionadas