Ошибки при установке R пакетов на Windows.

В большинстве случаев, особенно при установке пакетов из CRAN никаких проблем не возникает, но периодически всё таки вы можете столкнуться с некоторыми ошибками.

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

package ‘foo’ is not available”

Достаточно распространённая ошибка, текст которой к сожалению не сообщает о реальной проблеме, которой была эта ошибка вызвана.

В одной из статей на RBloggers, автор опубликовал подробный чек лист как с этой ошибкой бороться.

  1. Неправильно написанное название пакета. Первое, что стоит проверить — это правильно ли вы написали название пакета, который хотите установить. R регистро чувствительный язык, поэтому даже одна буква написанная не в том регистре будет считаться неправильным именем пакета. Лучший способ копировать название пакета из CRAN.
  2. Проверьте своё интернет соединение. Звучит банально, но иногда в процессе разработки когда мы можем не заметить, что уже более часа работаем без доступа к интернету.
  3. Проверьте сеть CRAN. Возможно в момент установки пакета не доступны сервера CRAN, для проверки просто попробуйте загрузить главный сайт проекта. Если основное зеркало CRAN не доступно, вы можете установить пакет из другого, используя аргумент repos внутри функции install.packages().
  4. Убедитесь в том, что пакет был опубликован на CRAN. Перед тем как пакет попадёт на CRAN, зачастую автор проводит большую работу над его тестированием, и доработкой функционала. Как правило на CRAN публикуются пакеты чей код и функционал уже устоялся, и считался стабильным. Поэтому 4ый шаг, просто убедитесь в том, что нужный пакет уже опубликван. Если пакета нет на CRAN, то скорее всего вы можете найти его на GitHub, и установить с помощью команды devtools::install_github('pkg_name').
  5. Убедитесь в том, что пакет не был удалён из CRAN. Требования политики публикации пакетов в CRAN не редко меняются, если автор перестал поддерживать свой пакет, и с течением времени этот пакет стал нарушать правила политики публикации CRAN, то его удалят из репозитория. В таком случае перейдя на страницу пакета https://cran.r-project.org/package=PACKAGE_NAME, вы увидите сообщение “Package ‘foo’ was removed from the CRAN repository.”, что и свидетельствует об удалении пакета из CRAN. Если вы получите ошибку 404, значит пакет ранее не был опубликован на CRAN.

unable to create temporary directory

Недавно столкнулся с проблемой при установке пакетов из RStudio — ОШИБКА: нет прав для установочной папки ‘C:/Users/Documents/R/win-library/3.5’.

Та же ошибка может возвращать и следующие сообщения:

  • ‘lib = «C:/Users/Alsey/Documents/R/win-library/3.5″‘ is not writable
  • Error in install.packages : unable to create temporary directory ‘C:\Users\Alsey\Documents\R\win-library\3.5\file34ac62294fbd’

С чем связано её появление я так и не понял, но устранить получилось следующим образом:

  1. Создайте новую папку, которая будет в последствии вашей пользовательской библиотекой R пакетов, лучше создавать её не на диске C, что бы в последствии не сталкиваться с такой же проблемой.
  2. В основной вашей рабочей директории (скорее всего это папка ‘Документы’ которая обычно находится в каталоге пользователя Windows, примерный путь к ней C:\Users\Alsey\Documents ), найдите файл .Renviron, на данный момент он будет пустой, это файл конфигурации R, именно в нём можно менять дефолтные значения глобальных переменных R, вам необходимо в него вписать одну строку  R_LIBS_USER=D:/r_library, где D:/r_library это путь к созданной на первом шаге папке.
  3. Далее перезапустите сессию R, и можете убедиться с помощью команды .libPaths(), что созданная на первом шаге папка стала пользовательской библиотекой для установки и хранения пакетов.

Could not find tools necessary to compile a package

С этой ошибкой я столкнулся при установке пакетов из GitHub после обновления R до более новой версии.

Ответ я нашел вот тут.

Проблема возникает при попытке RStudio проверить установленные у вас инструменты сборки пакетов, для того, что бы подвить эту проверку необходимо перед установкой пакета установить следующую опцию.

options(buildtools.check = function(action) TRUE )

После чего можно устанавливать пакет.

Found continuation line starting ‘ shortcut functio …’ at begin of record

Эта проблема появилась при установке пакетов из GitHub с помоью devtools не так давно, и связана она с файлом DESCRIPTION.

Возникает в ситуации когда в файле DESCRIPTION имеется многострочное описание в поле » Description: «.

