¿Cómo instalar devtools de R y digitalizar?

8

Necesito devtools porque necesito la función install_github para instalar el paquete que no es CRAN digitalizar aquí . Instalé Rpor

sudo apt-get install r-cran-robustbase

No instalé los paquetes de R de inmediato, como propone la respuesta de terdon, pero pude corregir los permisos:

sudo chmod 755 /usr/lib/R/site-library/

que creo que es la configuración predeterminada. Luego tuve que hacer lo que propone la respuesta de rcs, instalar con éxito devtoolsy tpoisot/digitizesolo con

sudo apt-get install libssl-dev
sudo apt-get install libcurl4-openssl-dev
R
install.packages('httr')
install.packages('git2r')
install.packages('devtools')
library(devtools)
install.packages('readbitmap')
install_github('tpoisot/digitize')

La salida del último comando puede ser

Skipping install for github remote, the SHA1 (d16e28b9) has not changed since last install.
  Use `force = TRUE` to force installation

Haz install_github('tpoisot/digitize', force = TRUE)pero puedes obtener

...
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet  \
  CMD INSTALL '/tmp/RtmpX8eOLX/devtools57475d25a113/tpoisot-digitize-d16e28b'  \
  --library='/usr/local/lib/R/site-library' --install-tests 

Error: ERROR: no permission to install to directory ‘/usr/local/lib/R/site-library’
Error: Command failed (1)

No pude encontrar una manera de instalar digitalizar sin sudo. Entonces hazlo sudo R, y repite lo mismo y obtienes

...
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet  \
  CMD INSTALL '/tmp/RtmpAlAT4e/devtools57e864e8c490/tpoisot-digitize-d16e28b'  \
  --library='/usr/local/lib/R/site-library' --install-tests 

* installing *source* package ‘digitize’ ...
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (digitize)

Agregar masial grupo existente staffpara trabajar sin sudoadentro R; que necesita también en una instalación nueva

sudo usermod -a -G staff masi

Pruebas de la instalación.

  1. Sigo la guía aquí . Comienzo Rde $HOME/Pictures/sin sudoy utilizar su imagen de prueba aquí .

  2. Seleccione cuatro puntos en los ejes con el mouse cal = digitize::ReadAndCal('Rintro-snail1.jpg')

ingrese la descripción de la imagen aquí

  1. Haga data.points = digitize::DigitData(col = 'red')y elija manualmente los puntos que son sus puntos de datos

ingrese la descripción de la imagen aquí

  1. Cierro la ventana de Ploteo haciendo un segundo clic.

  2. Hacer df = digitize::Calibrate(data.points, cal, 0.1, 0.4, 0.0, 0.6)y verdf

           x  y
    1  71.50 NA
    2  65.65 NA
    ...
    24 26.80 NA
    

    Haciendo head(df)

          x  y
    1 71.50 NA
    2 65.65 NA
    3 64.60 NA
    4 60.85 NA
    5 59.05 NA
    6 58.15 NA
    

Detalles de instalación

  • Dentro Ry fuerasudo

    > .Library
    [1] "/usr/lib/R/library"
    > > .libPaths()
    [1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"      
    [3] "/usr/lib/R/library"  
    
  • Comando ls /usr/lib/R/library/que no aparece en la lista devtools. ¿Por qué?

    base       compiler   grid        methods   rpart    survival
    boot       datasets   KernSmooth  mgcv      spatial  tcltk
    class      foreign    lattice     nlme      splines  tools
    cluster    graphics   MASS        nnet      stats    translations
    codetools  grDevices  Matrix      parallel  stats4   utils
    
  • Mando ls -la /usr/local/lib/R/

    total 12
    drwxrwsr-x 3 root staff 4096 touko 19 22:25 .
    drwxr-xr-x 5 root root  4096 touko 19 22:25 ..
    drwxrwsr-x 2 root staff 4096 touko 19 22:25 site-library
    
  • Mando ls -la /usr/local/lib/

    total 20
    drwxr-xr-x  5 root root  4096 touko 19 22:25 .
    drwxr-xr-x 14 root root  4096 touko 19 22:13 ..
    drwxrwsr-x  4 root staff 4096 huhti 21 01:13 python2.7
    drwxrwsr-x  3 root staff 4096 huhti 21 01:08 python3.5
    drwxrwsr-x  3 root staff 4096 touko 19 22:25 R
    
  • Mando R_LIBS_USER="/usr/local/lib/R/site-library/" R

     R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
     Copyright (C) 2015 The R Foundation for Statistical Computing
     Platform: x86_64-pc-linux-gnu (64-bit)
     ...
    
  • library(devtools) se carga

Herramientas diferenciales

Motivos de errores anteriores

  • Sin sistema limpio: sistemas que se actualizaron desde 14.04, 15.10, etc.
  • Permisos / propietarios en mal estado debido a lo anterior.
  • Errores propios en el proceso.
  • No hay copias de seguridad en caso de falla.
  • ...
  • documentos faltantes

Sistema: Ubuntu 16.04 64 bit en una instalación limpia
Hardware: Dell PC 2013, Macbook Air 2013-mid, ...

Léo Léopold Hertz 준영
fuente
No puedo reproducir esto en mi sistema Arch. Instalando a devtoolstravés de sudo R, déjame correr library(devtools)desde una sesión R no sudo. Agregue el resultado de i) .Libraryejecutar desde una Rsesión normal y ii) desde sudo Ry iii) verifique un devtoolssubdirectorio en la ruta proporcionada por esos comandos. En mi sistema, está en /usr/lib64/R/library/devtools/.
terdon
OK, ¿hay un devtoolssubdirectorio en /usr/lib/R/library?
terdon
Supongo que la instalación no fue realmente exitosa entonces. Inténtalo de nuevo y presta mucha atención a la salida. ¿ Realmente pudo ejecutar library(devtools)y cargar con éxito la biblioteca?
terdon
OK, creo que sé cuál es el problema. Una cosa más, ¿qué obtienes si huyes .libPaths()de R?
terdon
1
Argh, OK, ¿y tienes un subdirectorio devtools /usr/local/lib/R/site-library? Probablemente lo hagas. Si es así, vea mi respuesta (recientemente) actualizada.
terdon

