一、安裝Rstudio-server
(1)安裝R語言:
sudo apt install r-base # 如果沒有管理員權限無法操作
# 這樣裝上R默認在/usr/bin/R
其實基本上的流程都可以參考posit的官網(也就是Rstudio的官網):
https://posit.co/download/rstudio-server/
(2)安裝Rstudio-sever:
#安裝編譯器:
sudo apt-get install gdebi-core # 如果沒有管理員權限無法操作
# 下載安裝包:
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-2021.09.0-351-amd64.deb
# 安裝Rstudio-server:
sudo gdebi rstudio-server-2021.09.0-351-amd64.deb # 如果沒有管理員權限無法操作
可以看得出來其實就是參考Rstudio的官網教程,只是這里的demo示例的包的版本不一致
二、配置Rstudio-server
(1)配置訪問端口:
# 修改配置文件:
echo 'www-port=你的端口號' >> /etc/rstudio/rserver.conf# 具體的端口號可以問你的管理員# 重啟rstudio使配置生效
sudo rstudio-server restart# 查看Rstudio-server運行狀態:
sudo rstudio-server statussudo echo 'www-port=8787' >> /etc/rstudio/rserver.conf
sudo rstudio-server restart
sudo rstudio-server status#端口沒開放或者是打開有問題的再開一次:
sudo iptables -I INPUT -p tcp --dport 8787 -j ACCEPT
這里確實是比較新的:
可以參考我之前的博客:
https://blog.csdn.net/weixin_62528784/article/details/142887445?spm=1001.2014.3001.5502
我是因為之前用慣了8787端口的默認服務器,所以才默認設置并且認為8787端口用于Rstudio-server,所以才在博客中開放了8787端口
雖然沒有文件,但是我的rstudi-server一直開著
還是設置一下:
總之有問題的就再開一次8787端口
(2)修改默認R
很多情況下用戶為了解決版本沖突會直接啟用新的R環境。
你可以這樣安裝指定版本的R:
# 下載:
wget https://cran.r-project.org/src/base/R-4/R-4.2.0.tar.gz
# 其他版本可以在這里找:https://cran.r-project.org/src/base# 解壓:
tar -zxvf R-4.2.0.tar.gz
#切換工作目錄:
cd R-4.2.0/
# 配置:
./configure --with-pcre1
#編譯:
make
這里指的應該是系統級的R設置的修改,所以才對接新版本的R
或者用conda安裝對應本本的R也是極好的:
conda install r-base==4.2.0
which R
# 那么你的R就在:/home/biomamba/miniconda3/bin/R
其實我一般是這么操作的:
mamba search r-base
#找到對應版本之后再安裝
# 用vim修改配置文件,同樣是上面修改端口的配置文件
sudo vim /etc/rstudio/rserver.conf
#rsession-which-r=/usr/local/bin/R #這里是默認的R
# 例如我這里有一個conda環境中的R,這里指的是你在裝其他工具而新建的環境中所配置的這個環境所需的R版本,如果你想要使用這個環境中安裝時候的R作為默認
rsession-which-r=/home/biomamba/miniconda3/envs/monocle.2.18.0/bin/R# 重啟生效:
sudo rstudio-server restart
不想用Vim編輯器也可以這么操作:其實和打開文件輸入是一致的
# 修改配置文件:
echo 'rsession-which-r=/home/biomamba/anaconda3/bin/R' >> /etc/rstudio/rserver.conf
# 重啟生效:
sudo rstudio-server restart
為什么要修改默認的R配置
- 解決版本沖突:在R的開發和使用過程中,可能會遇到不同的包或項目對R版本的要求不一致。如果默認的R版本與某個項目所需的版本不匹配,可能會導致包安裝失敗、功能不兼容等問題。通過設置特定版本的R,可以確保所需的項目運行在正確的環境中。
- 使用特定功能:某些R版本可能引入了新的特性或者修復了某些bug,因此強制使用特定版本可以讓用戶利用最新的功能或修復過的問題。
- 環境一致性:對于數據分析項目和團隊協作,確保所有成員使用同一版本的R能夠大大降低由于環境不一致帶來的問題,從而提高工作效率。
何時會遇到問題
- 安裝包時版本不兼容:如果一個R包只能在某個版本的R上工作,而你的系統中有一個更新或者舊的R版本,可能導致安裝或加載包失敗。
- 運行舊代碼時:一些舊項目可能依賴于特定的R版本,這時將在新版本中運行時可能無法正常工作。
- 團隊項目:在一個團隊中,不同成員使用不同的R版本,可能會導致相同代碼在不同環境下表現不一致。
解釋代碼 rsession-which-r=/home/biomamba/miniconda3/envs/monocle.2.18.0/bin/R
rsession-which-r=
:這是RStudio Server的一個配置項,用于指定R會話所使用的R解釋器的路徑。rsession
表示R的會話進程。/home/biomamba/miniconda3/envs/monocle.2.18.0/bin/R
:/home/biomamba/
:這是當前用戶(biomamba)的主目錄。miniconda3/
:表示Miniconda的安裝目錄(一個小型、輕量級的Python和R包管理工具)。envs/
:這是Conda環境目錄,所有由Conda管理的虛擬環境都存放在這個文件夾下。monocle.2.18.0/
:這是一個名為monocle.2.18.0
的Conda環境,通常用于處理生物信息學的數據。bin/R
:這是該環境中R解釋器的具體路徑。
總結
通過指定R會話使用的確切R版本,就能確保RStudio能加載正確的庫和功能,從而避免由于不同R版本導致的錯誤和不兼容問題。修改配置文件的操作是相對簡單的,但對確保工作環境一致性和功能完整性至關重要。
三、為Rstudio-server創建新登錄用戶
Linux中的Rstudio-server無法像Windows那樣用一個用戶就可以開啟
多個Rstudio,實際使用中Rstudio-server的一個用戶只能使用一個Rstudio窗口,若需要同時開啟多個Rstudio窗口,可啟用子賬號:
用戶管理可參考:http://mp.weixin.qq.com/s?__biz=MzAwMzIzOTk5OQ==&mid=2247496892&idx=1&sn=960dbca843a51a73c1b331abee5c127d&chksm=9b3c8decac4b04fa3fb1fec375e6c6950f277f6c128c9decf5c38a689086ef798f519cd10acd&scene=21#wechat_redirect
# 創建一個新用戶,并且指定其目錄:
useradd -d /home/新用戶名 -m 新用戶名
# 然后設置密碼:
passwd 需要修改密碼的用戶名
# 新建的用戶未指定shell。我們只需將其指定為/bin/bash重新登錄即可。否則該用戶命令行只有一個$
usermod -s /bin/bash 新用戶名#比如我現在隨便舉個例子:sudo名字倒過來名字
useradd -d /home/zht -m zht
passwd zht(sudozhtthz)
可以看到我已經登入了新賬號了:
至于這個賬號的內容,可以看到:
sudo也進不去,需要號主本人su zht進入(即必須得知道密碼)
注意:親測想要使用多個Rstudio-server窗口,最好不要在同一個瀏覽器上開多個窗口,最好在多個瀏覽器上開,因為在同一個瀏覽器上開會導致窗口崩壞
博客中提到的一些其他的問題:
# 卸載Rstudio:
sudo apt-get remove rstudio-server -y
# 下載最新版Rstudip并重新安裝:
wget https://download2.rstudio.org/server/focal/amd64/rstudio-server-2023.09.0-463-amd64.deb
sudo gdebi rstudio-server-2023.09.0-463-amd64.deb# 好在配置文件無需重新寫入,安裝后的Rstudio-server與原先一樣
#重啟:
sudo rstudio-server restart
# 查看是否正常運行:
sudo rstudio-server status
# 終止當前shiny運行
sudo systemctl stop shiny-server
# 卸載:
sudo apt-get remove shiny-server
# 下載并重新安裝:
wget https://download3.rstudio.org/ubuntu-18.04/x86_64/shiny-server-1.5.20.1002-amd64.deb
sudo gdebi shiny-server-1.5.20.1002-amd64.deb
# 在R中重新安裝shiny包:
remove.packages("shiny")
install.packages('shiny')
# 重新啟動shiny:
sudo systemctl restart shiny-server
參考:
https://mp.weixin.qq.com/s/5AuKS7ZbqXkq3mtoOAqbqQ