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

R 3.4.1 Ошибка "Личные библиотеки" "Единственная свеча" Ошибка: невозможно создать "NA

Я только что обновился до R (3.4.1 "Single Candle" ) на моей машине 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 not writeable", но обычно он предлагает такое решение, как этот:

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? Есть ли способ вручную переопределить это?

4b9b3361

Ответ 1

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

sudo apt-get update

Ответ 2

Я не знаю, что вызывает эту проблему (я тоже испытываю это на 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. Вы можете исправить это, добавив ту же строку кода, описанную выше, в файл /home/your_username/.Rprofile.

Ответ 3

Глядя на подробности в комментарии @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, и вы сможете установить пакеты в эту общую папку.

Ответ 4

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

В файле /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'}

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

РЕДАКТИРОВАТЬ: Глядя на комментарии, это похоже на запланированное поведение. Здесь - это еще одно решение.

Ответ 5

Может быть, это ошибка 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'} 

в /etc/R/Renviron файле в

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'}

Ответ 6

То же самое произошло со мной при запуске процедуры установки некоторых пакетов 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()) внутри R.

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

Эта команда оболочки бесполезна, если впоследствии команда в .Renviron or.Rprofile` устанавливает R_USER_LIBS в другое место во время запуска R (-check your configuration).

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