Respuestas:

11

httrimporta el opensslpaquete que necesita como requisito del sistema libssl-dev( sudo apt install libssl-dev)

------------------------- ANTICONF ERROR ---------------------------
Configuration failed because openssl was not found. Try installing:
 * deb: libssl-dev (Debian, Ubuntu, etc)
...

El curlpaquete necesita como requisito del sistema libcurl4-openssl-dev:

------------------------- ANTICONF ERROR ---------------------------
Configuration failed because libcurl was not found. Try installing:
 * deb: libcurl4-openssl-dev (Debian, Ubuntu, etc)
...

Por lo tanto, para instalarlo deberá ejecutar:

sudo apt-get install libssl-dev
sudo apt-get install libcurl4-openssl-dev

Luego comience un shell R con sudo Ry:

install.packages('httr')
install.packages('git2r')
install.packages('devtools')
library(devtools)
install_github('tpoisot/digitize')
rcs
fuente
Acepto esta respuesta porque fue un buen comienzo. Después devtools, si necesita install.packages('readbitmap'), consulte el cuerpo de la versión final.
Léo Léopold Hertz 준영
2

Como regla general, ¡no solo cambia los permisos de los directorios del sistema! Para eso es el acceso raíz. Vuelva a colocar los permisos en la forma en que los encontró y ejecute la próxima vez sudo Ry install.packagesdesde el shell raíz resultante.

Ahora, la razón por la que no puede instalar está allí, en la salida que muestra:

ERROR: dependencies ‘httr’, ‘git2r’ are not available for package ‘devtools’

Aparentemente, como se explica por rcs , en Ubuntu, necesita instalar libssl-devy libcurl4-openssl-devprimero.


El siguiente problema es que la instalación R de su usuario raíz tiene /usr/local/lib/R/site-librarycomo primer directorio en la salida de .libPathsy que no está en las rutas de acceso de su usuario habitual. Como es la primera entrada para root, ahí es donde se instaló su biblioteca:

 Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)

Entonces, una solución simple es crear un archivo llamado ~/.Rprofiley agregarle esta línea:

.libPaths("/usr/local/lib/R/site-library/")

Alternativamente, o adicionalmente, podría incluir una línea como

   .libPaths("/home/masi/Rlibs")

Eso le permitiría instalar bibliotecas en el directorio /home/masi/Rlibs (elija el nombre que desee) en el futuro y así evitar la necesidad de hacerlo sudo R.


Alternativamente, puede establecer la variable de entorno R_LIBS_USERen /usr/local/lib/R/site-library/( /home/masi/Rlibso en cualquier otro lugar donde se estén instalando sus bibliotecas). Simplemente agregue esta línea a su ~/.profile:

R_LIBS_USER=/usr/local/lib/R/site-library/
terdon
fuente
@ Masi, ¿intentaste mis sugerencias anteriores? Puede probar que este es el problema ejecutando R_LIBS_USER="/usr/local/lib/R/site-library/" Ry luego, en R, ejecutar library(devtools).
terdon
Si ejecuta .libPaths("/home/masi/Rlibs")después de .libPaths("/usr/local/lib/R/site-library/")eso, reemplazará la configuración original. Si desea agregar un directorio de biblioteca, debe ser.libPaths(c(.libPaths(), "/home/masi/Rlibs") )
42-