it-swarm.com.de

Warnung in Installationspaketen: Temporäre Installation kann nicht verschoben werden

Ich habe beim Installieren oder Aktualisieren von Paketen in R/RStudio eine Reihe von Fragen zu dieser Warnung gefunden, aber keine scheint meiner Situation völlig zu entsprechen:

  • Corporate Windows 7-System, daher kein Zugriff auf Administratorrechte
  • Änderungen an McAfee Anti-Virus-Ausnahmelisten sind nicht möglich
  • R ist vollständig im Benutzerbereich installiert C:\Users\[myname]\R
  • RStudio im Benutzerbereich C\Users\[myname]\RStudio vollständig installiert
  • keine Berechtigungsprobleme in einem der Verzeichnisse ... Ich habe volle Zugriffskontrolle über sie
  • Das Problem begann erst nach der Installation von R 3.4, aber RStudio hat beim Start zufällig versagt oder hängt seit einigen Monaten nicht mehr
  • R_LIBS_USER wurde als Benutzerumgebungsvariable hinzugefügt und zeigt auf das rechte Verzeichnis
  • .libPaths() zeigt korrekte Verzeichnisse an, sowohl System als auch Benutzer
  • R-Version 3.4.2, RStudio-Version 1.0.153
  • Deinstallierte sowohl R als auch Rstudio und führte eine Neuinstallation von beiden durch
  • Versuchte trace(utils:::unpackPkgZip,edit = T) und bearbeitete Zeile 140 Sys.sleep(0.5) nach Sys.sleep(2), was manchmal vorübergehend funktioniert, aber die Bearbeitung nicht beibehalten wird. Wird bei jedem Neustart der Sitzung auf Sys.sleep(0.5) zurückgesetzt
  • Passiert in RStudio und RGui
  • Jedes Paket, das größer als einige Kb ist, gibt die Nachricht aus:

    package ‘packagename’ successfully unpacked and MD5 sums checked
    Warning in install.packages :
      unable to move temporary installation ‘C:\Users\[myname]\R\win-library\3.4\file2b884fc37c13\packagename’ to ‘C:\Users\[myname]\R\win-library\3.4\packagename’
    

Die Pakete können nicht installiert oder aktualisiert werden. Meine Fragen sind also:

  1. gibt es eine Möglichkeit, das Problem zu vermeiden, das keine Administratorrechte oder Änderungen der Antivirenrichtlinien erfordert?
  2. gibt es eine Möglichkeit, die Bearbeitung auf unpackPkgZip zu übertragen, um dauerhaft zu speichern?

An diesem Punkt bin ich verblüfft. Ich vermute, es hat etwas damit zu tun, dass das Antivirus nach dem Download die Datei/das Verzeichnis vorübergehend sperrt, aber ich kann von diesem Punkt aus nichts dagegen tun. Die Sys.sleep(2) scheint den Trick zu tun, aber ich kann das nicht vor jeder Paketinstallation oder -aktualisierung tun und scheint nicht zu schaffen, dass die Bearbeitung erhalten bleibt.

21
Scard

Dies war das einzige, was bei diesem Problem für mich funktionierte (die Deinstallation der Antiviren-Software hat mich leider nirgendwohin gebracht), also hoffnungsvoll funktioniert es für Sie. 

Auf Windows-Systemen wird die Installation von Bibliotheken manchmal zu schnell ausgeführt, wodurch der Fehler "Temporäre Installation kann nicht verschoben werden" angezeigt werden. Dann wird das Paket nicht in der Benutzerbibliothek gefunden, da es nicht verschoben wurde ...

Um dies zu beheben, versuchen Sie Folgendes: trace(utils:::unpackPkgZip, edit=TRUE)

Gehen Sie dann im Code zur Zeile 140 und ändern Sie Sys.sleep(0.5) in Sys.sleep(2.5).

Dies ist eine langfristige Lösung von Nice, für die kein manuelles Verschieben von Paketen, Deinstallieren von Software, Ersetzen von Verwaltungsaufgaben oder das individuelle Routing von Paketen an bestimmte Speicherorte erforderlich ist.

26
kslayerr

Meine ursprüngliche Antwort ist unten, aber ich habe später eine bessere Lösung gefunden.

Führen Sie die folgende Zeile aus: 

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

Beachten Sie, dass dort drei Doppelpunkte sind, nicht zwei.

Bearbeiten Sie dann die Zeile 142 von "Sys.sleep (0.5)" in "Sys.sleep (2.0)" und klicken Sie, um die Änderung zu speichern (die Zeilennummer kann leicht variieren). Leider gilt dies nicht für R-Sitzungen, es dauert jedoch nur 10 Sekunden, und Sie können nach Herzenslust Pakete für die aktuelle Sitzung installieren.

