![](/img/trans.png)
[英]Package ‘stringr’ was installed before R 4.0.0: please re-install it BiocManager Installation path not writeable, unable to update packages
[英]installation path not writable R, unable to update packages
我正在嘗試使用他們網站上的代碼將 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"
但是當我去安裝 bioconductor 時,它給了我同樣的錯誤信息,即 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
我該怎么做才能更新這些軟件包以便安裝 bioconductor?
一般來說,我建議不要更改系統文件夾中的權限,因為 R 應該在沒有額外管理權限的情況下工作。
因此,我同樣建議不要使用管理權限安裝軟件包,因為您以后每次必須更新這些軟件包時都需要這樣做!
要回溯此問題並防止在以后的更新中將其最小化,您應該執行以下步驟:
.libPaths()
找到安裝所有 R 包的文件夾。 這應該提供兩個結果,一個目標在您的主文件夾和一個系統文件夾。“/home/USER/R/x86_64-pc-linux-gnu-library/XX” “/usr/lib/R/library”
install.packages(c("PKG1", "PKG2", "PKG3"))
或BiocManager::install(c("PKG1", "PKG2", "PKG3"))
*remove.packages(c("PKG1", "PKG2", "PKG3"), lib = "/usr/lib/R/library")
。 *如果安裝路徑有問題,請將參數, lib = "/home/USER/R/x86_64-pc-linux-gnu-library/XX"
添加到步驟 3 中的任一安裝函數中。此參數明確說明安裝在您的主文件夾中。
這種方法有一個問題,至少在 Arch Linux 上的官方 R 存儲庫中:每當 R 更新時,更新的版本仍然包含系統文件夾中的包,沒有管理權限就無法更新。 因此,對於每個 R 更新,必須重復此過程。 我特別看你survival
!!!
*編輯:重要的是要注意biocLite不再是安裝 BioConductor 軟件包的推薦工具。 您應該改用BiocManager ,它位於官方 CRAN 存儲庫( install.packages("BiocManager")
)中。
**第二次編輯:由於這個答案仍然收到投票,我已經更新並清理了答案。
這對我來說是一個許可問題。 首先,我使用installed.packages()[, c("Package", "LibPath")]
確定了軟件包的安裝位置。 這會輸出一個包含包名稱和位置的長 2 列矩陣。 然后你會看到有問題的包在哪里。 就我而言,它們位於/usr/lib/R/site-library
和/usr/lib/R/library
。 然后我通過chmod
更改了這些文件夾的權限(我在主 R 文件夾上使用了chmod -R 777
,這是我的個人計算機,所以我認為這里的安全性不是一個大問題)。
如果您在 Windows 上運行 R/Rstudio,則只需以管理員身份打開 R/Rstudio。 右鍵單擊該圖標,然后以管理員身份運行
看起來有幾個“推薦”的軟件包安裝在兩個地方——可能是管理員帳戶安裝在您沒有寫入權限的目錄中,然后是 RStudio 安裝在您有寫入權限的目錄中。 biocLite()
抱怨前者。
除非biocLite()
抱怨無法安裝 Bioconductor 包(與無法更新不同),否則沒有問題,基本 Bioconductor 包已成功安裝。 查看https://support.bioconductor.org以獲取未來與 Bioconductor 相關的支持。
一種解決方案是使用管理員權限打開終端並加載 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所有,除一個以外的所有軟件包都歸“/home/itsame/R/x86_64-pc-linux”中的普通用戶(不是root)所有-gnu 庫/3.4"。
如果您有管理員權限,一個簡單的解決方案可能是在所有地方運行 chown:例如,我在更新 curl 包時遇到了麻煩。 我用了:
sudo chown -R it_s_me /home/it_s_me/R/x86_64-pc-linux-gnu-library/3.4/curl/
我在使用其他 Bioconductor 軟件包時遇到了類似的問題,解決方案比我想象的要簡單。 我必須安裝一些在我的日志中指出的操作系統包: libcurl-dev
、 libcurl4-openssl-dev
、 libssl-dev
。
我的建議是檢查您的 R 日志並查找“配置失敗,因為未找到 [PACKAGE]。嘗試安裝”。
由於使用 R 3.6.1 版本,腳本http://bioconductor.org/biocLite.R返回此消息“錯誤:使用 R 版本 3.5 或更高版本,請使用 BiocManager 安裝 Bioconductor 包;請參閱https://bioconductor.org/ install " 我通過以下步驟解決了這個問題:
.libPaths()
install.packages("BiocManager")
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)
我受到 Kasper Thystrup Karstensen 答案的啟發
嘗試添加參數force = TRUE
:
BiocManager::install("XX", force = TRUE )
每當您想處理需要安裝軟件包的 R 代碼時:-
我遇到了同樣的問題,答案是給Root的Root Access ,即以管理員身份運行R或Rstudio。
檢查這個問題: 安裝目錄不可寫,無法更新軟件包'boot','class','KernSmooth','mgcv','nnet','rpart','spatial'
解決此問題的正確方法如下:
sudo R
update.packages()
總結是,需要一些最新的軟件包,並在管理模式下更新這些軟件包可以解決此問題 `
Ubuntu:
sudo apt install libcurl-dev
軟呢帽:
sudo dnf install libcurl-devel
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.