前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >112-R工具指南21-使用conda帮你在服务器&linux上装R包

112-R工具指南21-使用conda帮你在服务器&linux上装R包

作者头像
北野茶缸子
发布2022-04-05 15:33:26
2.2K0
发布2022-04-05 15:33:26
举报
文章被收录于专栏:北野茶缸子的专栏

前言

最近忽然发现linux 上装R 包让人叫苦不迭,各种蜜汁依赖或路径原因的报错,比如单单一个rhdf5 和它的朋友们,就让我头疼欲裂:

代码语言:javascript
复制
external_filters.c: In function '_H5Pset_blosc':
external_filters.c:33:81: error: expected ')' before numeric constant
   33 |     herr = H5Pset_filter(plist_id, H5Z_FILTER_BLOSC, H5Z_FLAG_OPTIONAL, (size_t)7, cd_values);
      |                                                                                 ^
      |                                                                                 )
make[1]: *** [/home/yzpeng/miniconda3/envs/R4.0/lib/R/etc/Makeconf:174: external_filters.o] Error 1
make[1]: Leaving directory '/tmp/RtmpUvWrmj/R.INSTALL1503e12aa2877e/rhdf5/src'
ERROR: compilation failed for package ‘rhdf5’

开始我也比较天真,寻求网友们的帮助:installation error on linux: Makevars:18: *** missing separator. Stop. · Issue #11 · grimbough/rhdf5filters (github.com)[1]

Install error · Issue #5 · grimbough/rhdf5filters (github.com)[2]

后来忽然想到,conda 是一个天然会帮助我们解决依赖的工具。

通过conda安装

我创建一个conda 环境,用这个环境来安装R 和我需要的R 包不就好了吗?

比如直接搜到了这个R 包的conda 安装方法:Bioconductor Rhdf5 :: Anaconda.org[3]

代码语言:javascript
复制
conda create -n R4.1.2 -y r-base # 安装R环境
conda activate R4.1.2
# 在激活的环境下安装
conda install -c bioconda bioconductor-rhdf5
conda install -c bioconda/label/gcc7 bioconductor-rhdf5
# 这个成功了
conda install -c bioconda/label/broken bioconductor-rhdf5
conda install -c bioconda/label/cf201901 bioconductor-rhdf5

安装非常顺利啊:

代码语言:javascript
复制
Downloading and Extracting Packages
r-rcpp-1.0.7         | 2.0 MB    | ################################################# | 100% 
r-rcppgsl-0.3.9      | 385 KB    | ################################################# | 100% 
r-rcppziggurat-0.1.6 | 458 KB    | ################################################# | 100% 
ca-certificates-2021 | 139 KB    | ################################################# | 100% 
openssl-1.1.1k       | 2.1 MB    | ################################################# | 100% 

接下来就是直接在环境中的R调用它们了。

Rserver的诡计

比如免费版的Rserver,只能使用管理员配置的R。这也就意味着,你没法自由地驰骋在你的R环境里,包括安装R 包等等。你唯一可以做的,就是抛弃可视化的IDE,回到原始的R terminal 的拥抱。

谁想抱你哇!

而怎么切换呢?那你就只能付费server 了。

所以,这里一个解决方案就是通过vscode 连接服务器使用R,只不过稍微折腾一些。

你terminal 里用的是什么,它就用的是什么。服务器配置 vs code,得提上日程了。

参考资料

[1]

installation error on linux: Makevars:18: *** missing separator. Stop. · Issue #11 · grimbough/rhdf5filters (github.com): https://github.com/grimbough/rhdf5filters/issues/11

[2]

Install error · Issue #5 · grimbough/rhdf5filters (github.com): https://github.com/grimbough/rhdf5filters/issues/5

[3]

Bioconductor Rhdf5 :: Anaconda.org: https://anaconda.org/bioconda/bioconductor-rhdf5

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 北野茶缸子 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 通过conda安装
  • Rserver的诡计
    • 参考资料
    相关产品与服务
    云服务器
    云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档