---
disqus: ahb0222
GA : G-VF9ZT413CG
---
# 使用Win10自架RStudio Server(Workbench)
> [color=#40f1ef][name=LHB阿好伯, 2021/10/31][:earth_africa:](https://www.facebook.com/LHB0222/)
###### tags: `R` `Ubuntu`
[TOC]

Rstudio 有一個線上伺服器服務rstudio cloud非常的好用
但最近發現它的資源快被我用完了
剛好最近學習到了[Zerotier](/JUE-4pd2Te-TrHK7s42xtg)這個神器
可以讓我用宿舍的桌機組建自己的Rstudio Server
使用Zerotier可以讓我們其他不在同一網路環境的電腦也可以連上Rstudio Server
而不是用遠端操作的方式連線
其中於流暢度跟解析度差了很多
有興趣的可以參考下面步驟
# 安裝 WSL
首先Rstudio Server 目前只支援 Linux系統
好在Win10後面有支援WSL( Windows 子系統 Linux 版)

:::danger
您必須執行 Windows 10 2004 版和更高版本 (組建19041和更新版本) 或 Windows 11。
:::
安裝上也非常簡單
開啟CMD(命令提示字元)

輸入`wsl --install` 安裝WSL

# 安裝Ubuntu 20
之後可以在微軟的應用商店找到Ubuntu 20的安裝

安裝完成後就會是一個可以執行的軟體

第一次開啟需要先設定使用者帳戶資訊
輸入密碼過程不會顯示就安心地打出想要的密碼

# 安裝Rstudio Server
## R
在指令前加上sudo 就像是電腦的使用系統管理員進行安裝
所以需要輸入密碼
輸入過程不會顯示就安心地打出密碼
```
sudo apt-get install r-base
```

## Rstudio server
```
sudo apt-get update
sudo apt-get install gdebi-core
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-2022.02.3-492-amd64.deb
sudo gdebi rstudio-server-2022.02.3-492-amd64.deb
```
## 啟動
前面安裝完成後我們只需要開啟服務節可享用Rstudio Server
`sudo rstudio-server start`
開啟電腦瀏覽器輸入下方網址
:::success
localhost:8787
:::
連線成功後需要輸入Ubuntu的使用名稱與密碼

盡情地享用

### 問題排除

查看問題
`sudo rstudio-server verify-installation`
:::success
Path to R not specified, and no module binary specified; Invalid R module ()
:::
重新安裝R即可`sudo apt-get install r-base`
#### Zerotier cli command giving error "missing port and zerotier-one.port not found" in ubuntu
問題可能是因為端口9993已被其他服務佔用而導致 ZeroTier One 無法啟動。您可以按照以下步驟來更改 ZeroTier One 的控制界面端口:
創建一個 /var/lib/zerotier-one/local.conf 文件,如果不存在的話,可以使用以下命令:
```bash=
sudo nano /var/lib/zerotier-one/local.conf
```
如果您不使用 nano 文本編輯器,可以替換為您喜歡的編輯器,例如 vim 或 gedit。
在打開的文件中,添加以下內容,將主端口更改為9994(或您希望使用的其他可用端口):
```
{
"settings": {
"primaryPort": 9994
}
}
```
保存文件並退出編輯器。
現在,嘗試重新啟動 ZeroTier One 服務:
`sudo systemctl restart zerotier-one`
這應該允許 ZeroTier One 使用新的端口9994
### Ubuntu套件安裝
安裝tidyverse套件時,由於缺少某些依賴包和系統庫,安裝失敗了。這通常發生在Linux系統上,特別是當系統中沒有安裝R包所需的一些底層庫文件時。以下是解決這個問題的步驟:
安裝系統依賴:根據錯誤信息,首先需要安裝libxml2-dev。這是一個Linux庫,用於處理XML和HTML內容。您可以使用Linux終端命令來安裝它。對於基於Debian的系統(如Ubuntu),請使用以下命令:
```
sudo apt-get install libxml2-dev
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libfontconfig1-dev
```
### Ubuntu安裝 tidyverse
`sudo apt install r-cran-tidyverse`
### 添加使用者
使用Rstudio Server的好處還有像是若有其他人想使用
可以設定新的使用者帳戶
每個人的環境都會是獨立的程式碼也不會被看到
`sudo adduser <user name>`
# Zerotier 內網穿透(虛擬內網)
使用Zerotier可以讓我們其他不在同一網路環境的電腦也可以連上Rstudio Server
有興趣可以參考[用Zerotier內網穿透(虛擬內網)連線樹梅派Node-Red](/JUE-4pd2Te-TrHK7s42xtg)


sudo zerotier-one -d
sudo rstudio-server start
[設定啟動執行](/bjzBi8IISL-OS7yCpsxt0Q)
sudo systemctl enable zerotier-one.service
sudo systemctl enable rstudio-server.service
# 安裝R 4.0.X
安裝必要的依賴性,以便在 HTTPS 上新增儲存庫:
`sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common`
將 CRAN 儲存庫新增到系統來源清單中:
```
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/'
```
sudo apt install r-base
R --version
https://cran.r-project.org/bin/linux/ubuntu/
# 如何存取電腦 C: 磁碟機
本機電腦上的硬碟掛接點會自動建立
並可讓您輕鬆存取 Windows 檔案系統
/mnt/<磁碟機號>/
範例用法是使用 cd /mnt/c 來存取 c:\****
# 如何存取WSL資料
\\wsl$

# 資料控制
```r=
system("sudo -S mkdir /opt/shiny-server/samples/sample-apps/Wind-Rose/ ",
input = rstudioapi::askForPassword("sudo password")) #建立資料夾
system("sudo -S cp ~/Wind-Rose/ui.R /opt/shiny-server/samples/sample-apps/Wind-Rose/",
input = rstudioapi::askForPassword("sudo password")) #複製資料夾
system("sudo -S cp ~/Wind-Rose/ui.R /opt/shiny-server/samples/sample-apps/Wind-Rose/",
input = rstudioapi::askForPassword("sudo password")) #複製資料夾
system("sudo -S cp /home/gtgrthrst/AHB.ttf /usr/share/fonts/",
input = rstudioapi::askForPassword("sudo password")) #複製資料夾
```
> 參考資料
>[Managing RStudio Workbench / RStudio Server](https://support.rstudio.com/hc/en-us/articles/200532327-Managing-the-Server)
>https://docs.microsoft.com/zh-tw/windows/wsl/filesystems
🌟全文可以至下方連結觀看或是補充
全文分享至
https://www.facebook.com/LHB0222/
https://www.instagram.com/ahb0222/
有疑問想討論的都歡迎於下方留言
喜歡的幫我分享給所有的朋友 \o/
有所錯誤歡迎指教
# [:page_with_curl: 全部文章列表](https://hackmd.io/@LHB-0222/AllWritings)
