2012-11-30 6 views
6

Guten Tag!Ist es möglich, einen Standardspeicherort für R-Pakete festzulegen, anstatt dem Benutzer eine Auswahl zu geben?

Ich bin ein Systemadministrator an einer Universität, und ich bin verantwortlich für die Einrichtung der Bilder für ein Computerlabor. R ist Teil des Standard-Images und lange Zeit hatten wir nur eine einzige Anmeldung für alle Lab-Benutzer, sodass wir das Standardverzeichnis einmal festlegen und dann auf mehreren Systemen abbilden konnten. Dies hat sich geändert, und jetzt melden sich alle Benutzer mit einem persönlichen Login an. Das bringt mich zu einem Problem, das ich mit R habe und warum ich mich an dich richte.

Sie sehen, wie die meisten von Ihnen wissen, wenn R zum ersten Mal ausgeführt wird, öffnet sich ein Dialogfeld, das nach einem Speicherort zum Speichern von Paketen und ähnlichem fragt. Drücken Sie "OK" und es ist die Benutzerdatei, aber treffen Sie alles andere und es ist, wo immer Sie es hinstellen. Das Problem ist, dass wir die Systeme ziemlich fest gesperrt haben, und dass wir nicht mehr auf irgendetwas mehr als das individuelle Verzeichnis des Benutzers zugreifen wollen.

Die Frage, die ich habe, ist dies - gibt es eine Möglichkeit, R, beim ersten Lauf, über Freihand-Skript oder nur eine Einstellung irgendwo, standardmäßig auf das Benutzerverzeichnis auf dem System für Paketspeicher zu zwingen? Dies würde verhindern, dass ich All Usern Zugriff auf das Lesen und Schreiben in das R-Verzeichnis geben müsste, und hätte weniger Möglichkeiten, etwas zu vermasseln, da sie eigentlich keine Wahl haben würden, es zu ändern. Wenn ich in diesem Ordner weiterhin Berechtigungen erteilen muss, kann ich das, aber ich möchte es lieber nicht.

Danke!

+0

Ich würde empfehlen "Startup" und ".libPaths" für eine vollständige Liste der verfügbaren Optionen zu lesen. – hadley

Antwort

1

Ich kann das jetzt nicht testen, aber ich glaube, dass Sie etwas wie Sys.setenv(R_LIBS_USER=path.expand('~\R\library')) zu der Rprofile.site-Datei hinzufügen können, die sich im Verzeichnis R etc befindet.

+1

Viel einfacher als 'R_LIBS_USER = ....' in Renvironmen.site; Sie können auch 'R_LIBS_SITE' ausführen, was OP * wirklich * danach sein kann. –

1

Bearbeiten Sie Ihre Datei .Renviron den Standardpfad zu setzen:

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

Die Frage bezieht sich auf den Standardspeicherort der Bibliothek, nicht auf Repos. –

+0

@mplourde Meine Lesefähigkeiten lassen an einem Freitag viel zu wünschen übrig. –

+0

+1 für .Renviron. Wusste nicht, dass es so etwas gab. –

0

‚... des Benutzers Verzeichnis auf dem System für Paketspeicher auf Standard ...‘

einen anderen Weg , besonders, wenn Sie wollten andere Einstellung für Mitarbeiter/Studenten wäre, Gruppenrichtlinie zu verwenden, um eine Umgebungsvariable für ausgewählte Maschinen/Benutzer bei der Anmeldung festzulegen.

z.B. das Äquivalent von ...

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

Sie können leicht überprüfen, ob dies durch R beginnen und versuchen, auch

Sys.getenv("R_LIBS") 

gearbeitet hat, kann dieser Befehl dann zeigen Ihnen, welche Pakete installiert sind:

rownames(installed.packages()) 
Verwandte Themen