Ursprüngliche Antwort:

Ich bin bei der Arbeit auf das gleiche Problem gestoßen. Ich war in der Lage, Sheldons vorgeschlagenen Ansatz zu verwenden, aber wie gesagt, kann dies schnell langweilig werden. Als Alternative fand ich, dass ich zum Speicherort der heruntergeladenen Zip-Datei (en) in meinem temporären Verzeichnis wechseln konnte (wie von install.packages gemeldet), die Datei (en) entpacken würde (es gibt mehrere Zip-Dateien, wenn abhängige Pakete vorhanden sind ), und verschieben oder kopieren Sie alle entpackten Verzeichnisse direkt in mein R\win-library\3.4-Verzeichnis. Das macht auch nicht viel Spaß, aber ich finde es weniger schmerzhaft als den Debugger durch Sheldons Methode zu durchlaufen, besonders wenn mehrere Abhängigkeiten involviert sind und auch installiert werden müssen.

9
JeffR

Wenn Sie Ihr Antivirus-Programm nicht deaktivieren können, finden Sie hier eine Problemumgehung, bei der die unpackPkgZip-Datei nicht bearbeitet wird. Durch das Debuggen der Entpack-Funktion und das anschließende Durchlaufen wird dem Antivirus genug Zeit gegeben, um seine Arbeit ohne Beeinträchtigung zu erledigen. Verwenden Sie diesen Befehl:

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

und führen Sie dann den Code schrittweise durch (indem Sie mehrmals die Eingabetaste drücken), wenn R während der Installation mit dem Debuggen beginnt.

Ich habe diese Lösung gefunden hier .

Wenn Sie diese Änderung dauerhafter machen möchten, können Sie den Debug-Code in Ihre Rprofile-Datei einfügen (siehe here ). Sie müssen jedoch bei jeder Paketinstallation Schritt für Schritt die Unzip-Funktion verwenden.

5
Sheldon

Wir hatten das gleiche Problem an meinem Arbeitsplatz, und einer meiner Kollegen hat eine großartige Lösung gefunden. Leider ist dies eine temporäre Angelegenheit, die Sie bei jeder Installation von Paketen durchführen müssen, anstatt eine dauerhafte Lösung zu finden. Wir führen Corporate Windows 8 (keine Administratorrechte) mit McAfee aus und ich habe dies in R 3.4.0-3.4.3 getestet.

Wenn Sie die McAfee-Funktion "On-Access-Scan" (in Threat Prevention) vorübergehend deaktivieren, wurde dies für uns behoben. R-Pakete werden jetzt beim ersten Versuch so installiert, wie sie beabsichtigt sind. Hier sind detaillierte Schritte, um das auszuschalten:

  1. Klicken Sie im Infobereich rechts von Ihrer Taskleiste mit der rechten Maustaste auf das McAfee-Symbol, und wählen Sie McAfee Endpoint Security aus. 
  2. Klicken Sie auf Threat Prevention. Daraufhin wird ein Bildschirm geöffnet, in dem Kategorien wie "Zugriffsschutz", "Exploit-Verhinderung" und "On-Access-Scan" angezeigt werden sollten.
  3. Deaktivieren Sie "On-Access-Scan aktivieren" und klicken Sie auf Anwenden. (NB: Es ist Leicht zu vergessen, auf Anwenden zu klicken, aber es ist wichtig)

Nachdem Sie die Pakete installiert haben, wiederholen Sie den Vorgang am besten, um den On-Access-Scan wieder zu aktivieren.

4
dnidz

Bekam den gleichen Fehler - scheint ein gp/Zugangssicherheitsproblem des Unternehmens zu sein.

Es kann sich auch lohnen, zu prüfen, ob der Ordner, in den er schreibt, eine schreibgeschützte Struktur hat (Rechtsklick - Eigenschaften). Die Adresse dieses Ordners kann gefunden werden, indem Sie: .libPaths () [1] in R. ausführen.

Eine ad-hoc-Lösung für dieses Problem besteht darin, die heruntergeladenen (aber nicht verschobenen) Pakete mit einem R-Code zu entpacken und zu speichern. Sie erhalten eine Fehlermeldung, wo sich die Binärpakete befinden (etwa: C:/Users/.... AppData/...).

Nun können Sie die Dateien von hier aus einfach an Ihrem Speicherort .libPaths () entpacken

zipF <- list.files("C:/Users/<YOURNAMEHERE>/AppData/Local/Temp/Rtmp4Apz6Z/downloaded_packages", full.names = TRUE)
outDir <- .libPaths()[1]

