2014-07-09 11 views
21

In Ubuntu, sto installando tutti i pacchetti R nella directory, /usr/lib/R/site-library specificando l'opzione lib in install.packages().Come specificare la directory lib durante l'installazione di pacchetti R di sviluppo dal repository github

Ma quando provo a installare la versione di sviluppo dei pacchetti R utilizzando, install_github(), si installa sempre in un repository locale dell'utente di sistema.

.libPaths() dispone di 4 directory incluso il repository locale. Così, ho 2 domande,

  1. Intende installare in uno qualsiasi degli altri 3 repository Se rimuovo il repository locale da .libPaths()?

  2. Esiste un modo per specificare il percorso della libreria di installazione in install_github()?

Sto usando Ubuntu 12.04 64bit e R 3.0.1

UPDATE ---------------------- ---------- ----------------------

  1. Impossibile rimuovere il repository locale da .libPaths()

  2. Se provo ad installare utilizzando install_github() in RStudio, installa nello local repository poiché lib non è specificato.

  3. Se provo ad installare utilizzando install_github() come utente non root, installa nel local repository dal lib non è specificato.

  4. Se provo ad installare usando install_github() come utente root, installa nel /usr/local/lib/R/site-library dal lib non è specificato.

C'è qualche specificare installation lib?

risposta

30

Per aggiungere percorsi di libreria specificata nel devtools, abbiamo bisogno di usare with_libpaths()

Argomenti per with_libpaths() sono, with_libpaths(new, code)

seguente è un esempio per l'utilizzo with_libpaths(),

library(devtools) 
with_libpaths(new = "/usr/lib/R/site-library/", install_github('rCharts', 'ramnathv')) 

Cortesia: Hadley, here :)

E diverso with_libpaths(), ci sono più opzioni per a devtools::with_something()

in_dir: working directory 
with_collate: collation order 
with_envvar: environmental variables 
with_libpaths: library paths, replacing current libpaths 
with_lib: library paths, prepending to current libpaths 
with_locale: any locale setting 
with_options: options 
with_path: PATH environment variable 
with_par: graphics parameters 

Maggiori spiegazioni here

+3

'devtools :: with_libpaths()' è deprecato. Usa 'withr :: with_libpaths()'. Vedi 'help (" devtools-deprecated ")'. – swihart

+0

Questo mi dà l'installazione: impossibile creare il file regolare '/usr/lib64/R/lib/libs3.so.2.0': Autorizzazione negata make [1]: *** [install] Errore 1 make [1]: lasciando directory '/ mnt/tmp/RtmpShKPQi/devtools15aa419a91f09/AnalyticalFlavorSystems-RS3-536f287/src/libs3' make: *** [libs3.so] Errore 2 ERRORE: la compilazione è fallita per il pacchetto 'RS3' * rimozione '/ home/hadoop/git/minaccia-odin/lib/R/RS3 ' Errore: comando fallito (1) ' – d8aninja

8

install_github prende un argomento ... che passa a devtools::install. devtools::install ha un argomento args.

args
An optional character vector of additional command line arguments to be passed to R CMD install. This defaults to the value of the option "devtools.install.args".

R CMD install prende un argomento biblioteca

Options: 
    -h, --help   print short help message and exit 
    -v, --version   print INSTALL version info and exit 
    -c, --clean   remove files created during installation 
     --preclean  remove files created during a previous run 
    -d, --debug   turn on debugging messages 
         and build a debug DLL 
    -l, --library=LIB  install packages to library tree LIB 

Così il seguente dovrebbe funzionare:

devtools::install_github("repo", args = c('--library="./mypath/gdfgdg/"')) 

però doesnt sembrano essere sostituendo la chiamata a R CMD install

"C:/PROGRA~1/R/R-31~1.0/bin/x64/R" --vanilla CMD INSTALL \ 
    "C:\Users\john\AppData\Local\Temp\RtmpucrXMD/RSelenium_1.3.2.tar.gz" \ 
    --library="C:/Users/john/Documents/R/win-library/3.1" --install-tests \ 
    --library="C:/Users/john/Desktop/" 
+0

Grazie. Ho archiviato un problema, https://github.com/hadley/devtools/issues/519 –

+0

@ManojG hai controllato se funziona o meno. Sembra funzionare per me sul mio setup. – jdharrison

+0

Ho provato. Sto ottenendo lo stesso tipo di output della tua risposta. Ma ancora non si installa nella directory specificata, ma si installa nella directory locale. –

1

Questo è più di una soluzione, ma ho trovato un modo utilizzando la versione da riga di comando di R.

A partire da Ubuntu:

sudo -i R

il trucco (che ho trovato) è quello di utilizzare l'opzione -i

Poi da R:

.libPaths()

la mia directory R locale non appare; la directory predefinita è quella che voglio.

Quindi, I install.packages() o install_github() con impunità.

Spero che questo aiuti,

Ian

+0

@lanLyttle: Grazie. Ma rimuove ancora solo la directory locale da '.libPaths()' e non ci sono altre 3 directory. Come eseguire R come utente root. –