在linux服務(wù)器上使用R語言及Rstudio server
cat /etc/redhat-release: 查看服務(wù)器系統(tǒng)版本
1. R 程序包獲取
查看最新版本的下載鏈接,使用wget獲取
wget https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/base/R-3/R-3.6.1.tar.gz
2. 解壓:
tar -zvxf R-3.6.1.tar.gz
cd R-3.6.1
3.設(shè)置配置文件
./configure
報錯
checking for rl_callback_read_char in -lreadline... no
configure: error: --with-readline=yes (default) and headers/libs are not available
4. 根據(jù)錯誤提示柿估,安裝其他必要程序
yum search libcurl ## 查看鏡像服務(wù)器有沒有“l(fā)ibcurl”程序蓬戚,有的的話直接用`yum install `命令安裝
yum install libcurl-devel ## 安裝libcurl程序
yum install readline-devel ## 安裝readline程序
yum install bzip2-devel ## 安裝bzip2程序
5.重新配置./configure
./configure --enable-R-shlib --with-readline=yes --with-libpng=yes --with-blas -prefix=usr/home/xxx/
重新配置文件增加了'--enable-R-shlib' 參數(shù)网严,
否則再之后安裝R-studio-server時會出現(xiàn) 找不到"lib.so"文件的錯誤。
–enable-R-shlib表示生成libR.so庫我碟,這個當(dāng)需要進(jìn)行g(shù)cc等編譯的時候很重要
–with-readline=yes表示用于R shell條件下的調(diào)試優(yōu)化翅阵,建議加上
–with-libpng=yes表示可導(dǎo)出png圖片
–with-blas表示優(yōu)化R運(yùn)算并生成libRblas.so庫
–prefix保證最后能完整安裝,否則make install會去安裝到/usr/lib文件夾下赚抡,非root用戶沒有權(quán)限
configure: WARNING: you cannot build info or HTML versions of the R manuals
configure: WARNING: you cannot build PDF versions of the R manuals
configure: WARNING: you cannot build PDF versions of vignettes and help pages
6.安裝
make
make install
安裝成功!
R #在命令行直接輸入“R”即可進(jìn)入R 編輯纠屋。
q() ##退出R編輯
7.安裝R-studio-server
wget https://download2.rstudio.org/server/centos6/x86_64/rstudio-server-rhel-1.2.1335-x86_64.rpm
### 也可以先查看鏡像服務(wù)器有沒有rstudio-server程序涂臣,有的話可用yum install 直接安裝。
yum install rstudio-server-rhel-1.2.1335-x86_64.rpm
8.R-studio-server的一些命令
rstudio-server start ##啟動 rstudio
rstudio-server stop ## 關(guān)閉rstudio
rstudio-server status ## 查看rstudio 運(yùn)行狀態(tài)
運(yùn)行rstudio-server status
出現(xiàn) “Active: active (running) ” 表示rstudio 已啟動
rstudio-server verify-installation ## 查看rstudio 安裝錯誤
rstudio-server restart ##重啟
ifconfig ##查看服務(wù)器ip地址巾遭。
查看運(yùn)行中R進(jìn)程
rstudio-server active-sessions
指定PID肉康,停止運(yùn)行中的R進(jìn)程
rstudio-server suspend-session <pid>
停止所有運(yùn)行中的R進(jìn)程
rstudio-server suspend-all
強(qiáng)制停止運(yùn)行中的R進(jìn)程,優(yōu)先級最高灼舍,立刻執(zhí)行
rstudio-server force-suspend-session <pid>
rstudio-server force-suspend-all
RStudio Server臨時下線吼和,不允許web訪問,并給用戶友好提示
rstudio-server offline
RStudio Server臨時上線
rstudio-server online
8.rstudio-server系統(tǒng)設(shè)置
主要有兩個配置文件骑素,默認(rèn)文件不存在(非必要炫乓,可不做修改)
/etc/rstudio/rserver.conf
/etc/rstudio/rsession.conf
##設(shè)置端口和ip控制:
vi /etc/rstudio/rserver.conf
www-port=8080#監(jiān)聽端口,默認(rèn)是8787,可以不做修改
www-address=127.0.0.0#允許訪問的IP地址献丑,默認(rèn)0.0.0.0
##設(shè)置完成記得重啟服務(wù)器末捣,生效
rstudio-server restart
##會話配置管理
vi /etc/rstudio/rsession.conf
session-timeout-minutes=30#會話超時時間
r-cran-repos=http://ftp.ctex.org/mirrors/CRAN #CRAN資源庫
rsession-which-r=/usr/local/bin/R ## 如果非root安裝,更改R所在目錄创橄。
9.通過瀏覽器連接Rstudio-server
直接打開瀏覽器箩做,輸入http://<服務(wù)器ip>:8787 ## 如果修改過rserver.conf文件,后面的8787端口改為相應(yīng)的端口即可妥畏。
這里需要我們輸入用戶名和密碼邦邦。關(guān)于用戶名有2點注意事項:
(1).不允許使用system 用戶登陸安吁,即用戶ids小于100的用戶。只能用普通用戶登錄
(2).用戶的認(rèn)證可以使用RSA燃辖。
如果沒有普通用戶鬼店,可以添加:
useradd newname # 添加一個名為newname的用戶
passwd newname ###給新用戶newname 設(shè)置密碼,密碼需是復(fù)雜密碼黔龟,否則可能通不過妇智。
usermod -G happy newname ####將新用戶newname添加到happy 用戶組中,
在用useradd添加用戶之后氏身,在默認(rèn)的情況下巍棱,該賬號是暫時被封鎖的, 也就是說观谦,該賬號是無法登錄拉盾,須要用passwd命令來給新創(chuàng)建的用戶設(shè)置密碼之后才可以使用。
10可能存在的問題
10.1如果你的rstudio-server沒有啟動 很大程度是安裝有誤豁状,這里我將我遇到的錯誤分享出來
rstudio-server verify-installation
#報錯
There *is* a libR.so in /usr/lib/R/lib, but (weirdly) ls -l reveals that
it dates from the my previous install of R-3.5.1 for which I *did not*
configure with --enable-R-shlib.
這里就提到無法找到libR.so文件,原因是配置R語言文件時倒得,沒有加參數(shù)--enable-R-shlib.
這就必須要重新安裝R語言泻红。使用make uninstall
刪除之前的安裝,最好也刪除R-3.6.1所在的文件夾霞掺,用“rm -r -f R-3.6.1".
使用rm 命令 -r 參數(shù)表示全部刪除谊路, -f 參數(shù)表示強(qiáng)制刪除,不會提醒菩彬。 同時使用這兩個參數(shù)要小心缠劝。
10.2 普通用戶無法啟動rstudio-server
sudo rstudio-server start## 以管理員方式執(zhí)行命令
這時會需要輸入密碼并提示
xxx is not in the sudoers file.This incident will be reported.
如果不想出現(xiàn)上面的提示,就是給該用戶提高權(quán)限骗灶,添加用戶使用sudo的權(quán)利惨恭。
su root ###切換到root用戶,如果有root權(quán)限的話耙旦。
chmod u+w /etc/sudoers ###添加sudo文件的寫權(quán)限
vi /etc/sudoers ###編輯sudoers文件脱羡,添加權(quán)限。
找到這行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (這里的xxx是你的用戶名)
###ps:這里說下你可以sudoers添加下面四行中任意一條
youuser ALL=(ALL) ALL
%youuser ALL=(ALL) ALL
youuser ALL=(ALL) NOPASSWD: ALL
%youuser ALL=(ALL) NOPASSWD: ALL
##第一行:允許用戶youuser執(zhí)行sudo命令(需要輸入密碼).
##第二行:允許用戶組youuser里面的用戶執(zhí)行sudo命令(需要輸入密碼).
##第三行:允許用戶youuser執(zhí)行sudo命令,并且在執(zhí)行的時候不輸入密碼.
##第四行:允許用戶組youuser里面的用戶執(zhí)行sudo命令,并且在執(zhí)行的時候不輸入密碼.
chmod u-w /etc/sudoers ##撤銷sudoers文件寫權(quán)限
### 限制普通用戶可以使用sudo命令了
11. R中的一些有幫助解決安裝問題的命令
R.home() ## 查看R的安裝目錄
R.Version()[13] ## 查看R版本
Sys.getenv("R_HOME")
.Library ##查看lib位置
.libPaths() ##查看lib位置