Для исправления вам необходимо форкнуть нужный пакет на GitHub.

Создать свою ветку пакета на GitHub

И сделать однострочным поле » Description: » в файле DESCRIPTION, далее устанавливайте пакет уже из своего репозитория.

(converted from warning) installation of package ‘C:/Users/Alsey/AppData/Local/Temp/2/Rtmp4g880D/file259c11b85f00/vctrs_0.1.0.9003.tar.gz’ had non-zero exit status

Вызвана данная ошибка конфликтом возникающим при установке пакетов одновременно для разных версий ядра R, 32 и 64 битных.

Полный текст ошибки из консоли:

error: ld returned 1 exit status
no DLL was created
ERROR: compilation failed for package 'vctrs'
* removing 'D:/r_library/vctrs'
* restoring previous 'D:/r_library/vctrs'
Error in i.p(...) : 
  (converted from warning) installation of package ‘C:/Users/Alsey/AppData/Local/Temp/Rtmpyu30Ew/file35cc2a261c8f/vctrs_0.2.0.9000.tar.gz’ had non-zero exit status

Узнать разрядность версии R в которой вы работаете можно двумя способами:

Sys.getenv("R_ARCH")
[1] "/x64"

В случае если вы используете 32 битный R вернётся значение "/i386".

Sys.info()[["machine"]]
[1] "x86-64"

На 32 битном R вы получите "x86_32".

После того, как мы определили разрядность ядра требуется пойти одним из описанных способов, для 64 битной версии просто используйте при установке пакета опцию "--no-multiarch".

devtools::install_github("username/repos", INSTALL_opts = "--no-multiarch")

Если у вас 32 битная версия, то необходимо изменить в переменной окружения PATH путь к утилите RTools с C:\Rtools\mingw_64\bin на C:\Rtools\mingw_32\bin. О том как это сделать можно узнать в этой статье .

Далее запускаем установку пакета только для 32 битной версии с помощью опции "--no-multiarch", так же как и ранее было показано с примером для 64 разрядного R.

Warning Message: cannot remove prior installation of package ‘X’

Если вы увидели такое сообщение при попытке установить какой-либо пакет, это говорит о том, что пакет в данный момент заблокирован каким – то процессом. Первое, что вам необходимо попробовать сделать это перезапустить RStudio, и попробовать повторно запустить установку пакета.

Если перезапуск RStudio не помог, то откройте диспетчер задач, и на вкладке подробности посмотрите, нет ли у вас каких либо зависших R сеансов.

Если такие есть их необходимо завершить, и попробовать повторно запустить процесс установки пакета.

Если и это не помогло, то идём третьим способом.

  1. Найдите путь к папкам, в которых у вас установлены пакеты, делается это командой .libPaths().
  2. В ручном режиме удалите папку с пакетом, который пытаетесь установить.
  3. Откройте RStudio и повторите попытку установить пакет.

Один из перечисленных выше способов должен сработать.


Статья будет постоянно дополняться, дата последнего редактирования 6 октября 2020 года.

Ошибки при установке R пакетов на Windows.: 8 комментариев

Добавьте свой

  1. Добрый вечер! извините просто незнала где задать вопрос. Подскажите пожалуйста, как сделать такой вид подписки как у Вас в блоге!?

    Нравится

  2. Предупреждение: недоступен индекс для хранилища https://cran.cmm.msu.ru/src/contrib:
    не могу открыть URL ‘https://cran.cmm.msu.ru/src/contrib/PACKAGES’
    Ошибка в install.packages(lib = .libPaths()[1L], dependencies = NA, type = type) :
    аргумент «pkgs» пропущен, умолчаний нет
    Подскажите, что в таком случае делать? Пакет Rcmdr

    Нравится

  3. Алексей, может вы поможете
    Использую Mac OS 10.13.6
    RStudio 1.3.1073

    Устанавливаю пакет install.packages(“prophet”, type = “source”)

    Выдаёт такую ошибку когда пытаюсь подключить пакет

    internal error -3 in R_decompress1Ошибка: package or namespace load failed for ‘prophet’ in get(method, envir = home):
    lazy-load database ‘/Library/Frameworks/R.framework/Versions/4.0/Resources/library/prophet/R/prophet.rdb’ is corrupt

    В чем проблема? Может подскажите?

    Нравится

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Блог на WordPress.com. Тема: Baskerville 2, автор: Anders Noren.

Вверх ↑

%d такие блоггеры, как: