Repository navigation
Bioconductor 西湖大学镜像无法下载安装 R 包 #180
shenweiyan
announced in
1.3-软件
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Bioconductor 为高通量基因组数据的分析和可视化提供开源工具。Bioconductor 多数软件包采用 R 统计编程语言开发。Bioconductor 每年释出两个版本,并有活跃的用户社区。
版本说明
由于 Bioconductor 的 rsync 上游会自行删除非最新的版本,大部分镜像站仅提供 Bioconductor 的当前最新版本和开发版本,只有少量镜像站点会保留过时的版本。目前已知西湖大学镜像站提供了历史版本的镜像。
详细讨论参见 tuna/issues#1969。
问题
先看一下问题,在 R 里面直接配置配置西湖大学的 bioconductor 镜像站,执行
BiocManager::install包安装提示 "cannot open URL"。总所周知,当 R 通过 HTTP 传输文件时(例如使用
install.packages或download.file函数),下载方式的选择取决于download.file.method选项,其选项值包括了"internal","wininet"(Windows only),"libcurl","wget"以及"curl",如果没有显式指定选项,则默认使用 R 内部的 HTTP 实现,即method = "auto"。在 R 中验证
libcurl支持,也发现不支持 http2,而且download.file时候提示 'SSL connect error'。但是,用
wget测试却是正常的!使用
wget下载具体的包也是正常的。事情到这里,基本可以肯定是默认的
libcurl有问题,至于具体是什么问题,折腾了好久都没排查个所以然来,虽然在 《R 语言 download.file 的几点知识》也讨论过 R 通过download.file下载数据和软件包默认方法的问题,但对libcurl一直都了解的太少。使用 wget 方法
既然
wget可以正常下载西湖大学镜像的具体包,说明网络和镜像本身没问题。我们可以通过配置 R 的下载方法,让 BiocManager 调用wget而非默认的libcurl/internal方法。这样子配置完后,就可以让 R 使用
wget作为下载工具去下载西湖大学镜像的具体包了。使用 curl 方法
这个方法其实在《R 语言 download.file 的几点知识》也提到过,具体就是 —— 使用
curl方法时,通常需要加上-L参数。这时候 R 会自动调用系统的curl命令在后台执行对应包的下载。使用这个方法的前提是,对应的 R 包能正常通过curl命令进行下载。$ curl -L -S https://mirrors.westlake.edu.cn/bioconductor/packages/3.18/bioc/src/contrib/ChAMP_2.32.0.tar.gz -o ChAMP_2.32.0.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 8134k 100 8134k 0 0 948k 0 0:00:08 0:00:08 --:--:-- 1833k配置
download.file.method使用curl方法:参考资料
All reactions