2012-03-27 8 views
6

Tengo un directorio compartido de paquetes R en un servidor para mantener versiones de paquetes coherentes para todos los usuarios. Esto se vuelve problemático cuando alguien intenta instalar una nueva versión de un paquete que otro usuario instaló originalmente, o intentan instalarlo cuando ese paquete se carga en otro lugar. En estos casos, R crea un directorio 00LOCK-PackageName en el directorio del paquete compartido, y los permisos son tales que el instalador no tiene acceso de escritura a muchos archivos dentro del directorio. Esto requiere que varias personas modifiquen el directorio para permitir que se elimine, o que uno de nuestros administradores de sistema haga lo mismo.¿Cómo configuro un directorio compartido de paquetes R en un servidor?

Este es un problema especialmente grave ya que usamos paquetes R para mantener y desplegar nuestra infraestructura de informes. Es algo que actualizamos y desplegamos constantemente en nuestro servidor compartido.

¿Hay configuraciones o programas que faciliten la administración compartida de paquetes R? ¿Algún consejo general?

+0

¿No puede simplemente instalarlo en la biblioteca del sistema como raíz para dar acceso a todos los usuarios a esos paquetes? –

+0

Pregunta relacionada: http://stackoverflow.com/questions/9026443/safe-method-for-updating-r-packages-is-hot-swapping-possible –

Respuesta

0

Terminamos tener nuestro administrador de sistemas crear un script que:

  • permisos abiertos en todos los directorios, subdirectorios y archivos dentro de nuestra directorio de paquete compartido
  • eliminarán todos los directorios a partir de 00LOCK que tenían más de 15 minutos
  • pasaba cada minuto

No hemos tenido ningún problema desde entonces.

3

Una solución común es

  • tiene a todo el mundo sea un miembro de un grupo común, Mayne rapps

  • tienen el directorio en el que compartir los paquetes R sean por rapps propiedad del grupo y desea hacer que 'pegajoso' - chmod g=rwt si recuerdo correctamente

  • tienen su umask conjunto predeterminado en /etc/profile o equivalente para asegurarse de que su modo de creación de predeterminado sea, de hecho, 'g + w'; He utilizado un archivo /etc/profile.d/local_umask.sh para esto con un solo comando umask u=rwx,g=rwx,o=rx

+0

Ya teníamos un grupo compartido, pero por alguna razón todavía tuvimos problemas con problemas de permisos. –

Cuestiones relacionadas