本篇筆記是利用個人電腦搭建Linux系統(tǒng)(deepin 20.8)的教程,包括系統(tǒng)下載、映像刻錄、啟動盤制作、電腦BIOS設(shè)置、安裝系統(tǒng)、故障解決、驅(qū)動更新、軟件下載、conda配置、R語言和Rstudio-server配置、遠程SSH配置、生信分析環(huán)境搭建等步驟,教你如何自己制作一個實用的linux服務(wù)器。
背景介紹
有一臺10年前的家用臺式電腦(古董級2核CPU、4G
內(nèi)存、500G硬盤),最開始裝的win XP,后來換成了win 7,最近打開使用發(fā)現(xiàn)非??ㄢg,而且垃圾流氓軟件居多,基本沒法用了。

于是想折騰折騰,發(fā)揮一下它的價值,由windows系統(tǒng)轉(zhuǎn)向linux系統(tǒng),把它變成一臺家用服務(wù)器,安裝R語言和Rstudio-server,作為生信分析測試環(huán)境。同時還要保證該電腦正常使用,快過年了,親戚孩子來了后能用這個電腦聽歌、看電影、聊微信、刷B站。

上圖是安裝了Linux系統(tǒng)的電腦資源占用,發(fā)現(xiàn)CPU占用率不到1%,內(nèi)存只占用了不到300MB,啟用超級終端模式之后,電腦系統(tǒng)自身占用資源極低。如果是普通的windows系統(tǒng),開機后系統(tǒng)占用量比這高十幾倍。
重裝linux系統(tǒng)

目前,比較受歡迎的linux系統(tǒng)有centos、ubuntu、deepin等,其中deepin系統(tǒng)是國產(chǎn)的桌面版系統(tǒng),里面基本的功能都有,能夠滿足日常使用。最近已經(jīng)出了23版本,筆者下載了,安裝過程中報錯,可能是硬件拉胯,所以在此選擇deepin 20.8系統(tǒng)。
鏡像下載:
https://cdimage.deepin.com/releases/20.8/deepin-desktop-community-20.8-amd64.iso
蘭州大學(xué)的鏡像站,親測速度更快:
https://mirror.lzu.edu.cn/deepin-releases/
刻錄工具下載:
https://cdimage.deepin.com/applications/deepin-boot-maker/windows/deepin-boot-maker.exe
在windows電腦上下載以上文件,然后準備一個16GB以上U盤,通過刻錄工具將鏡像燒錄到u盤(之后如果需要恢復(fù)正常使用,只需要格式化u盤即可),此時已經(jīng)制作好啟動盤。

BIOS設(shè)置
關(guān)閉secure boot,不同機器進入BIOS的方法不一樣,我這個是開機按F2,具體方法自行百度。

安裝系統(tǒng)
插入之前制作好的u盤作為啟動盤,然后再電腦開機的時候快速猛按F12(不同電腦進入啟動項的方法不同)

然后通過上下箭頭選擇你的U盤,回車后等待一會兒,出現(xiàn)安裝界面,選擇第一項。

硬盤分區(qū)這里如果是全盤安裝,將會清空所有內(nèi)容,然后安裝deepin系統(tǒng),如果需要安裝雙系統(tǒng),則根據(jù)需要修改掛載位置。

調(diào)整根分區(qū)大小,這里設(shè)置的空間大小相當于windos下的c盤(系統(tǒng)盤)內(nèi)存空間,可以根據(jù)需要修改。

勾選右下角使用集成閉源驅(qū)動

等待安裝完成,大約耗時幾分鐘左右

重啟后拔掉U盤,然后進入系統(tǒng),此時已經(jīng)安裝完畢

故障解決
安裝好后重啟進入桌面,發(fā)現(xiàn)屏幕分辨率不正常,而且無法調(diào)整,檢查發(fā)現(xiàn)顯卡驅(qū)動存在問題(這是由于nvidia顯卡的官方驅(qū)動不開源,所以deepin自己做了個冒牌驅(qū)動,導(dǎo)致顯卡無法正常工作,如果是集成顯卡則沒有該問題),因此首先嘗試重裝顯卡驅(qū)動程序。

