2011-04-06 23 views
15

Estoy empezando con Ubuntu y quiero programar en R. Instalé con éxito la última versión de R (actualmente 2.12.2) de la terminal. entonces he tratado de ejecutar el siguiente comando:Instalar XML del paquete R en Debian/Ubuntu

> install.packages("XML") 
Installing package(s) into ‘/usr/local/lib/R/site-library’ 
(as ‘lib’ is unspecified) 
Warning in install.packages("XML") : 
    'lib = "/usr/local/lib/R/site-library"' is not writable 
Would you like to create a personal library 
'~/R/i686-pc-linux-gnu-library/2.12' 
to install packages into? (y/n) 

¿Debo crear el directorio personal o me he perdido un paso en alguna parte que me permite escribir a la biblioteca sitio.

Gracias de antemano.

+8

¿Comenzó el '' shell R' través sudo' o simplemente como un usuario normal? Los usuarios normales no tendrán permiso para escribir en '/ usr/local/lib /', por lo que si comienza 'R' con' sudo' primero, debería permitir la escritura en el directorio de la biblioteca del sitio. – sarnold

+0

Simplemente presione y. :) –

+4

Es preferible usar '/ usr/local/lib/R/site-library /'. Unix es, después de todo, un sistema multiusuario. –

Respuesta

30

El comentario por sarnold es bastante correcto. En el Debian (y por lo tanto Ubuntu) paquete, el directorio /usr/local/lib/R/site-library/ se crea el archivo de secuencia de comandos /var/lib/dpkg/info/r-base-core.postinst - y el código correspondiente es:

# edd 03 Apr 2003 cf Section 10.1.2 of Debian Policy 
if [ ! -e /usr/local/lib/R ]; then 
    if mkdir /usr/local/lib/R 2>/dev/null; then 
    chown root:staff /usr/local/lib/R 
    chmod 2775 /usr/local/lib/R 
    fi 
fi 
if [ ! -e /usr/local/lib/R/site-library ]; then 
    if mkdir /usr/local/lib/R/site-library 2>/dev/null; then 
    chown root:staff /usr/local/lib/R/site-library 
    chmod 2775 /usr/local/lib/R/site-library 
    fi 
fi 

por lo que el directorio es propiedad de root:staff y del modo de 2775, o 'usuario y grupo de lectura-escritura, otros de solo lectura '.

Así que para escribir allí, usted tiene dos opciones básicas:

  1. utilizar siempre sudo o convertirse en root que es torpe.

  2. Agregue al grupo staff. Probablemente haya una GUI fácil de usar para él; Soy de la vieja escuela de Unix y lo hago a mano editando /etc/group y /etc/gshadow - después de eso puedes instalarlo directamente (bueno, necesitas un shell nuevo para tener esos derechos, o simplemente iniciar un nuevo terminal). Por supuesto, también puede elegir un grupo diferente, o crear uno, pero también debe modificar el árbol de directorios en /usr/local/lib/R/ en consecuencia.

Espero que esto ayude. La lista r-sig-debian es un lugar amigable para preguntas de Debian/Ubuntu como esta y lo recomiendo. La pregunta ha llegado allí antes.

Editar: Además, un buen número de paquetes (más complicados) son parte de Ubuntu/Debian, así que para obtener XML puede simplemente sudo apt-get install r-cran-xml. Haz un apt-cache search r-cran para ver qué hay disponible.

+1

Gracias, ENORME ayuda. – Btibert3

+6

"sudo adduser USER GROUP" agregará el USUARIO existente al GRUPO existente. – neilfws

+0

La opción 2. no funciona en Ubuntu 14.04. –

8

La opción más simple es sumarse al grupo de usuarios staff. Simplemente ejecute:

sudo adduser <user> staff 

Reemplace <user> con su nombre de usuario.

Probado en Ubuntu 14.04

Cuestiones relacionadas