Comment installer les devtools de R et numériser?

8

J'ai besoin de devtools car j'ai besoin de la fonction install_github pour installer le paquet non-CRAN numériser ici . J'ai installé Rpar

sudo apt-get install r-cran-robustbase

Je n'ai pas installé les packages de R tout de suite, comme le propose la réponse de terdon, mais j'ai pu corriger les autorisations:

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

qui je pense est le réglage par défaut. J'ai ensuite dû faire ce que la réponse de rcs propose, pour réussir l'installation devtoolset tpoisot/digitizemais seulement avec

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 sortie de la dernière commande peut être

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

Faites install_github('tpoisot/digitize', force = TRUE)mais vous pouvez

...
'/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)

Je n'ai pas pu trouver un moyen d'installer sans numériser sudo. Alors faites sudo R, et répéter la même chose et vous obtenez

...
'/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)

Ajoutez masiau groupe existant staffpour travailler sans sudodans R; dont vous avez également besoin dans une nouvelle installation

sudo usermod -a -G staff masi

Tests de l'installation

  1. Je suis le guide ici . Je commence Rà $HOME/Pictures/sans sudoet d' utiliser leur image test ici .

  2. Sélectionnez quatre points dans les axes avec la souris cal = digitize::ReadAndCal('Rintro-snail1.jpg')

entrez la description de l'image ici

  1. Faites data.points = digitize::DigitData(col = 'red')et choisissez manuellement les points qui sont vos points de données

entrez la description de l'image ici

  1. Je ferme la fenêtre Plot en faisant un deuxième clic.

  2. Faire df = digitize::Calibrate(data.points, cal, 0.1, 0.4, 0.0, 0.6)et voirdf

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

    Faire 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
    

Détails d'installation

  • En Ret sanssudo

    > .Library
    [1] "/usr/lib/R/library"
    > > .libPaths()
    [1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"      
    [3] "/usr/lib/R/library"  
    
  • Commande ls /usr/lib/R/library/qui ne répertorie pas devtools. Pourquoi?

    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
    
  • Commander 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
    
  • Commander 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
    
  • Commander 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 charge

Outils différentiels

Raisons des bugs précédents

  • Pas de système propre: systèmes qui ont été mis à niveau à partir du 14.04, 15.10, etc.
  • Détruit les autorisations / propriétaires à cause de la chose précédente.
  • Propres erreurs dans le processus.
  • Aucune sauvegarde en cas d'échec.
  • ...
  • documents manquants

Système: Ubuntu 16.04 64 bits dans une installation propre
Matériel: Dell PC 2013, Macbook Air 2013-mid, ...

Léo Léopold Hertz 준영
la source
Je ne peux pas reproduire cela sur mon système Arch. Installation à devtoolstravers sudo R, permettez-moi d'exécuter à library(devtools)partir d'une session non sudo R. Veuillez ajouter la sortie de i) .Libraryexécuté à partir d'une Rsession normale et ii) à partir de sudo Ret iii) recherchez un devtoolssous - répertoire dans le chemin fourni par ces commandes. Sur mon système, c'est à /usr/lib64/R/library/devtools/.
terdon
OK, y a-t-il un devtoolssous - répertoire dans /usr/lib/R/library?
terdon
Je suppose que l'installation n'a pas vraiment réussi à l'époque. Réessayez et faites très attention à la sortie. Avez-vous vraiment pu exécuter library(devtools)et charger la bibliothèque avec succès?
terdon
OK, je pense que je sais quel est le problème. Une dernière chose, qu'obtenez-vous si vous exécutez .libPaths()depuis R?
terdon
1
Argh, OK, et avez-vous un sous-répertoire devtools /usr/local/lib/R/site-library? Vous le faites probablement. Si c'est le cas, consultez ma réponse (nouvellement mise à jour).
terdon

Réponses:

11

httrimporte le opensslpackage dont la configuration système est requise libssl-dev( sudo apt install libssl-dev)

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

Le curlpackage a besoin comme configuration système requise libcurl4-openssl-dev:

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

Donc, pour installer, vous devrez exécuter:

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

Ensuite, démarrez un shell R avec sudo Ret:

install.packages('httr')
install.packages('git2r')
install.packages('devtools')
library(devtools)
install_github('tpoisot/digitize')
rcs
la source
J'accepte cette réponse car c'était une bonne entrée. Après devtools, vous en avez besoin install.packages('readbitmap'), veuillez consulter le corps pour la version finale.
Léo Léopold Hertz
2

En règle générale, vous ne modifiez pas seulement les autorisations des répertoires système! C'est à cela que sert l'accès root. Remettez les autorisations telles que vous les avez trouvées et exécutez la prochaine fois sudo Ret à install.packagespartir du shell R racine résultant.

Maintenant, la raison pour laquelle vous ne pouvez pas installer est juste là dans la sortie que vous affichez:

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

Apparemment, comme expliqué par rcs , sur Ubuntu, vous devez d'abord installer libssl-devet libcurl4-openssl-dev.


Le problème suivant est que l'installation R de votre utilisateur root a /usr/local/lib/R/site-librarycomme premier répertoire dans la sortie de .libPathset qui n'est pas dans les chemins de votre utilisateur normal. Puisqu'il s'agit de la première entrée pour root, c'est là que votre bibliothèque a été installée:

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

Ainsi, une solution simple consiste à créer un fichier appelé ~/.Rprofileet à lui ajouter cette ligne:

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

Alternativement, ou en plus, vous pouvez inclure une ligne comme

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

Cela vous permettrait d'installer des bibliothèques dans le répertoire /home/masi/Rlibs (choisissez le nom que vous voulez) à l'avenir et ainsi d'éviter le besoin de sudo R.


Vous pouvez également définir la variable d'environnement R_LIBS_USERsur /usr/local/lib/R/site-library/(ou /home/masi/Rlibsou partout où vos bibliothèques sont installées). Ajoutez simplement cette ligne à votre ~/.profile:

R_LIBS_USER=/usr/local/lib/R/site-library/
terdon
la source
@Masi avez-vous essayé mes suggestions ci-dessus? Vous pouvez tester que c'est le problème en exécutant R_LIBS_USER="/usr/local/lib/R/site-library/" Rpuis, dans R, exécutez library(devtools).
terdon
Si vous exécutez .libPaths("/home/masi/Rlibs")après .libPaths("/usr/local/lib/R/site-library/")cela remplacera le paramètre d'origine. Si vous souhaitez ajouter un répertoire de bibliothèque, il devrait être.libPaths(c(.libPaths(), "/home/masi/Rlibs") )
42-