R&RStudio安装/升级
在升级R之前,首先创建临时文件,保存以前的R包
> tmp = installed.packages()
> installedpkgs = as.vector(tmp[is.na(tmp[,"Priority"]), 1])
> save(installedpkgs, file="installed_old.rda")
然后升级R
#R的更新/安装
#参考链接:https://cran.r-project.org/
sudo yum install R
sudo yum update R
yum list R-\*
which R
#/usr/bin/R
R --version
# R version 3.4.1 (2017-06-30) -- "Single Candle"
# ......
#RStudio Server下载与安装
#RStudio Server下载地址:https://www.rstudio.com/products/rstudio/download-server/
wget https://download2.rstudio.org/rstudio-server-rhel-1.0.153-x86_64.rpm
sudo yum install --nogpgcheck rstudio-server-rhel-1.0.153-x86_64.rpm
更新R包
#从CRAN中重新安装R包
tmp = installed.packages()
installedpkgs.new = as.vector(tmp[is.na(tmp[,"Priority"]), 1])
missing = setdiff(installedpkgs, installedpkgs.new)
install.packages(missing)
update.packages(ask=FALSE, checkBuilt=TRUE)
#从BioConductor中重新载入
# 卸载Biocondutor
remove.packages("BiocInstaller", lib=.libPaths())
# 确认Biocondutor被卸载后,重新安装
## 显示CRAN镜像的列表,就近原则
chooseCRANmirror()
## 由于使用 bioconductor 的biocLite()安装程序包时,可能速度很慢,所以可以先使用chooseBioCmirror()选择中国镜像,用于提高安装速度
# 查看哪些R包已经过时
biocValid()
load("installed_old.rda")
tmp = installed.packages()
installedpkgs.new = as.vector(tmp[is.na(tmp[,"Priority"]), 1])
missing = setdiff(installedpkgs, installedpkgs.new)
for (i in 1:length(missing)) biocLite(missing[i])
rserver配置文件
ls /etc/rstudio/
#server.conf rsession.conf
vim /etc/rstudio/rserver.conf
# 添加下面三行
www-port=8787 #指定端口号,<其他值也可>
www-address=<server-ip> #指定服务器的ip
rsession-which-r=/usr/bin/R #指定R版本,如果我们的系统上有多个版本的R,那么可以使用rsession-which-r参数指定RStudio 使用哪个版本的R。
#此时,即可通过http://localhost:8787/即可在浏览器中访问RStudio
RStudio Server使用
#以下操作需root权限
rstudio-server restart #重启
rstudio-server start #启用
rstudio-server stop #停止
rstudio-server offline #服务下线;
rstudio-server online #服务上线
#管理RStudio-server进程:
#查看运行中的R进程:
rstudio-server active-sessions
#指定PID, 停止运行中的R进程:
rstudio-server suspend-session 6666
#停止所有运行中的R进程:
rstudio-server suspend-all
#强制停止运行中的R进程,此操作优先级最高,立刻执行:
rstudio-server force-suspend-session <pid>
rstudio-server force-suspend-all
问题
当登陆网页版的RStudio,显示error : unable to connect to service
或者rstudio initialization error: unable to connect to service
,
#首先尝试重启服务,
sudo rstudio-server restart
#initctl: Unknown instance:
#但是若重启发现报错信息,则可以执行下面三步:
#注意:解决问题之前首先按上面介绍的步骤安装好R&RStudio Server
#1) check the process that used 8787
sudo fuser 8787/tcp
#2) with the -k option to kill all process.
sudo fuser -k 8787/tcp
#3) Start RStudio Server
sudo rstudio-server start
参考链接:initctl: Unknown instance
更新R包可用的快捷途径
#R升级之后的R包的升级(无比烦躁,我为什么要更新R!!!)
#将以前的包移动到指定的R包安装目录
cp -r R/3.4/* /home/users/R/R_packages
#最后更新
update.packages(ask=FALSE, checkBuilt=TRUE)
#查看R包的安装目录
> .libPaths()
[1] "/home/users/R/R_packages" "/usr/lib64/R/library"
[3] "/usr/share/R/library"
#查看指定R包安装的路径
> system.file(package = "stringr")
[1] "/usr/lib64/R/library/stringr"
#查看已安装的R包
> installed.packages()
#快速判断某个包是否安装:
> "stringr" %in% installed.packages()[, 1]
R 会根据 R_LIBS
和 R_LIBS_USER
这两个环境变量来查找, 默认是在 R 的安装路径下和/usr
的对应目录下, 可以在 R 里面输入 .libPaths()
来确认当前的 R 包查找路径, 具体方法如下
- 在自己 HOME 下的 .Renviron 文件 (
touch .Renviron
) 里增加R_LIBS_USER
变量, 如:R_LIBS_USER="/public/home/users/R/R_packages"
若需加多个路径,操作同 bash 里一样用:
分隔
推荐使用该方法 - 更改自己的 .bashrc, 增加
R_LIBS
变量, 如:export R_LIBS="/public/home/users/R/R_libs"
- 在 R 里用
.libPaths("path/to/your/lib")
来增加路径
当在CRAN 上找不到的包时,只有一个zip或者tarball的形式。用以下命令安装: R CMD INSTALL --library=/path/to/my/R/lib foo_0.76.tar.gz
如果写脚本投集群上跑, 那么传环境变量就比较麻烦, 出于方便, 可以在脚本里加载包的命令中增加参数指定路径, 如: library("package_name", lib.loc = "path/to/your/lib")
安装指定版本的R package install.packages("https://cran.r-project.org/src/contrib/Archive/foo/foo_0.19.0.tar.gz",repos=NULL)
用途:使用文件或文件结构识别进程
用法: fuser(选项)(参数)
选项:
-a:显示命令行中指定的所有文件;
-k:杀死访问指定文件的所有进程;
-i:杀死进程前需要用户进行确认;
-l:列出所有已知信号名;
-m:指定一个被加载的文件系统或一个被加载的块设备;
-n:选择不同的名称空间;
-u:在每个进程后显示所属的用户名。
#每个进程号后面都跟随一个字母,该字母指示进程如何使用文件。
c:指示进程的工作目录。
e:指示该文件为进程的可执行文件(即进程由该文件拉起)。
f:指示该文件被进程打开,默认情况下f字符不显示。
F:指示该文件被进程打开进行写入,默认情况下F字符不显示。
r:指示该目录为进程的根目录。
m:指示进程使用该文件进行内存映射,抑或该文件为共享库文件,被进程映射进内存。
参数:文件名或者TCP、UDP端口号。
ref link: