Библиотека не доступна для записи

У меня есть эта проблема во время установки пакета в R версии 3.0.2 (2013-09-25) на машине с Ubuntu:

install.packages("randomForest")
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages :
  'lib = "/usr/local/lib/R/site-library"' is not writable

Как это решить?

15 ответов

Для версии R 3.2.2 (2015-08-14) эту проблему следует решать, поскольку R предлагает в процессе установки другой путь для хранения библиотек R. Установка выглядит следующим образом: (здесь "random" используется в качестве примера пакета)

install.packages('random')

Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages("random") :
'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
~/R/pc-linux-gnu-library/3.2
to install packages into?  (y/n) y

Поэтому во время установки, отвечая на оба вопроса с помощью "y", следует правильно установить пакет.

Изменение разрешения

Если вы не хотите хранить ваши пакеты R в дополнительном файле, вот быстрая пошаговая инструкция о том, как изменить разрешение папки "/usr/local/lib/R/site-library". Откройте свой терминал и введите:

Осторожно Возможный недостаток - могут быть причины, по которым эта папка недоступна для записи, поэтому ее следует хранить таким образом.

$ cd /usr/local/lib/R
$ sudo chmod o+w site-library
$ ls -l

Напечатанная строка должна выглядеть так:

drwxrwsrwx 2 root staff 0000 Mar 31 00:00 site-library

install.packages('random')

Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages("random") :
'lib = "/usr/local/lib/R/site-library"' is not writable

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

Добавить себя в группу под названием "персонал"

sudo usermod -a -G staff your_user_name

замените your_user_name на ваше имя пользователя для входа, затем выйдите из системы и перезапустите.

НЕ используйте chmod 777, который является нарушением безопасности и кстати. полный бессмысленный!!!

Проблема в том, что место установки по умолчанию - это место, где у вас нет прав на запись.

Решение состоит в том, чтобы использовать место установки, где у вас есть права на запись.

В частности, я бы предложил использовать следующие команды для создания папки личной библиотеки в месте, которое не требует специальных разрешений и которое будет автоматически обнаружено при следующем запуске R:

dir.create(Sys.getenv("R_LIBS_USER"), recursive = TRUE)  # create personal library
.libPaths(Sys.getenv("R_LIBS_USER"))  # add to the path

install.packages("randomForest")  # install like always
library(randomForest)  # use library like always

Призыв к dir.create следует предложению в этом FAQ, чтобы создать папку с именем в соответствии с Sys.getenv("R_LIBS_USER"), Это хороший выбор, так как он будет найден при следующем запуске R, так что вы сможете использовать install.packages а также library без указания особых мест. .libPaths вызов функции позволяет избежать перезапуска R, сразу добавив новую папку в путь к библиотеке. Первые две строки нужны только в том случае, если у вас еще нет созданной личной библиотеки, но при ее повторном запуске нет вреда. После этого установка пакетов и использование библиотек может быть выполнено как обычно.

Для кого-то, кто использовал install.packages()с несколькими пакетами

install.packages("vcd","vcdExtra","plyr")

и получил то же предупреждение:

Warning in install.packages :
  'lib = "vcdExtra"' is not writable
Would you like to use a personal library instead? (yes/No/cancel) cancel
Error in install.packages : unable to install packages

Установка каждого отдельно работала у меня

install.packages("vcd")
install.packages("vcdExtra")

Это означает именно то, что он говорит. У вас нет разрешения на запись в эту папку. Либо вам нужно изменить разрешения для этой папки, либо изменить местоположение библиотеки R.

Если вы используете ОС Windows 10, то, возможно, защита от вымогателей включена. Вы должны отключить это.

Я столкнулся с той же проблемой. У меня был доступ, чтобы написать. но вдруг это прекратилось. Я не мог установить пакеты. Отключение защиты от вымогателей сработало у меня.

The "XX" is not writableошибка также может означать, что указанный вами путь к библиотеке не существует.

Я изо всех сил пытался воспроизвести книгу Кварто.в Ubuntu 22.04, поскольку пакеттребуется R-4.2 вместо R-4.1 (по умолчанию). После удаления R-4.1 и установки R-4.2 я получил эту ошибку, которой раньше не было в версии 4.1:. Я подозревал, что были удалены настройки локальной пользовательской библиотеки.

Мое решение было случайным. я открылчтобы узнать, возникла ли у меня та же проблема с установкой пакетов, что и в терминале; Я успешно установил один пакет. Итак, я вернулся к своему терминалу и теперь больше не получаю эту ошибку.

Я не могу точно объяснить, как RStudio это исправила, но предполагаю, что при запуске она автоматически устанавливает локальную пользовательскую библиотеку.

Может попробовать sudo chmod +777 #nameoflib У меня работает

Использоватьsudoв код Rscript. У меня такая же ошибка исправлена ​​с помощьюsudo Rscript filename.R

Ошибка

      $ Rscript babynames.R 
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages("babynames") :
  'lib = "/usr/local/lib/R/site-library"' is not writable
Error in install.packages("babynames") : unable to install packages
Execution halted

Исправить

      $ sudo Rscript babynames.R 
[sudo] password for abhay: 
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
also installing the dependencies ‘cli’, ‘glue’, ‘utf8’, ‘fansi’, ‘lifecycle’, ‘magrittr’, ‘pillar’, ‘pkgconfig’, ‘rlang’, ‘vctrs’, ‘tibble’

Я заметил, что если rstudio находится в песочнице, он выдает предупреждение «недоступно для записи».

Вы можете изменить разрешение на "сайт-библиотека" и все включенные каталоги.

sudo chmod 777 -R / usr / local / lib / R / site-library

Если вы используете R с RStudio, а не запускаете RStudio с иконкой в ​​трее, запустите Rstudio или R из командной строки, используя sudo rstudio или же sudo R,

Это точно решит вашу проблему, у меня работает. Это требует sudo привилегия писать что-то в директории установки.

Другие вопросы по тегам