Путь установки не доступен для записи R, не удается обновить пакеты

Я пытаюсь установить Bioconductor в R, используя код на своем веб-сайте. Когда я ввожу код (см. Ниже), я получаю сообщение об ошибке, в котором говорится, что некоторые пакеты не могут быть обновлены, путь установки является неприемлемым.

> ## try http:// if https:// URLs are not supported
> source("https://bioconductor.org/biocLite.R")
Bioconductor version 3.4 (BiocInstaller 1.24.0), ?biocLite for help
> biocLite()
BioC_mirror: https://bioconductor.org
Using Bioconductor 3.4 (BiocInstaller 1.24.0), R 3.3.2 (2016-10-31).
installation path not writeable, unable to update packages: Matrix, mgcv,

выживаемости

Я могу установить этот пакет, перейдя в пакеты/установочные пакеты.

> utils:::menuInstallPkgs()
trying URL    'https://www.stats.bris.ac.uk/R/bin/windows/contrib/3.3/Matrix_1.2-8.zip'
Content type 'application/zip' length 2775038 bytes (2.6 MB)
downloaded 2.6 MB

trying URL 'https://www.stats.bris.ac.uk/R/bin/windows/contrib/3.3/mgcv_1.8-  16.zip'
Content type 'application/zip' length 2346257 bytes (2.2 MB)
downloaded 2.2 MB

trying URL     'https://www.stats.bris.ac.uk/R/bin/windows/contrib/3.3/survival_2.40-1.zip'
Content type 'application/zip' length 5109948 bytes (4.9 MB)
downloaded 4.9 MB

package ‘Matrix’ successfully unpacked and MD5 sums checked
package ‘mgcv’ successfully unpacked and MD5 sums checked
package ‘survival’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\stxeb8\AppData\Local\Temp\Rtmp2tQZ4v\downloaded_packages

Затем я могу перейти к пакетам/загрузкам и загрузить их успешно и выполнить поиск и посмотреть, что пакеты там.

> local({pkg <- select.list(sort(.packages(all.available =   TRUE)),graphics=TRUE)
+ if(nchar(pkg)) library(pkg, character.only=TRUE)})
Loading required package: nlme
This is mgcv 1.8-16. For overview type 'help("mgcv-package")'.
> local({pkg <- select.list(sort(.packages(all.available = TRUE)),graphics=TRUE)
+ if(nchar(pkg)) library(pkg, character.only=TRUE)})
> local({pkg <- select.list(sort(.packages(all.available = TRUE)),graphics=TRUE)
+ if(nchar(pkg)) library(pkg, character.only=TRUE)})
> local({pkg <- select.list(sort(.packages(all.available =     TRUE)),graphics=TRUE)
+ if(nchar(pkg)) library(pkg, character.only=TRUE)})
> search()
[1] ".GlobalEnv"            "package:survival"      "package:mgcv"         
[4] "package:nlme"          "package:Matrix"        "package:BiocInstaller"
[7] "package:stats"         "package:graphics"      "package:grDevices"    
[10] "package:utils"         "package:datasets"      "package:methods"      
[13] "Autoloads"             "package:base"         

Но затем, когда я иду на установку биокондуктора, он дает мне такое же сообщение об ошибке, что Matrix, mgcv и выживание не могут быть обновлены.

> ## try http:// if https:// URLs are not supported
> source("https://bioconductor.org/biocLite.R")
Bioconductor version 3.4 (BiocInstaller 1.24.0), ?biocLite for help
> biocLite()
BioC_mirror: https://bioconductor.org
Using Bioconductor 3.4 (BiocInstaller 1.24.0), R 3.3.2 (2016-10-31).
installation path not writeable, unable to update packages: Matrix, mgcv,
  survival

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

Ответ 1

Это был вопрос разрешения для меня. Сначала я определил, где были установлены пакеты, используя installed.packages()[, c("Package", "LibPath")]. Это выводит длинную матрицу из 2 столбцов с именами и местоположениями пакетов. Тогда вы увидите, где находятся оскорбительные пакеты. В моем случае они были в /usr/lib/R/site-library и /usr/lib/R/library. Затем я изменил права доступа к этим папкам с помощью chmod (я использовал chmod -R 777 в основной папке R, это мой персональный компьютер, так что безопасность здесь не является большой проблемой, я думаю).

Ответ 2

Как ответил Мартин Морган, пакеты Bioconductor должны были быть установлены, несмотря на сообщения об ошибках. Однако это продолжает происходить при будущих обновлениях пакетов.

В общем, я бы посоветовал не изменять разрешение системных папок, так как такие программы, как R, должны хорошо работать без административных прав.

