Почему я должен вручную создавать каталог "~/R/%p-library/%v" при каждом обновлении R?

Каждый раз R обновлен, я должен переустановить пакеты, которые я использую (из источников, поэтому они должны быть перекомпилированы для новой версии). Это правильное, понятное поведение, поэтому я призываю install.packages - и получаю ошибку, потому что каталог, доступный для записи пользователем "~/R/%p-library/%v" еще не существует, и все остальные каталоги в .libPaths() находятся под /usr/ и не доступны для записи пользователем. Это поведение задокументировано на ссылочных страницах.

Итак, после получения ошибки установки я должен сделать это:

> dir.create(Sys.getenv("R_LIBS_USER"))
> .libPaths(Sys.getenv("R_LIBS_USER"))
> install.packages(c("igraph","entropy",...))

Мой вопрос: как люди решают эту проблему?

Создать каталог вручную после каждого обновления? (но разве это не утомительно?)

Добавить dir.create позвонить .Rprofile? ( видимо нет)

РЕДАКТИРОВАТЬ: Кажется, я помню, когда я начал использовать R этот каталог библиотеки появился без моего действия; но я могу ошибаться...

1 ответ

Решение

Одна вещь, которую вы можете попробовать, это указать R_LIBS в .REnviron файл в вашем $HOME$ каталог, например, я нахожусь на Windows на работе, поэтому первая строка в моем .REnviron это что-то вроде R_LIBS="C:\Some\path\library",

Затем, когда вы придете к обновлению с изменения основной версии, вы можете просто использовать:

update.packages( lib.loc = .libPaths()[1] , checkBuilt = TRUE )

Чтобы узнать ваш $HOME$ использование каталога:

Sys.getenv("HOME")
Другие вопросы по тегам