Linux环境下R和R包安装及其管理
安装R
法一:使用系统命令安装R
ubuntu或者centos的Linux发行版本软件源中包含R包,只需一条命令就可以安装,只不过这种方式可能不是最新版本,例如centos 7软件源中的版本为R 3.6,不过这种方式非常方便。
#ubuntu
apt update
apt install -y r-base
#centos 7 or 8
yum install -y R.x86_64 --skip-broken
法二:源码编译安装R
1 安装依赖
如果想更好的控制R版本,可以自行编译R软件,其实编译也不难,只需要将一些依赖安装好,就很容易编译,否则安装过程中就一直出错。
# 安装配置必要的依赖库
yum install -y --skip-broken zlib java gcc-gfortran gcc gcc-c++ readline-devel libXt-devel bzi zlib-devel java-1.8.0-openjdk-*
# 安装配置必要图片库
yum install -y libpng-devel libjpeg-devel libtiff-devel libcairo-devel cairo-devel
2 自行编译安装
编译最重要一步就是检查配置,运行configure,会提示缺少依赖,只需要将相应的依赖安装成功即可。
#下载
curl -O https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/base/R-4/R-4.1.2.tar.gz
tar -zxvf R-4.1.2.tar.gz
cd R-4.1.2
#检测配置R
./configure --enable-R-shlib --with-pcre1
# 问题1:R语言依赖gcc、glibc-headers、gcc-c++、gcc-gfortran,因此需要部署
yum -y install gcc
yum install glibc-headers
yum install gcc-c++
yum install gcc-gfortran
# 问题2:R语言安装依赖openjdk
yum install java-1.8.0-openjdk-*
#编译
make -j4
#安装
make install
安装Rstudio-server
Rstudio是R的集成开发环境,非常的好用,在服务器端安装Rstudio-server之后就可以通过浏览器访问R,非常的方便。
下载最新版Rstudio-server
https://www.rstudio.com/products/rstudio/download-server/
curl -O https://download2.rstudio.org/server/centos7/x86_64/rstudio-server-rhel-2021.09.1-372-x86_64.rpm
sudo yum install rstudio-server-rhel-2021.09.1-372-x86_64.rpm
开启8787端口
CentOS7 系统采用新的防火墙策略,因此,安装完成Rstudio之后,还不能通过浏览器访问,需要进行防火墙设置才行,ubuntu系统可以直接访问,下面的设置非常重要。
systemctl enable rstudio-server.service
systemctl start rstudio-server.service
systemctl status rstudio-server
firewalld
firewall-cmd --permanent --add-port=8787/tcp
firewall-cmd --permanent --add-port=8787/udp
firewall-cmd --reload
# 如果是iptables
iptables -I INPUT -p tcp --dport 8787 -j ACCEPT
iptables -save > /etc/sysconfig/iptables # 永久保存
iptables -L -n # 查看端口运行情况
# 编辑rstudio-server配置文件
vi /etc/rstudio/rserver.conf # 加入如下配置
# Server Configuration File
www-port=8787
rsession-which-r=/usr/local/bin/R
vi /etc/rstudio/rsession.conf # 加入如下配置
# R Session Configuration File
session-timeout-minutes=0
安装R包
下安装R包一般有2种方式:
1. R CMD INSTALL
下载源码
R CMD INSTALL /.../mypackage.tar.gz
也可指定安装库路径:
R CMD INSTALL /.../mypackage.tar.gz --library=/your/lib/path
更多参数--help一下
- install.packages
which R查看下路径,是否是刚才自己安装的R。敲R,或全路径进入R
install.packages('mypackage'),这种方式针对CRAN包。
以上针对的是CRAN中的包,如果是 bioconductor包呢?
先装BiocManager,再安装所需R包即可。
install.packages("BiocManager") #如已安装,后续安装不再需要
BiocManager::install("clusterProfiler")
# 设置镜像源
# Bioconductor设置为清华的镜像
options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
# Bioconductor设置为中科大的镜像
# options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/")
# CRAN设置成清华大学的镜像
options(repos = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
最新版BiocManager整合了install.packages,可统一用BiocManager::install命令安装
添加环境变量:
export PATH=/your/R/bin:$PATH
export LD_LIBRARY_PATH=/your/complie_tools/xz/bin:/your/R/lib64/R/lib:$LD_LIBRARY_PATH #这些都是一些依赖库
添加R库路径到环境变量:
export R_LIBS=/your/R_packages
export R_LIBS=/others/.../R/lib64/R/library #添加环境变量R的lib路径,可以使用别人安装的包
R中用.libPaths()函数查看lib路径,如果有多个lib,install.packages()默认是安装在第一个目录下。如果一开始就没指定R包安装路径并配置环境变量,则默认安装在/your/R/lib64/R/library中。
2.其他操作
.libPaths() #查看包的安装目录
library() #查看已经安装的包目录
library(package) #载入mypackage包
getOption("defaultPackages") #查看启动R时自动载入的包。
help(package = 'mypackage') #查看‘mypackage’的帮助
args(function):查看函数的参数
example(function):自动运行该函数帮助文档中的例子,很赞!
demo("package"):展示包中demo
vignette('mypackage'):有的包特别是bioconductor的包有vignette
openVignette('mypackage'):这个函数也可以查看vignette,更好用一些
RSiteSearch("helpinfor"):搜索R网站上的“helpinfor”相关信息
help.start():查看已经安装包的详细HTML文档,这个命令非常爽。
search():查看当前载入的包
sessionInfo():查看R中载入的包
methods():查看某个S3泛型函数中所有的方法或者一个类中所有的方法(S3:S version 3)
showMethods(class = "myClass"):查看S4类的方法
findMethods("myMethods"):查看method的代码
class(myObject):查看某个对象的类
getClass(“class/package”):查看某个class或者包的具体内容
getSlots("class"):查看某个class的slot
slotNames(MyObject):查看某个对象的slot。
可以使用Myobject@slotNames访问对象的slot值,这个@设计实在是太爽了,可以连续用。
ls("package:mypackage"):查看"mypackage"中的所有对象。