Rstudio-server的安裝、配置、維護

一、安裝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配置

  1. 解決版本沖突:在R的開發和使用過程中,可能會遇到不同的包或項目對R版本的要求不一致。如果默認的R版本與某個項目所需的版本不匹配,可能會導致包安裝失敗、功能不兼容等問題。通過設置特定版本的R,可以確保所需的項目運行在正確的環境中。
  2. 使用特定功能:某些R版本可能引入了新的特性或者修復了某些bug,因此強制使用特定版本可以讓用戶利用最新的功能或修復過的問題。
  3. 環境一致性:對于數據分析項目和團隊協作,確保所有成員使用同一版本的R能夠大大降低由于環境不一致帶來的問題,從而提高工作效率。

何時會遇到問題

  • 安裝包時版本不兼容:如果一個R包只能在某個版本的R上工作,而你的系統中有一個更新或者舊的R版本,可能導致安裝或加載包失敗。
  • 運行舊代碼時:一些舊項目可能依賴于特定的R版本,這時將在新版本中運行時可能無法正常工作。
  • 團隊項目:在一個團隊中,不同成員使用不同的R版本,可能會導致相同代碼在不同環境下表現不一致。

解釋代碼 rsession-which-r=/home/biomamba/miniconda3/envs/monocle.2.18.0/bin/R

  1. rsession-which-r=:這是RStudio Server的一個配置項,用于指定R會話所使用的R解釋器的路徑。rsession表示R的會話進程。
  2. /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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62942.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62942.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62942.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python序列的應用(八):元組、字典

前言:在Python編程語言中,序列是一種非常重要的數據結構,它允許我們存儲和操作有序的數據集合。在前幾期的內容中,我們已經探討了列表(List)和集合(Set)這兩種序列的應用&#xff0c…

OpenCV 功能函數介紹

一, 二值化函數 功能: 用于對圖像進行二值化處理 參數: cv2.threshold(輸入你的圖像所對應的灰度圖, 閾值:是浮點還是整數取決予圖像的數據類型 最大值;高于閾值的像素值, 閾值類型:cv2.THR…

【Python】使用Selenium的find_element模塊獲取網頁上的大段文字和表格的方法(建議收藏!)

發現了一個使用Selenium的find_element模塊,快速獲取文字和表格的方法,很實在,以后爬網的時候,就不用beautifulSoup 和 pandas的read_html 混起來用了! 文字部分:實現網絡節點下,某個節點下的其…

APP滲透測試記錄(一、Android應用基本構造)

Android應用基本構造 雷電模擬機進入 adb shell# 如果不是root權限 su一下 su 1.了解APK文件 安卓應用的擴展名為.apk(Android Application Package),它是一個包含多個文件和文件夾的數據存檔文件。 1.1 apk文件解壓后的目錄結構 AndroidManifest.xml:包含應用的大部分…

【AI知識】有監督學習之回歸任務(附線性回歸代碼及可視化)

1. 回歸的基本概念 在機器學習的有監督學習中,回歸(Regression)是一種常見的任務,它的目標是通過觀察數據來建立一個模型,用一個或多個自變量來預測因變量的值。 回歸分析通常用于: a.預測,基于…

fastadmin批量壓縮下載遠程視頻文件

后端代碼 // 批量下載并壓縮 public function downloadAll(){$ids input(ids);$row $this->model->where(id, in, $ids)->field(id,title,video_url)->select();if (!$row) {$this->error(記錄不存在);}$arr [];$tempFiles []; // 用來存儲臨時下載的視頻文…

邊緣計算+人工智能:讓設備更聰明的秘密

引言:日常生活中的“智能”設備 你是否發現,身邊的設備正變得越來越“聰明”? 早上醒來時,智能音箱已經根據你的日程播放舒緩音樂;走進廚房,智能冰箱提醒你今天的食材庫存;而在城市道路上&…

JVM 雙親委派模型以及垃圾回收機制

目錄 1. JVM 內存區域劃分 2. JVM 中類加載的過程 1) 類加載的基本流程 2) 雙親委派模型 3. JVM 中垃圾回收機制 1) 找到垃圾 a) 引用計數 b) 可達性分析 2) 釋放垃圾 1. JVM 內存區域劃分 一個運行起來的 Java 進程,其實就是一個 JVM 虛擬機。 而進程是…

