Windows 7, update.packages Problem: “temporäre Installation kann nicht verschoben werden”?

Ich benutze R 2.13.0 mit Windows 7, nachdem ich meinem Benutzer volle Rechte für den R-Ordner gegeben habe (wie hier beschrieben). Dies erlaubt mir, neue Pakete gut zu installieren.

Wenn ich jedoch update.packages () verwende, um existierende Pakete zu aktualisieren, bekomme ich immer den folgenden Fehler (zum Beispiel wenn ich das MASS-Paket aktualisiere):

Paket ‘MASS’ erfolgreich entpackt und MD5-Summen überprüft

Warnung: Die temporäre Installation ‘C: \ Programme \ R \ R-2.13.0 \ library \ file6cae3bcf \ MASS’ konnte nicht in ‘C: \ Programme \ R \ R-2.13.0 \ library \ MASS’ verschoben werden.

Irgendwelche Vorschläge, wie Sie das beheben können?

ps: Das Ausführen von R als Administrator oder das Verschieben des Bibliotheksstandorts aus Programmdateien ist keine Lösung (es ist ein Hack – aber ich suche nach einer Lösung)

Ich habe festgestellt, dass das Problem in der Tat der Antivirus “Echtzeit-Dateisystem-Schutz” ist. Ich mache folgendes, um das Problem zu beheben:

 trace(utils:::unpackPkgZip, edit=TRUE) 

Ich bearbeite Zeile 140 (Zeile 142 in R 3.4.4):

 Sys.sleep(0.5) 

zu:

 Sys.sleep(2) 

Ich sehe aus, als würde das Antivirenprogramm die Erstellung des Pakets tmp dir blockieren. Nach dem Ändern auf 2 Sekunden ist der Fehler verschwunden.

EDIT: um dies programmgesteuert auszuführen

 trace(utils:::unpackPkgZip, quote(Sys.sleep(2)), at = which(grepl("Sys.sleep", body(utils:::unpackPkgZip), fixed = TRUE))) 

(Dank @DavidArenburg)

Nur um alle zu aktualisieren, habe ich (denke ich) die Ursache des Problems herausgefunden: Antivirus .

Der “Echtzeit-Dateisystemschutz” blockierte R davor, die Dateien nach dem Herunterladen zwischen Ordnern zu kopieren. Nach dem Hinzufügen des R-Verzeichnisses zur Ausnahmeliste (verbunden mit dem Hinzufügen von Benutzerrechten und Installieren von R auf D: \ R), ging das Problem verloren. Mit all dieser Arbeit könnte ich genauso gut zu Linux wechseln (ich sollte, wirklich …)

(Ich habe meinen Beitrag mit den oben genannten Informationen aktualisiert: http://www.r-statistics.com/2011/04/how-to-upgrade-r-on-windows-7/ )

Ich hoffe, es wird jemandem in der Zukunft helfen, Tal

Wenn Sie Ihr Antivirenprogramm beispielsweise aufgrund von Unternehmensrichtlinien nicht deaktivieren können, finden Sie hier eine Problemumgehung, die ich gefunden habe. Durch das Debuggen der Unzip-Paketfunktion und das anschließende Durchlaufen des Skripts erhält das Antivirenprogramm genügend Zeit, um seine Aufgabe ohne Störungen zu erledigen. Verwenden Sie diesen Befehl:

debug(utils:::unpackPkgZip) install.packages("packageName")

und dann den Code durchlaufen (indem Sie mehrmals Enter drücken), wenn R während der Installation mit dem Debuggen beginnt.

Ich habe diese Lösung hier gefunden .

Wenn Sie die Binärdatei direkt von CRAN herunterladen können. Unter Windows wird beim Herunterladen eine Zip-Datei angezeigt. Entpacken Sie das nun manuell in den Ordner ..library / Ihres R ( .libPaths() ). Bei einigen Paketen hat es funktioniert.

Ich hatte dieses Problem, indem ich sowohl swirl als auch dplyr installiere. Ich arbeite an Windows 64-Bit.

Warnung: Die temporäre Installation kann nicht verschoben werden

Ich habe meine temporären Dateien auf dem Laufwerk C: aufgerufen und mein Programm zum Extrahieren von Dateien geöffnet und die Dateien aus der temporären Datei im Laufwerk C: zu meinen R-Programmdateien auf dem Laufwerk C: extrahiert, indem ich sie manuell kopiert habe . DIESE BEARBEITET FÜR BEIDES dpylr und Wirbel. Stoked!

Prost,

Pfirsich

Können Sie den Parameter lib.loc nicht verwenden, um nur Pakete in Ihrer persönlichen Bibliothek (im Benutzer) zu aktualisieren? Es sollte keine Möglichkeit geben, einen normalen, nicht erweiterten Benutzer zu veranlassen, Dateien im Ordner mit den Programmdateien zu ändern. Das Einzige, was Sie tun können (wenn Sie den Benutzer nicht erweitern wollen), ist, dass R dort keine Pakete aktualisiert .

Eine Problemumgehung besteht darin, die Installation von R im Ordner für Programmdateien zu vermeiden (was mehr oder weniger ein Hack sein kann, als den Speicherort der Bibliothek je nach Standpunkt zu verschieben).

Schließlich, wenn lib.loc es nicht schneidet, können Sie den Quellcode für update.packages betrachten und Ihre eigene angepasste Version erstellen, die immer den allgemeinen Bibliotheksort in Programmdateien vermeidet.

Ich habe gerade die gleiche Frage, und die Lösung, die ich fand, war, dass Sie Pakete mit der ursprünglichen R-Software installieren sollten (plus, sollten Sie die richtige Mirror-Site wählen, einige von ihnen sind blockiert). Zuerst habe ich Rstudio benutzt, um Pakete zu installieren und ich habe das gleiche Problem wie Sie. Ich hoffe, das ist hilfreich.

Ich bin mehrmals auf diesen Fehler gestoßen. In meinem Fall ist es so, weil unsere Admins wollen, dass wir für unsere Dateien virtuelle Remote-Festplatten (unter Windows 7) verwenden und alles wie eine Trommel verschlossen ist. Der einzige Weg, wie ich R-Pakete verwenden kann, ist in einem lib-Verzeichnis auf dem entfernten virtuellen Laufwerk. Dies wäre kein Problem, außer dass das Netzwerk nicht immer glatt und schnell ist. Wenn ich also ein Paket benötige, insbesondere eines mit mehreren anderen Paketen (z. B. MBESS), muss ich entweder den process get.packages () mehrmals durchlaufen, bis es schließlich fertig ist, oder IT-Kopfschmerzen machen, um es schnell zu machen der Hase für mich. Ich kann nicht immer auf IT warten.

Ich ging einfach in den Bibliotheksordner (Windows XP) und löschte alle fileXXXX-Ordner. Reran die Installation und es funktioniert.

Sie müssen in die Eigenschaften des Ordners R wechseln und die Sicherheitsparameter ändern. Sie können die Option zum Schreiben und Ändern für alle Benutzer aktivieren.

Ich hatte das gleiche Problem. Da das Problem scheint, dass das Antivirenprogramm das Übertragen einer heruntergeladenen Datei blockiert, habe ich eine andere Download-Methode in den install.packages ausprobiert und es hat funktioniert.

Beispielsweise:

 install.packages("stringr", method = "curl") 
 install.packages('MASS') 

Dies würde Ihr Problem lösen, indem Sie die erforderlichen Pakete einzeln installieren.