for(i in 1: length(zipF)) {
unzip(zipF[i],exdir=outDir)
}

Eine allgemeinere Lösung ist immer noch äußerst lohnenswert, da dies bei der Aktualisierung von R unter Windows leider ein häufiges Problem ist.

4
Nick

Ich behebte meine Instanz dieses Problems (Windows 7), indem ich das Attribut "Schreibgeschützt" des Ordners entfernte, in den R versucht hatte, die Daten zu verschieben.

Ich ging in Windows (7) über das Startmenü zum Befehl Ausführen und gab Folgendes ein: Attrib -r + s Laufwerk: \\

Beachten Sie, dass das Klicken mit der rechten Maustaste auf den Ordner und der Versuch, Eigenschaften zu ändern, gemäß diesem Link von Microsoft nicht übernommen wurde: https://support.Microsoft.com/en-us/help/326549/you-cannot-view- oder -ändern Sie die Nur-Lesen-Oder-Systemattribute von-fo

Hoffe das hilft jemandem.

Ich hoffe, dass diese Änderung mich nicht auf andere Weise vermasselt.

1
DavidE

Das Erweitern des Sys.sleep-Werts auf 3.5 in Zeile 142 in der Funktion unpackPkgZip funktioniert manuell über

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

Sie können jedoch auch programmgesteuert vor install.packages Folgendes ausführen:

localUnpackPkgZip <- utils:::unpackPkgZip
body(localUnpackPkgZip)[[14]][[4]][[4]][[4]][[3]][[3]][[2]][[2]] <- substitute(3.5)
assignInNamespace("unpackPkgZip", localUnpackPkgZip, "utils")

Dies muss jedes Mal ausgeführt werden, wenn Sie eine neue Sitzung haben. Sie können es ohne Probleme mehrmals in derselben Sitzung ausführen.

0
user3821113

Ich habe mit dem gleichen Problem zu kämpfen. Für mich (unter Windows 10) war das Problem MalwareBytes (Premium-Testversion). Ich habe es deinstalliert und wieder Windows Defender verwendet, und das Problem wurde behoben. Wenn ich mehr Zeit habe, kann ich vielleicht herausfinden, wie man eine Ausnahme und/oder eine Dateiüberprüfungsverzögerung für MalwareBytes erstellt (dh, was ein ziemlich gutes Programm ist), aber die Benutzeranleitung ( https://www.malwarebytes.com) /pdf/guides/Malwarebytes-User-Guide.pdf ) ist diesbezüglich unklar. 

0
jrdunson

Ich habe auch eine Lösung gefunden, wenn die oben genannten Lösungen im Virenschutzprogramm von Unternehmen nicht funktionieren würden. __ Ändern Sie zunächst den Pfad der Paketinstallation. 

install.packages('caTools','D:\\ML\\Tools\\Installed\\RPackages')

Jetzt wird ein Fehler der Konsole angezeigt, der sich nicht verschieben lässt und das Paket an einem bestimmten Ort abgelegt wird. Denken Sie nur an diesen Speicherort, wir benötigen diese Zip-Datei für weitere Operationen.

Verwenden Sie nun diesen Befehl:

install.packages("D:/ML/Tools/Installed/RPackages/caTools_1.17.1.Zip", repos = NULL, type = "win.binary", lib="D:/ML/Tools/Installed/R-3.4.3/library") 
0
Vikalp Jain

Dies war die Fehlermeldung, die für mich ausgespuckt wurde:

package ‘mlogit’ successfully unpacked and MD5 sums checked
Warning in install.packages :
unable to move temporary installation ‘C:\Users\E\Documents\R\win-
library\3.4\file9ec6cfb5e40\mlogit’ to ‘C:\Users\E\Documents\R\win-
library\3.4\mlogit’

The downloaded binary packages are in
C:\Users\E\AppData\Local\Temp\RtmpS0uNDm\downloaded_packages

Was ich gemacht habe, war, wo das Paket heruntergeladen wurde (C:\Benutzer\E\AppData\Local\Temp\RtmpS0uNDm\downloads_packages) und dann diese gezippte Datei auf den Desktop kopierte Pakete für R werden gespeichert (C:\Users\E\Documents\R\win-library\3.4). Es wird jetzt in R. geladen.

library("mlogit")
Loading required package: Formula
Loading required package: maxLik
Loading required package: miscTools
....

Es funktionierte gut für mich, da es das einzige Paket war, das aus irgendeinem Grund nicht heruntergeladen wurde. Könnte nicht hilfreich sein, wenn Sie dies für jedes Paket tun müssen.

0
EDennnis