ansible自動化運維(四)jinjia2模板

Jinjia2模板 前面說到playbook組成的時候,有介紹到template模塊,而template模塊對模板文件進行渲染時,使用的就是jinja2模板引擎,jinja2本身就是基于python的模板引擎,所以下面先來了解一下jinjia2模板的一些用法 基…

通過k-means對相似度較高的語句進行分類

本文介紹了如何使用K-Means算法對相似度較高的語句進行分類,并附上java案例代碼 import java.util.ArrayList; import java.util.List; import java.util.Random;public class KMeansTextClustering {public static void main(String[] args) {// 初始化語句數據集…

Oracle 19c rac 補丁升級,從19.7 to19.22-集群

1. 補丁包概述 數據庫環境 角色 數據庫 IP地址 數據庫版本 主機名 數據庫名稱 源端 RAC 172.30.21.166/167 19.7 hfcwdb66/hfcwdb67 hfdb 將以下補丁包上傳到/soft下 上傳到兩個節點的soft目錄下:p6880880_190000_Linux-x86-64.zip (更新o…

Windows安裝Jira

下載 Download Jira Data Center | Atlassian https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-10.3.0-x64.exe 以管理員身份安裝,否則彈出以下提醒 創建和配置MySQL數據庫:參照 Connecting Jira applicat…

uniapp - 微信小程序

一、background-image 大圖不顯示的問題 解決方法: 1、使用網絡地址;2、使用 base64 urlTobase64(filePath) {// #ifdef MP-WEIXINlet img ${filePath},imgBase64 wx.getFileSystemManager().readFileSync(img, "base64"),base64Url data:…

DETR: End-to-End Object Detection with Transformers論文學習

論文地址:https://arxiv.org/pdf/2005.12872 代碼地址:https://github.com/facebookresearch/detr 相關學習視頻:https://space.bilibili.com/94779326/lists?sid1531941 標題前言: DETR 是 Facebook 團隊于 2020 年提出的基于…

LeetCode 24反轉鏈表

單鏈表反轉:詳細解析與代碼實現 在數據結構的學習過程中,鏈表是一個非常重要且有趣的部分,而單鏈表的反轉操作更是常考的基礎知識點。今天就來和大家詳細講講如何實現單鏈表的反轉,并通過代碼示例來加深理解呀。 題目 給定單鏈…

Redis學習筆記之——學習計劃

Redis——Remote Dictionary Server,開源、基于內存、速度快、key-value... Redis做為一個高性能的鍵值存儲系統,廣泛應用于緩存、會話存儲、分布式鎖以及其他需要快速訪問的數據場景中。熟悉掌握redis,似乎已成為廣大碼農們必備的一項技能。…

網絡安全教學博客(二):常見網絡安全威脅剖析

在上一篇博客中,我們了解了網絡安全的基礎概念和重要性。今天,讓我們深入探討一下常見的網絡安全威脅,以便我們能夠更好地識別和防范它們。 惡意軟件(Malware) 病毒(Virus):病毒是一…

Vue3狀態管理:Pinia架構設計分析

Vue3狀態管理:Pinia架構設計分析 介紹 在Vue.js開發中,狀態管理是一個非常重要的部分。隨著Vue3的發布,Pinia作為一種新的狀態管理架構也相繼問世。本文將對Pinia架構進行深入分析,幫助讀者了解其設計原理、特點以及在實際項目中的應用。 架構…

【IDEA】啟動報錯

今天啟動IDEA報錯 報錯信息: Cannot connect to already running IDE instance. Exception: Process 5,444 is still running 打開任務管理器,關掉進程ID5444的任務

socket編程UDP-實現停等機制(接收確認、超時重傳)

在下面博客中,我介紹了利用UDP模擬TCP連接、按數據包發送文件的過程,并附上完整源碼。 socket編程UDP-文件傳輸&模擬TCP建立連接脫離連接(進階篇)_udp socket發送-CSDN博客 下面博客實現的是滑動窗口機制: sock…