Подтвердить что ты не робот

Проблема с Windows 7, update.packages: "невозможно переместить временную установку"?

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

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

пакет "МАСС" успешно распакован и проверены суммы MD5

Предупреждение: невозможно переместить временную установку "C:\Program Файлы\R\R-2.13.0\Библиотека\file6cae3bcf\MASS" на 'C:\Program Файлы\R\R-2.13.0\Библиотека\MASS

Какие-нибудь предложения по устранению этого?

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

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

Sys.sleep(0.5)

чтобы:

Sys.sleep(2)

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

EDIT: выполнить это программно

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

(кредиты @ДавидАренбург)

Ответ 3

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

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

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

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

Ответ 4

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

Ответ 5

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

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

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

Приветствия,

Персик

Ответ 6

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

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

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

Ответ 7

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

Ответ 8

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

Ответ 9

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

Ответ 10

Вы должны войти в свойства папки R и изменить параметры безопасности. Вы можете включить возможность записи и изменения для всех пользователей.

Ответ 11

У меня была та же проблема. Поскольку проблема, кажется, является антивирусом, блокирующим трансфиску загруженного файла, я попробовал другой способ загрузки в install.packages, и он сработал.

Например:

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

Ответ 12

install.packages('MASS')

Это позволит решить вашу проблему путем индивидуальной установки необходимых пакетов.