Come installare gli devtools di R e digitalizzare?


8

Ho bisogno DevTools perché ho bisogno della funzione install_github per installare il pacchetto non CRAN digitalizzare qui . Ho installato Rda

sudo apt-get install r-cran-robustbase

Non ho installato subito i pacchetti di R, come propone la risposta di terdon, ma ho potuto correggere i permessi:

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

che penso sia l'impostazione predefinita. Ho quindi dovuto fare come propone la risposta di rcs, per installare con successo devtoolse 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')

L'output dell'ultimo comando può essere

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

Fai install_github('tpoisot/digitize', force = TRUE)ma potresti ottenere

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

Non sono riuscito a trovare un modo per installare digitalizzare senza sudo. Quindi fallo sudo Re ripeti lo stesso e otterrai

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

Aggiungi masial gruppo esistente staffper lavorare senza sudoin R; di cui hai bisogno anche in una nuova installazione

sudo usermod -a -G staff masi

Test dell'installazione

  1. Seguo la guida qui . Comincio Ra $HOME/Pictures/senza sudoe utilizzare la loro immagine di prova qui .

  2. Seleziona quattro punti negli assi con il mouse cal = digitize::ReadAndCal('Rintro-snail1.jpg')

inserisci qui la descrizione dell'immagine

  1. Fare data.points = digitize::DigitData(col = 'red')e scegliere manualmente i punti quali sono i punti dati

inserisci qui la descrizione dell'immagine

  1. Chiudo la finestra di stampa facendo un secondo clic.

  2. Fare df = digitize::Calibrate(data.points, cal, 0.1, 0.4, 0.0, 0.6)e vederedf

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

    fare 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
    

Dettagli di installazione

  • Dentro Re fuorisudo

    > .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/che non elenca devtools. Perché?

    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
    
  • Comando 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
    
  • Comando 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
    
  • Comando 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) viene caricato

Strumenti differenziali

Ragioni per bug precedenti

  • Nessun sistema pulito: sistemi che sono stati aggiornati da 14.04, 15.10, ecc.
  • Autorizzazioni / proprietari incasinati a causa della cosa precedente.
  • Possedere errori nel processo.
  • Nessun backup in caso di errore.
  • ...
  • documenti mancanti

Sistema: Ubuntu 16.04 64 bit in un'installazione pulita
Hardware: Dell PC 2013, Macbook Air 2013-metà, ...


Non riesco a riprodurlo sul mio sistema Arch. Installa devtoolstramite sudo R, fammi correre library(devtools)da una sessione R non sudo. Aggiungere l'output di i) .Libraryeseguito da una Rsessione normale e ii) da sudo Re iii) verificare la presenza di una devtoolssottodirectory nel percorso fornito da tali comandi. Sul mio sistema, è a /usr/lib64/R/library/devtools/.
terdon

OK, c'è una devtoolssottodirectory in /usr/lib/R/library?
terdon

La mia ipotesi è che l'installazione non abbia effettivamente avuto successo allora. Riprovare e prestare molta attenzione all'output. Sei stato davvero in grado di eseguire library(devtools)e caricare correttamente la libreria?
terdon

OK, penso di sapere qual è il problema. Ancora una cosa, cosa ottieni se corri .libPaths()da R?
terdon

1
Argh, OK, e hai un subdir devtools in /usr/local/lib/R/site-library? Probabilmente lo fai. In tal caso, vedere la mia (recentemente) risposta aggiornata.
terdon

Risposte:


11

httrimporta il opensslpacchetto che necessita come requisito di 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)
...

Il curlpacchetto necessita come requisito di sistema libcurl4-openssl-dev:

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

Quindi, per installare dovrai eseguire:

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

Quindi avviare una shell R con sudo Re:

install.packages('httr')
install.packages('git2r')
install.packages('devtools')
library(devtools)
install_github('tpoisot/digitize')

Accetto questa risposta perché è stato un buon antipasto. Dopo devtools, è necessario install.packages('readbitmap'), consultare il corpo per la versione finale.
Léo Léopold Hertz 준영

2

Come regola generale, non basta modificare le autorizzazioni delle directory di sistema! Ecco a cosa serve l'accesso root. Riporta i permessi nel modo in cui li hai trovati, la prossima volta che li esegui sudo Re install.packagesdalla shell R radice risultante.

Ora, il motivo per cui non è possibile installare è proprio nell'output che si visualizza:

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

Apparentemente, come spiegato da rcs , su Ubuntu, è necessario installare libssl-deve libcurl4-openssl-devprima.


Il prossimo problema è che l'installazione R dell'utente root ha /usr/local/lib/R/site-librarycome prima directory l'output di .libPathse che non si trova nei percorsi dell'utente normale. Dal momento che è la prima voce per root, è lì che è stata installata la tua libreria:

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

Quindi, una soluzione semplice è quella di creare un file chiamato ~/.Rprofilee aggiungere questa riga ad esso:

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

In alternativa, o in aggiunta, è possibile includere una riga come

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

Ciò ti consentirebbe di installare le librerie nella directory /home/masi/Rlibs (scegli il nome che desideri) in futuro, evitando così la necessità sudo R.


In alternativa, è possibile impostare la variabile ambientale R_LIBS_USERsu /usr/local/lib/R/site-library/( /home/masi/Rlibso su qualsiasi altra installazione delle librerie). Aggiungi questa riga al tuo ~/.profile:

R_LIBS_USER=/usr/local/lib/R/site-library/

@Masi hai provato i miei suggerimenti sopra? È possibile verificare che questo sia il problema eseguendo R_LIBS_USER="/usr/local/lib/R/site-library/" Re quindi, in R, eseguire library(devtools).
terdon

Se esegui .libPaths("/home/masi/Rlibs")dopo .libPaths("/usr/local/lib/R/site-library/"), sostituirà l'impostazione originale. Se vuoi aggiungere una directory della libreria dovrebbe essere.libPaths(c(.libPaths(), "/home/masi/Rlibs") )
42-
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.