2012-11-30 5 views
6

Buon pomeriggio!È possibile impostare un percorso predefinito per i pacchetti R anziché dare all'utente una scelta?

Sono un amministratore di sistema presso un'università e sono responsabile della configurazione delle immagini per un laboratorio informatico. R fa parte dell'immagine predefinita e per un periodo di tempo più lungo abbiamo avuto un unico accesso per tutti gli utenti di laboratorio, consentendoci di impostare la directory predefinita una volta e quindi di visualizzarla su più sistemi. Ciò è cambiato e ora stiamo effettuando l'accesso a tutti gli utenti con un accesso personalizzato. Questo mi porta ad un problema che sto avendo con R, e perché mi sto rivolgendo a te.

Si vede, come molti di voi sanno, quando R viene eseguito per la prima volta, si apre una finestra di dialogo che richiede una posizione per salvare pacchetti e simili. Premi 'OK' ed è il file utente, ma colpisci qualsiasi altra cosa ed è ovunque lo metti. Il problema è che abbiamo bloccato i sistemi piuttosto strettamente e l'accesso a qualcosa di più della singola directory dell'utente non è qualcosa che ci piace fare.

La domanda che ho è questa: esiste un modo per forzare R, al primo avvio, tramite script vivavoce o solo un'impostazione da qualche parte, per l'impostazione predefinita nella directory dell'utente sul sistema per l'archiviazione dei pacchetti? Questo mi impedirebbe di dare a tutti gli utenti l'accesso per leggere e scrivere nella directory R, ​​e avrebbe meno possibilità di rovinare perché non avrebbero in realtà una scelta per cambiarlo. Se devo continuare a dare i permessi in quella cartella, posso, ma preferirei di no.

Grazie!

+0

Suggerirei di leggere '? Startup' e' .libPaths' per un elenco completo delle opzioni disponibili. – hadley

risposta

1

Non riesco a testarlo adesso, ma credo che si possa aggiungere qualcosa come Sys.setenv(R_LIBS_USER=path.expand('~\R\library')) al file Rprofile.site trovato nella directory R etc.

+1

Molto più semplice impostarlo come 'R_LIBS_USER = ....' in Renvironmen.site; puoi anche fare 'R_LIBS_SITE' che potrebbe essere quello che OP è * veramente * dopo. –

1

Modificare il file tuo .Renviron per impostare il percorso predefinito:

# .Renviron file 
R_LIBS = '~/.R/library' 
+1

La domanda riguarda la posizione della libreria predefinita, non i repository. –

+0

@mplourde Le mie capacità di lettura lasciano molto a desiderare il venerdì. –

+0

+1 per .Renviron. Non sapevo che esistesse una cosa del genere. –

0

'... per difetto alla directory dell'utente sul sistema per l'archiviazione pacchetto ...'

un altro modo , soprattutto se si desidera che impostazioni diverse per il personale/studenti siano utilizzate per utilizzare criteri di gruppo per impostare una variabile di ambiente per macchine/utenti selezionati all'accesso.

ad es. l'equivalente di ...

SETX "R_LIBS" "\\fileserver2/department_shared/public/r/packages" 

si può facilmente verificare se questo ha funzionato avviando R e cercando

Sys.getenv("R_LIBS") 

anche, questo comando può quindi mostrare ciò che sono installati i pacchetti:

rownames(installed.packages()) 
Problemi correlati