- 下載顯卡驅(qū)動
進入NVIDIA官網(wǎng),找到驅(qū)動下載頁面,根據(jù)自己的顯卡型號下載穩(wěn)定生產(chǎn)版Linux驅(qū)動,下載后是一個run格式的文件。
https://www.nvidia.cn/Download/index.aspx


- 停用自帶驅(qū)動程序

由于系統(tǒng)自帶nouveau驅(qū)動程序,因此需要先將其禁用,然后加入黑名單。
sudo dedit /etc/modprobe.d/blacklist.conf
進入編輯器后將以下內(nèi)存輸入并保存
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
然后使用以下命令更新linux內(nèi)核(驅(qū)動程序在內(nèi)核中重建)
sudo update-initramfs -u
卸載原來的NVIDIA驅(qū)動程序
sudo apt-get remove --purge nvidia*

- 關(guān)閉圖形界面服務(wù)
暫時關(guān)閉X服務(wù)(GUI圖形界面),這一步會黑屏請看完再操作。
首先按住鍵盤上的CTRL+ALT+F2,進入超級終端模式,需要輸入賬戶和密碼進入命令行界面。

使用下面的命令關(guān)閉圖形界面(因為顯卡驅(qū)動必須在關(guān)閉顯示界面的條件下安裝)
sudo service lightdm stop
- 重裝顯卡驅(qū)動
首先,對下載的顯卡驅(qū)動更改權(quán)限,賦予可執(zhí)行功能。
sudo chmod +x ./*.run
然后,運行該驅(qū)動程序
sudo sh ./*.run

稍等一會兒后出現(xiàn)安裝界面,選擇Accept

下面這個步驟的意思是將驅(qū)動程序以模塊形式安裝進DKMS,選擇NO

出現(xiàn)這個界面表示正在安裝,等待幾分鐘


安裝到最后出現(xiàn)報錯,無法安裝成功,我重新試過三四次,不管怎么樣都有報錯,可能是這個顯卡本身太老了(GTX240,14年前的古董)

使用
reboot命令重啟電腦,然后發(fā)現(xiàn)NVIDIA的驅(qū)動程序打開出現(xiàn)錯誤,屏幕分辨率仍然有問題,顯卡驅(qū)動不正常。
- 殺手锏
經(jīng)過好幾次的嘗試,都沒辦法正常安裝顯卡驅(qū)動,迫不得已之下,打開主機箱物理卸載顯卡,拔掉顯卡后將顯示排線連接到主機后面的核顯輸出端口 。

重啟后問題解決,界面恢復(fù)正常,因為核顯無需額外的驅(qū)動程序,所以分辨率、畫面亮度等功能也能進行更改,使用起來已經(jīng)沒有太大問題了。

到此,系統(tǒng)安裝完成!電腦可以像普通電腦一樣下載軟件、瀏覽網(wǎng)頁、看電視、聽音樂,常用的軟件比如微信、QQ、愛奇藝、網(wǎng)易云、WPS、騰訊會議等都有Linux版本,使用起來和普通家用windows電腦沒什么大差別,而且垃圾軟件個廣告更少。

基本環(huán)境配置
權(quán)限管理
剛開始安裝系統(tǒng)時輸入的賬戶為管理員權(quán)限,使用該管理員帳號登錄,然后進入賬戶,設(shè)置root密碼,因為deepin系統(tǒng)初始沒有提供root賬戶,所以需要設(shè)置激活后使用。
sudo passwd root
輸入上述代碼后先輸入當前管理員的密碼,然后設(shè)置root密碼并重復(fù)一次,即可完成。
su root

輸入上述代碼并根據(jù)提示輸入密碼,即可進入root賬戶,此時命令行提示符號為“#”
如果想增加賬號,先使用useradd添加,然后使用passwd設(shè)置該賬戶的密碼即可。

軟件安裝
- 桌面軟件商店

可以使用系統(tǒng)自帶的軟件商店安裝,這個方法最簡單快捷,同時兼容性最好,官方推薦普通用戶使用該方法安裝軟件。
- apt軟件包倉庫
sudo apt install xxx

- conda倉庫
conda search python #搜索
conda install xxx #安裝

啟動SSH服務(wù)
由于deepin系統(tǒng)初始狀態(tài)下,SSH服務(wù)是關(guān)閉狀態(tài),因此無法直接使用SSH遠程連接。
- Linux服務(wù)器端
sudo apt-get update #更新
sudo apt-get install openssh-server #安裝ssh服務(wù)
sudo ps -e |grep ssh #查看是否存在ssh進程
netstat -an|head -5 #查看端口信息

sudo /etc/init.d/ssh start #啟動ssh服務(wù)
sudo systemctl enable ssh #設(shè)置開機自動啟動ssh服務(wù)
使用sudo /etc/init.d/ssh status命令可以查看當前SSH服務(wù)的開啟狀態(tài),顯示如下為正常情況。

- 個人PC電腦端
按照ssh登錄軟件,常見的putty、finalshell、xshell都可以,這里推薦兩款,一個是mobaxterm,界面相對豐富,功能也不錯【點擊這里即可下載使用】另一個是termius,支持多設(shè)備、文件管理和代碼自動補齊功能,筆者覺得這兩款都比較好用。

進入軟件后輸入主機IP、用戶名、密碼,即可遠程登錄上服務(wù)器,也可以直接用電腦的power shell輸入以下命令登錄。
ssh user@192.168.1.1 -p 22
搭建生信分析環(huán)境
miniconda
Miniconda是conda的精簡版安裝程序。 它是Anaconda的小型引導(dǎo)程序版本,僅包含conda,python,它們依賴的軟件包以及少量其他有用的軟件包。通俗來說就是一個軟件的大倉庫,里面有各種軟件。
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
進入上方網(wǎng)址,下載Linux版的安裝包

按照如下步驟進行安裝
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py38_4.8.3-Linux-x86_64.sh --no-check-certificate
#下載
bash Miniconda3-py38_4.8.3-Linux-x86_64.sh
#安裝
conda -V
#重啟后驗證是否安裝成功
(base) user@PC:~$ conda -V
conda 22.11.1
R語言
方法一:采用默認的包管理器安裝,此安裝版本默認為3.6,操作簡單,如需最新版本無法通過該方式安裝。
sudo apt-get install r-base

方法二:采用conda安裝,之前已經(jīng)配置好conda,如果沒有安裝需要先裝conda,再裝R,這個方法能夠按照最新版4.2.0版本。
conda install r-base -y

安裝后輸入一個R,檢查是否安裝成功,如果成功后輸入which R查看軟件路徑,這個路徑復(fù)制保存,之后有用。
(base) user@PC:~$ R
R version 3.6.1 (2019-07-05) -- "Action of the Toes"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-conda_cos6-linux-gnu (64-bit)
R是自由軟件,不帶任何擔保。
在某些條件下你可以將其自由散布。
用'license()'或'licence()'來看散布的詳細條件。
R是個合作計劃,有許多人為之做出了貢獻.
用'contributors()'來看合作者的詳細情況
用'citation()'會告訴你如何在出版物中正確地引用R或R程序包。
用'demo()'來看一些示范程序,用'help()'來閱讀在線幫助文件,或
用'help.start()'通過HTML瀏覽器來看幫助文件。
用'q()'退出R.
> q()
Save workspace image? [y/n/c]: n
(base) user@PC:~$ which R
/home/user/miniconda3/bin/R
Rstudio-server
需要系統(tǒng)管理員帳號密碼和root賬戶密碼,用于安裝Rstudio-server,必須以root賬戶安裝,以下操作均在管理員狀態(tài)下進行。

下載官網(wǎng):
https://posit.co/download
- 1.下載軟件
sudo apt-get install gdebi-core
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-2022.12.0-353-amd64.deb
- 安裝軟件
sudo gdebi rstudio-server-2022.12.0-353-amd64.deb
- 設(shè)置參數(shù)
初次啟動Rstudio時提示連接錯誤,原因是沒有指定R的軟件路徑,之前用which R命令得到的目錄保存到Rstudio的配置文件中,重啟即可解決。
以下兩個文件是Rstudio的配置文件:
/etc/rstudio/rserver.conf
/etc/rstudio/rsession.conf
touch /etc/rstudio/rserver.conf
touch /etc/rstudio/rsession.conf
修改端口
默認的端口是8787,如果我們想改成其他端口,可以在/etc/rstudio/rserver.conf 文件中添加并修改參數(shù):
vim /etc/rstudio/rserver.conf
www-port=80
#這里我們是將端口改成80
修改完畢之后要驗證參數(shù)有效性,并重啟rstudio-server
rstudio-server test-config
rstudio-server restart
設(shè)置R版本
默認情況下,RStudio server 運行時使用的R是系統(tǒng)PATH中指定的R,這個位置可以使用which R確定,如果我們的系統(tǒng)上有多個版本的R,那么可以使用rsession-which-r參數(shù)指定RStudio 使用哪個版本的R。
rsession-which-r=/usr/local/bin/R
設(shè)置用戶限制
在/etc/rstudio/rserver.conf文件中添加auth-required-user-group參數(shù),可以指定訪問rstudio 的用戶:
auth-required-user-group=rstudio_users
創(chuàng)建組,將dave 用戶添加到該組:
groupadd rstudio_users
usermod -g rstudio_users -G rstudio_users dave
在/etc/rstudio/rserver.conf 文件中指定用戶組,只有屬于改組的用戶才可以使用rstudio。
auth-required-user-group=rstudio_users
當然也可以添加一些其他的資源限制,比如總內(nèi)存,stack size 和進程數(shù)等:
rsession-memory-limit-mb=4000
rsession-stack-limit-mb=10
rsession-process-limit=100
- rsession.conf配置
默認情況下,當用戶2個小時沒有執(zhí)行命令,RStudio 會終止用戶的R session,并將這些信息寫入磁盤,從而減少資源的消耗,當用戶下次使用時,session被還原。
可以通過session-timeout-minutes 參數(shù)指定session 過期的時間
session-timeout-minutes=30#會話超時時間
limit-file-upload-size-mb 參數(shù),其可以限制最大的上傳大小
limit-file-upload-size-mb=100
指定默認的CRAN repository 服務(wù)地址
r-cran-repos=https://mirrors.nwafu.edu.cn/cran/
以上修改都需要重啟服務(wù)才能生效
用任意設(shè)備瀏覽器訪問主機本地IP的8787端口即可,網(wǎng)頁版的Rstudio自帶保存功能,并且支持多用戶登錄同時使用。
使用的時候,只需要在同一局域網(wǎng)下!

- Rstudio運行狀態(tài)查看
rstudio-server status

- Rstudio服務(wù)開啟、停止、重啟
rstudio-server start

(base) user@PC:~$ rstudio-server status
● rstudio-server.service - RStudio Server
Loaded: loaded (/lib/systemd/system/rstudio-server.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-01-04 16:18:56 CST; 35s ago
Process: 16882 ExecStart=/usr/lib/rstudio-server/bin/rserver (code=exited, status=0/SUCCESS)
Main PID: 16883 (rserver)
Tasks: 4 (limit: 4447)
Memory: 1.8M
CGroup: /system.slice/rstudio-server.service
└─16883 /usr/lib/rstudio-server/bin/rserver
使用體驗
這個系統(tǒng)實際用起來還是很方便的,普通用戶也能很快上手,個人感覺操作界面有點像windows和Macos的結(jié)合版。

在設(shè)置中能夠看到系統(tǒng)的介紹信息,菜單的邏輯關(guān)系比較強,操作起來和手機菜單差不多。

自帶的終端很好用,響應(yīng)速度也比較快,能夠滿足大部分應(yīng)用。

如果開啟圖形化窗口界面,普通情況下占用大概2GB內(nèi)存,通過系統(tǒng)管理器可以看出大部分應(yīng)用進程占用資源較多。

綜上所述,deepin操作系統(tǒng)作為國產(chǎn)之光,用起來還是很棒的!deepin和Linux的關(guān)系有點像最近幾年鴻蒙和安卓的關(guān)系,外界對此還是存在各種觀點,筆者認為只要好用、穩(wěn)定就夠了,不用在意具體如何實現(xiàn)。
未來有一天,假如受到國外制裁,所有的windows系統(tǒng)都封禁了,我們還能使用deepin這樣的系統(tǒng)做備用替代,那么今日的筆記可能對你有所幫助,多學(xué)一點,有益無害。
本文由mdnice多平臺發(fā)布