R 3.4.1 ошибка пути к личной библиотеке" одиночная свеча": невозможно создать " NA’

Я только что обновился до R (3.4.1 "Single Candle") на моей машине Linux Mint 18.1 Cinnamon, и я попытался установить пакет. R возвратил следующее:

> install.packages('ggplot2')
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages("ggplot2") :
  'lib = "/usr/local/lib/R/site-library"' is not writable
Would you like to use a personal library instead?  (y/n) y
Would you like to create a personal library
NA
to install packages into?  (y/n) y
Error in install.packages("ggplot2") : unable to create ‘NA’

я столкнулся с выводом "lib не записывается" раньше, но обычно он предлагает решение, подобное этому:

Would you like to create a personal library
~/R/x86_64-pc-linux-gnu-library/3.4
to install packages into?  (y/n) y 

есть идеи, почему личная библиотека предлагает NA? Есть ли способ вручную переопределить это?

6 ответов


после 8 июля 2017 это решит все проблемы

sudo apt-get update

Я не знаю, что вызывает эту проблему (я также испытываю ее на Ubuntu 16.04), но вот быстрый обходной путь:

.libPaths(c("/home/your_username/R/x86_64-pc-linux-gnu-library/3.4/", .libPaths()))

конечно, вы можете заменить "/home/your_username/..." для любого другого каталога (который будет хранить вашу личную библиотеку).

это решение делает install.packages() и library() работа. Ждем полного исправления!

EDIT: я должен отметить, что это решение не является постоянным. То есть, это не будет длиться после перезапуска R. Вы можете исправить это, добавив то же самое строка кода, описанная выше для .


глядя на детали в комментарии @Dirk (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=866768) это запланированное поведение, так что пакеты устанавливаются один раз для всех пользователей системы.

решение сделать /usr/local/lib/R/ доступно для записи для всех пользователей, а не для повторного создания старого поведения с личной библиотекой пакетов для каждого отдельного пользователя.

откройте терминал и:

  • перейти к /usr/local/lib/ с cd /usr/local/lib/
  • измените владельца: группа, чтобы все пользователи могли писать в папку. У меня на компьютере есть группа, в которую входят все пользователи, поэтому я использовал ее, но см.https://askubuntu.com/questions/66718/how-to-manage-users-and-groups для помощи в настройке группы, если это необходимо
  • для смены владельца используйте sudo chown owner:group -R R/. owner - это любой пользователь, неважно. group является ключевым; убедитесь, что кто-то хочет использовать R на вашем система является членом этой группы. -R является рекурсивным (т. е. делать это для всех файлов и папок в R/).
  • Если вам нужно изменить разрешения группы, используйте chmod -R 775 R/. Это дает владельцу и группе разрешения на чтение, запись и выполнение, а всем остальным разрешения на чтение и выполнение.

теперь перезапустите R, и вы сможете установить пакеты в это общее местоположение.


мое решение следующее:

в файле /usr/lib/R/etc/Renviron существует конфигурация R.

в строках 43-45 есть:

# edd Jun 2017  Comment-out R_LIBS_USER
#R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/3.4'}
##R_LIBS_USER=${R_LIBS_USER-'~/Library/R/3.4/library'}

у меня есть uncommented R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/3.4'}, перезапустил RStudio, и теперь он работает.

EDIT: глядя на комментарии, это похоже на запланированное поведение. здесь другое решение.


то же самое произошло со мной во время выполнения процедуры установки для некоторых пакетов Bioconductor.

затем я понял, что также могу написать это (или подобное) в командной строке bash:

export R_LIBS_USER=$HOME/R/x86_64-pc-linux-gnu-library/3.4 && R

или

export R_LIBS_USER=$HOME/R/x86_64-pc-linux-gnu-library/3.4 && rstudio

и затем запустить upgrade.packages() (или install.packages() или biocLite()) в р.

таким образом, изменение является временным, и вам не нужно обновлять файлы конфигурации.

это командная оболочка-это бесполезно если впоследствии команды .Renvironor.Rprofile ' устанавливает R_USER_LIBS в другое место во время запуска R (-проверьте свою конфигурацию).

придерживаясь в $HOME/R/x86_64-pc-linux-gnu-library / 3.Х может быть желательным если у вас уже есть много пакетов в этом месте, вы хотите, чтобы они были обновлены/установлены там. У меня есть много пакетов Bioconductor, и я не хочу, чтобы они загружались снова, некоторые из этих пакетов загружают огромные наборы данных "Omics" при использовании. Может раздел, в котором находится /usr/local/lib/R, имеет слишком мало места на диске или находится на медленном диске.


может быть это ошибка в R 3.4.1, и мое решение изменить строку

R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library'} 

на на

R_LIBS_SITE=${R_LIBS_SITE-'~/R/x86_64-pc-linux-gnu-library/3.4.1:/usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library'}