Р - Что означает "неполный блок в файле"?
Я использую RStudio и пытаюсь использовать пакет с моим текущим проектом. Я нажимаю флажок "Использовать пакет с этим проектом" и нажимаю "ОК", где я получаю следующий вывод из консоли:
> packrat::init()
Initializing packrat project in directory:
- "/Users/Ash/Dropbox/Uni/2014/Thesis/Code/R"
Adding these packages to packrat:
_
packrat 0.4.0.12
Fetching sources for packrat (0.4.0.12) ... Error in snapshotSources(project, activeRepos(project), allRecordsFlat) :
Errors occurred when fetching source files:
Error in untar2(tarfile, files, list, exdir, restore_times) :
incomplete block on file
Я не могу найти много об этой ошибке, но на основе этого кода (поиск строки ошибки, неполный блок в файле), кажется, это связано с неожиданной длиной / размером файла.
Я предполагаю, что загрузка может быть повреждена? Но я пробовал несколько раз.
Или, возможно, у меня нет правильных разрешений? Но файл проекта не должен иметь проблем здесь.
У кого-нибудь еще была эта проблема?
1 ответ
Я предполагаю, что загрузка может быть повреждена? Но я пробовал несколько раз.
Да. Загрузка может быть повреждена или, согласно этой теме в списке рассылки справки R, проблема может быть вызвана повреждением пакета на самом сервере. В последнем случае это можно решить, выбрав другое зеркало для загрузки пакета.
ПРИМЕЧАНИЕ. Я опишу решение, которое использует R-консоль вместо Rstudio GUI, потому что я использовал для установки пакетов таким образом. Описанный подход, вероятно, может работать и с установками пакетов из GUI.
Когда вы устанавливаете пакет из консоли R, выполнив:
> install.packages("<package_name>")
Вам предоставляется список доступных зеркал на выбор:
1: 0-Cloud [https] 2: Austria [https]
3: Chile [https] 4: China (Beijing 4) [https]
...
Просто выберите другой (желательно один рядом с вашим местоположением, чтобы ускорить загрузку).
Если у вас нет такого выбора, но загрузка начинается сразу же, у вас настроено зеркало по умолчанию (например, Rstudio автоматически устанавливает https://cran.rstudio.com/
по умолчанию). Вы можете проверить выбранное зеркало, выполнив:
> getOption("repos")["CRAN"]
CRAN
"https://cran.rstudio.com/"
Для сброса зеркала по умолчанию вы можете использовать следующие команды:
> r <- getOption("repos")
> r["CRAN"] <- "@CRAN@"
> options(repos=r)
Теперь, когда вы пытаетесь установить новый пакет, вы можете выбрать другое зеркало, как описано выше.
Отвечая через миллион лет... Но если кто-нибудь попадет сюда, как я, ища Error in untar2(tarfile, files, list, exdir, restore_times) : incomplete block on file
, ваша проблема может быть связана с наличием в вашем коде приватных пакетов.
Следуйте этой теме. Последний комментарий спас мне жизнь.
Вам нужно создать tar.gz из ваших собственных частных пакетов и сохранить его в уникальной папке. Оттуда просто запустите этот код:
packrat::set_opts(local.repos = "path/to/the/folder/with/your/tar.gz/files")
packrat::install_local('yourpackage')
После этого запустить снова packarat::init()
И это снова будет счастливый день.