遇到的问题
在部署shiny app时遇到报错:
Unable to determine package source for Bioconductor package XXX (通过Bioc下的) : Repository must be specified
解决方法
官方附上的原因是因为你的repos
中没有Bionconductor:
- (可能不是必要的)
将你的R包和Bioc包都更新到最新版本。
- 更新R可以使用
installr
包中的updateR()
函数 - 更新Bioc包可以看看别人的教程,我之前尝试的命令行太多了,忘记到底是哪个起的作用,不介意的话可以自己试一下。
BiocManager::repositories(version="3.13")
(3.13版本严格对应R 4.1.1版本)
devtools::install_github("Bioconductor/BiocManager", ref="ghost-binary-repo")
devtools::install_github("Bioconductor/BiocManager")
install.packages("BiocManager")
-
(必要) 将Bioc添加到repos中
输入getOption("repos")
,输出的信息应该只有CRAN库。
输入setRepositories()
后,再输入2
,将Bioc库添加到repos中。(不知道输入别的数字行不行,我没有尝试过)
-
如果没什么问题的话,经过步骤2应该就能成功部署了,但是我在部署时又遇到了新的报错,如下:
搜了一下后,输入Sys.setenv(R_INSTALL_STAGED = FALSE)
解决。可能还会出现你的某个包版本不是最新的报错(我没截图,这里就不附上报错信息了),将包卸载后重新安装即可。
参考
官方教程
期间还查阅了非常多谷歌讨论组、github issue以及其他网站上的问答,但是由于数量过多、时间较为久远且没有最终解决问题,就不附上链接了。