2016-06-22 22 views
1

Wenn ich überprüfen Sie die R-Umgebung Ich habe:Kontroverse von R_LIBS_USER Weg

> Sys.getenv("R_LIBS_USER") 
[1] "~/R/x86_64-pc-linux-gnu-library/3.3" 

Aber wenn ich cd in das Verzeichnis, es gibt keinen scheint dieser Weg überhaupt:

[email protected]:~/R/x86_64-pc-linux-gnu-library$ ll -a 
total 12 
drwxr-xr-x 3 dz33 dz33 4096 Jul 2 2015 . 
drwxr-xr-x 3 dz33 dz33 4096 Jul 10 2015 .. 
drwxr-xr-x 64 dz33 dz33 4096 Mar 30 16:41 3.2 

Wie Sie sehen können Es gibt nur /3.2 Verzeichnis, aber /3.3. Weiß jemand warum und wie man zu 3.2 wechselt oder 3.3 einrichtet? Es scheint, meine R-Version ist die neueste:

> R.Version() 
$platform 
[1] "x86_64-pc-linux-gnu" 

$arch 
[1] "x86_64" 

$os 
[1] "linux-gnu" 

$system 
[1] "x86_64, linux-gnu" 

$status 
[1] "" 

$major 
[1] "3" 

$minor 
[1] "3.0" 

$year 
[1] "2016" 

$month 
[1] "05" 

$day 
[1] "03" 

$`svn rev` 
[1] "70573" 

$language 
[1] "R" 

$version.string 
[1] "R version 3.3.0 (2016-05-03)" 

$nickname 
[1] "Supposedly Educational" 

Antwort

3

Die R_LIBS_USER Variable ist optional und, falls eingestellt, wird auf dem Bibliothekspfad vorangestellt werden (die durch .libPaths() angezeigt wird).

ich in der Minderheit sein, aber auf den Systemen Ich betreue ich ungesetztR_LIBS_USER so versuchen, dass ich

R> .libPaths() 
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library" 
[3] "/usr/lib/R/library"   
R> 

bekommen was bedeutet, dass install.packages()et al ein systemweit verwenden Verzeichnis zugänglich für alle Benutzer auf dem System --- das macht Sinn bei der Arbeit, wo wir Multi-User-Systeme haben. Beachten Sie, dass Sie möchten, dass Ihre Benutzer Mitglieder einer Gruppe mit Gruppenschreibberechtigungen für dieses Verzeichnis sind, die installiert werden können (sofern Sie Ihren Benutzern vertrauen können).

es Dadurch entfällt auch mit versioniert Verzeichnisse (dh 3.2/ vs 3.3/) Sie beobachtet.

Fuller Details sind in help(Startup).

+1

Interessante Politik auf R, die neuesten Versionen für alle durchsetzend. (Ich stimme nicht zu.) Finden Sie, dass Leute Strategien wie "Checkpoint" verwenden müssen, um sicherzustellen, dass sie nicht unwissentlich Versionen aktualisieren? (Auch wenn der '/ usr/local/...' -Pfad keine versionierten Verzeichnisse verwendet, ist er auf R-Upgrades kompatibel, sagen wir von 3.2 bis 3.3?) – r2evans

+0

Danke, @Dirk! Der Grund, warum ich das gefragt habe, ist, dass ein Fehler beim lokalen Installieren eines Pakets aufgetreten ist: 'R CMD INSTALL vimcom_0.9-93.tar.gz' 'Fehler in der Bibliothek (vimcom): Es gibt kein Paket namens ' vimcom'', aber ein 'vimcom_0.9-93.tar.gz' ist physisch in der Regie. –

+3

"Erzwingen"? Wie wäre es mit "anbieten"? Ich bin kein Fan von Checkpoint, Packrat und was nicht. Ich habe viel Glück für 10+ Jahre mit R, indem ich auf Pakete mit vernünftigen Betreuern angewiesen bin, die ihre APIs nicht brechen. –

Verwandte Themen