Если вы избегаете изменения разрешений системных папок, я бы также советовал не устанавливать пакеты , используя административные права, поскольку вам придется делать это в будущем каждый раз, когда вам придется обновлять эти пакеты!

Лучший способ решить эту проблему - переустановить ранее установленные пакеты с правами администратора. Пакеты можно определить по коду ошибки, выданному Bioconductor. В вашем случае это пакеты Matrix, mgcv, survival - обратите внимание, что сообщение об ошибке не различается между пакетами CRAN и Bioconductor, оно включает в себя все пакеты, которые ранее были установлены с правами администратора!

Чтобы удалить сообщенные пакеты, откройте R с правами администратора (надеюсь, в последний раз) и используйте remove.packages() для удаления всех сообщенных пакетов, включая пакеты Bioconductor. Для вашего случая:

remove.packages(c("Matrix", "mgcv", "survival"))

Перед переустановкой этих пакетов выйдите и перезапустите R без прав администратора. Теперь вы можете переустановить пакеты CRAN.

install.packages(c("Matrix", "mgcv", "survival"))

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

Если установка не удалась, найдите свой локальный каталог R (в папке home/user) и добавьте его как lib =. В Linux команда может выглядеть так:

install.packages(c("Matrix", "mgcv", "survival"), lib = "~/R/x86_64-pc-linux-gnu-library/3.5")

Если пакеты Bioconductor ранее были установлены с правами администратора:

library(BiocInstaller)
biocLite(c("PACKAGE1", "PACKAGE2"))

Снова добавьте аргумент lib = в комманду biocLite(), если в противном случае его невозможно установить в локальном каталоге.

Ответ 3

Похоже, что несколько "рекомендуемых" пакетов устанавливаются в двух местах - возможно, учетной записью администратора в каталоге, к которому у вас нет доступа на запись, а затем RStudio в каталоге, где у вас есть доступ на запись. biocLite() жалуется на первое.

Если biocLite() не жалуется на пакет Bioconductor, который не может быть установлен (отличается от того, который не может быть обновлен), нет проблем, и базовые пакеты Bioconductor были успешно установлены. Проверьте https://support.bioconductor.org для будущей поддержки, связанной с Bioconductor.

Ответ 4

Одним из решений является открытие терминала и загрузка R с использованием прав администратора

sudo R
update.packages()
source("https://bioconductor.org/biocLite.R")
biocLite()

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

В этом случае вместо загрузки R в качестве root (который решает проблему до следующего обновления), проверьте .libPaths(). У вас будет список каталогов.

.libPaths()
"/home/it_s_me/R/x86_64-pc-linux-gnu-library/3.4" "/usr/lib/R/library"

В моем случае все пакеты в "/usr/lib/R/library" принадлежат root, и все, кроме одного, принадлежат обычным пользователям (не root) в "/home/itsame/R/x86_64- ПК-Linux-гну-библиотека/3,4".

Если у вас есть права администратора, простым решением может быть запуск во всех местах: например, у меня возникли проблемы с обновлением пакета curl. Я использовал:

sudo chown -R it_s_me /home/it_s_me/R/x86_64-pc-linux-gnu-library/3.4/curl/

Ответ 5

Если вы используете R/Rstudio в Windows, просто откройте R/Rstudio от имени администратора. Щелкните правой кнопкой мыши значок, затем запустите от имени администратора.

Ответ 6

Поскольку в версии R 3.6.1 сценарий http://bioconductor.org/biocLite.R возвращает это сообщение "Ошибка: для версии R 3.5 или выше установите пакеты Bioconductor с помощью BiocManager; см. https://bioconductor.org/install ". Я решил проблему с помощью следующих шагов:

  1. Получить список каталогов, используемых R для установки библиотек и выберите тот, у которого есть права на запись, используя: .libPaths()
  2. Установка библиотеки "BiocManager" с помощью: install.packages("BiocManager")
  3. Установка библиотеки "Биокондуктор" путем форсирования каталога с разрешениями на запись, используя: BiocManager::install("Rgraphviz", lib = "C:/Users/tizbet/Documents/R/win-library/3.6")

Я работал над следующей установкой R:

platform x86_64-w64-mingw32, arch x86_64, os mingw32, system x86_64, mingw32, version.string R version 3.6.1 (2019-07-05)

Я был вдохновлен ответом Каспера Тиструпа Карстенсена

Ответ 8

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

  1. Запустите R от имени администратора: sudo R
  2. В консоли R выполните это: update.packages()

Вкратце, некоторые последние пакеты требуются, и обновление в режиме администратора решает эту проблему. '