Windows 7, проблема update.packages: «невозможно перенести временную установку»? - PullRequest
74 голосов
/ 18 апреля 2011

Я использую R 2.13.0 с Windows 7, после того, как предоставил моему пользователю полные права на папку R (как описано здесь ).Это позволяет мне устанавливать новые пакеты просто отлично.

Однако при использовании update.packages () для обновления существующих пакетов я получаю следующую ошибку (например, при обновлении пакета MASS):

пакет 'MASS' успешно распакован и проверены суммы MD5

Предупреждение: невозможно переместить временную установку 'C: \ Program Files \ R \ R-2.13.0\ library \ file6cae3bcf \ MASS 'to' C: \ Program Files \ R \ R-2.13.0 \ library \ MASS '

Есть предложения, как это исправить?

PS: Запуск R от имени администратора или смещение расположения библиотеки из Program Files не является решением (это взлом, но я ищу решение)

Ответы [ 13 ]

103 голосов
/ 04 сентября 2017

Я обнаружил, что проблема действительно в антивирусе "защита файловой системы в реальном времени". Я делаю следующее, чтобы решить проблему:

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

Я редактирую строку 140 (строка 142 в R 3.4.4):

Sys.sleep(0.5)

до:

Sys.sleep(2)

Мне кажется, что антивирус останавливает создание пакета tmp dir. После изменения на 2 секунды ошибка исчезла.

РЕДАКТИРОВАТЬ: для этого программно выполнить

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

(кредиты @DavidArenburg)

64 голосов
/ 19 апреля 2011

Просто чтобы обновить всех, я (кажется, я) выяснил источник проблемы: антивирус .

"Защита файловой системы в режиме реального времени" блокировала R от копирования файлов между папками после их загрузки. После добавления каталога R в список исключений (в сочетании с добавлением разрешения пользователя и установкой R на D: \ R) проблема исчезла. Со всей этой работой я мог бы также переключиться на Linux (я должен, действительно ...)

(я обновил свой пост, указав приведенную выше информацию: http://www.r -statistics.com / 2011/04 / how-to-upgrade-r-on-windows-7 / )

Я надеюсь, что это поможет кому-то в будущем, Tal

41 голосов
/ 30 мая 2017

Если вы не можете отключить антивирус, например, из-за корпоративной политики, я нашел обходной путь. Отладка функции пакета распаковки и последующее пошаговое выполнение дает антивирусу достаточно времени, чтобы выполнить свою работу без вмешательства. Используйте эту команду:

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

, а затем пошагово просматривайте код (многократно нажимая Enter), когда R начинает отладку во время установки.

Я нашел это решение здесь .

14 голосов
/ 30 августа 2013

Если вы можете просто скачать двоичный файл прямо из CRAN.На окнах при загрузке это будет zip-файл.Теперь вручную распакуйте это в папку ..library / вашего R (.libPaths()).У меня это работало на некоторых пакетах.

7 голосов
/ 01 ноября 2017

У меня была эта проблема при установке swirl и dplyr.Я работаю на 64-битной Windows.

Предупреждение: невозможно перенести временную установку

Я получил доступ к временным файлам на диске C:открыл мою программу извлечения файлов, и я извлек файлы из временного файла на диске C: в мои файлы программ R на диске C:, скопировав их вручную.ЭТО РАБОТАЕТ ДЛЯ ОБА ДПЫЛР И ВИХРЯ.Подогрев!

Ура,

Персик

2 голосов
/ 08 декабря 2014

Я только что встретил тот же вопрос, и решение, которое я нашел, состояло в том, что вы должны установить пакеты с использованием оригинального программного обеспечения R (плюс, вы должны выбрать правильный зеркальный сайт, некоторые из них заблокированы).Сначала я использовал Rstudio для установки пакетов, и у меня возникла та же проблема, что и у вас.Надеюсь, что это полезно.

2 голосов
/ 18 апреля 2011

Разве вы не можете использовать параметр lib.loc только для обновления пакетов в вашей личной библиотеке (для пользователя)? Не должно быть никакого способа разрешить обычному, не дополненному пользователю изменять файлы в папке программных файлов, поэтому единственное, что вы можете сделать (если вы не хотите увеличивать пользователя), это заставить R не обновлять пакеты там. .

Обходной путь - избегать установки R в папке с программными файлами (что может быть более или менее взломанным, чем просто смещение расположения библиотеки из нее, в зависимости от вашей точки зрения).

Наконец, если lib.loc не обрезает его, вы можете посмотреть исходный код для update.packages и создать свою собственную настроенную версию, которая всегда будет избегать общего расположения библиотеки в файлах программы.

1 голос
/ 10 апреля 2017

Я просто зашел в папку библиотеки (Windows XP) и удалил все папки fileXXXX.Повторите установку это работает.

1 голос
/ 15 апреля 2016

Я сталкивался с этой ошибкой несколько раз.В моем собственном случае это потому, что наши администраторы хотят, чтобы мы использовали удаленные виртуальные диски (в Windows 7) для наших файлов, и все плотно закрыто как барабан.Единственный способ использовать пакеты R - это каталог lib на этом удаленном виртуальном диске.Это не будет проблемой, за исключением того, что сеть не всегда гладкая и быстрая.Таким образом, когда мне нужен пакет, особенно пакет с несколькими другими пакетами (например, MBESS), я должен либо пройти через процесс get.packages () несколько раз, пока он окончательно не завершится, либо сделать головную боль ИТ-специалистов такой быстройзайчик для меня.Я не всегда могу ждать ЭТО.

0 голосов
/ 01 марта 2019

Я использую MRAN, и у меня было так много проблем с версиями.Попытка работать с tidyverse и ggplot2 и путем обновления до последней версии от Microsoft позволила решить все мои проблемы с версиями R-Studio.R Открыть 3.5.1

...