Me gustaría mover varias bibliotecas R (*) de una unidad a otra, en Linux, y me gustaría saber si un simple movimiento es factible y seguro o si debería desinstalar y volver a instalar los paquetes. Me doy cuenta de que las ubicaciones de las bibliotecas se identifican a través del .libPaths()
y he consultado el manual "R Instalación y administración" para obtener información acerca de la migración de bibliotecas, pero no veo un proceso recomendado.Migrando bibliotecas R
que perciben tres opciones:
- Run
remove.packages()
para todos los paquetes que no son de base, e instalar de nuevo a través deinstall.packages(lib = "/path/to/new/location")
. - mover las bibliotecas (directorios) utilizando
mv
y utilizar enlaces simbólicos para apuntar a las nuevas ubicaciones (y eventualmente eliminar el enlace simbólico) - Utilice el comando
mv
en Linux para mover los directorios al por mayor y actualizar.Library.site
enR_HOME/etc/Rprofile.site
, como se sugiere en el R Installation and Administration manual
La opción n. ° 1 es contundente. La opción n. ° 2 debería funcionar, pero parece un poco incorrecta.
¿Es seguro el # 3 o hay serios problemas con él? Los problemas que he identificado son: permisos de directorio y la posibilidad de que la configuración de cualquier paquete almacene rutas absolutas en lugar de rutas relativas (lo cual parece poco sólido e innecesario).
En cuanto al almacenamiento de rutas absolutas, encontré que rJava
almacena la ubicación de R_HOME
en un archivo llamado run
. Esto no es un problema de biblioteca per se, pero es una indicación de un paquete (y un buen paquete) que mantiene una copia privada de una ruta absoluta.
(*) Hay varias bibliotecas y muchos puntajes de paquetes. Naturalmente, solo se mueven las bibliotecas (directorios), pero los paquetes podrían verse afectados.
ACTUALIZA 1/Aclaración: Solo para aclarar: Soy sólo bibliotecas que migran, sin cambiar la versión de R o las versiones de los paquetes. La actualización de R o los paquetes se puede hacer por separado, pero la pregunta es si mover las bibliotecas es factible o no. Parece que si es necesario actualizar o reinstalar todos los paquetes para asegurarse de que las cosas estén instaladas correctamente, entonces esa es una ruta más parecida a la opción n. ° 1 que la opción n. ° 3.
ACTUALIZACIÓN 2: Las respuestas a another SO post tienen algunas buenas ideas sobre cómo evitar este problema al actualizar. No estoy actualizando R, pero la sugerencia de Dirk Eddelbuettel de no instalar paquetes en el árbol de archivos de R es acertada.
No estoy seguro exactamente de lo que está tratando de hacer, pero es posible que desee consultar [esto] (http://stackoverflow.com/questions/5721942/making-r-installation-self-contained-user-independent/6709445 # 6709445) pregunta y relacionado en eso. – Fred
+1 para saber la diferencia entre una biblioteca y un paquete :-) –
@ gsk3: Espero haber arreglado todos los posibles errores de ese tipo. No quiero ser embrutecido por un tema tan terminológico. :) – Iterator