生信分析笔记

V1

2023/01/04阅读:32主题:山吹

Deepin操作系统丨一台10年前的家用联想台式机重装国产Linux系统,制作成生信服务器

本篇笔记是利用个人电脑搭建Linux系统(deepin 20.8)的教程,包括系统下载、映像刻录、启动盘制作、电脑BIOS设置、安装系统、故障解决、驱动更新、软件下载、conda配置、R语言和Rstudio-server配置、远程SSH配置、生信分析环境搭建等步骤,教你如何自己制作一个实用的linux服务器

背景介绍

有一台10年前的家用台式电脑(古董级2核CPU、4G 内存、500G硬盘),最开始装的win XP,后来换成了win 7,最近打开使用发现非常卡钝,而且垃圾流氓软件居多,基本没法用了。

于是想折腾折腾,发挥一下它的价值,由windows系统转向linux系统,把它变成一台家用服务器,安装R语言和Rstudio-server,作为生信分析测试环境。同时还要保证该电脑正常使用,快过年了,亲戚孩子来了后能用这个电脑听歌、看电影、聊微信、刷B站。

上图是安装了Linux系统的电脑资源占用,发现CPU占用率不到1%,内存只占用了不到300MB,启用超级终端模式之后,电脑系统自身占用资源极低。如果是普通的windows系统,开机后系统占用量比这高十几倍。

重装linux系统

目前,比较受欢迎的linux系统有centos、ubuntu、deepin等,其中deepin系统是国产的桌面版系统,里面基本的功能都有,能够满足日常使用。最近已经出了23版本,笔者下载了,安装过程中报错,可能是硬件拉胯,所以在此选择deepin 20.8系统。

镜像下载:
https://cdimage.deepin.com/releases/20.8/deepin-desktop-community-20.8-amd64.iso
兰州大学的镜像站,亲测速度更快:
https://mirror.lzu.edu.cn/deepin-releases/
刻录工具下载:
https://cdimage.deepin.com/applications/deepin-boot-maker/windows/deepin-boot-maker.exe
在windows电脑上下载以上文件,然后准备一个16GB以上U盘,通过刻录工具将镜像烧录到u盘(之后如果需要恢复正常使用,只需要格式化u盘即可),此时已经制作好启动盘。

BIOS设置

关闭secure boot,不同机器进入BIOS的方法不一样,我这个是开机按F2,具体方法自行百度。

安装系统

插入之前制作好的u盘作为启动盘,然后再电脑开机的时候快速猛按F12(不同电脑进入启动项的方法不同) 然后通过上下箭头选择你的U盘,回车后等待一会儿,出现安装界面,选择第一项。

硬盘分区这里如果是全盘安装,将会清空所有内容,然后安装deepin系统,如果需要安装双系统,则根据需要修改挂载位置。

调整根分区大小,这里设置的空间大小相当于windos下的c盘(系统盘)内存空间,可以根据需要修改。

勾选右下角使用集成闭源驱动 等待安装完成,大约耗时几分钟左右 重启后拔掉U盘,然后进入系统,此时已经安装完毕

故障解决

安装好后重启进入桌面,发现屏幕分辨率不正常,而且无法调整,检查发现显卡驱动存在问题(这是由于nvidia显卡的官方驱动不开源,所以deepin自己做了个冒牌驱动,导致显卡无法正常工作,如果是集成显卡则没有该问题),因此首先尝试重装显卡驱动程序。

  • 下载显卡驱动

进入NVIDIA官网,找到驱动下载页面,根据自己的显卡型号下载稳定生产版Linux驱动,下载后是一个run格式的文件。

https://www.nvidia.cn/Download/index.aspx
  • 停用自带驱动程序

由于系统自带nouveau驱动程序,因此需要先将其禁用,然后加入黑名单。

sudo dedit /etc/modprobe.d/blacklist.conf

进入编辑器后将以下内存输入并保存

blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv

然后使用以下命令更新linux内核(驱动程序在内核中重建)

sudo update-initramfs -u

卸载原来的NVIDIA驱动程序

sudo apt-get remove --purge nvidia*
  • 关闭图形界面服务

暂时关闭X服务(GUI图形界面),这一步会黑屏请看完再操作。 首先按住键盘上的CTRL+ALT+F2,进入超级终端模式,需要输入账户和密码进入命令行界面。

使用下面的命令关闭图形界面(因为显卡驱动必须在关闭显示界面的条件下安装)

sudo service lightdm stop
  • 重装显卡驱动

首先,对下载的显卡驱动更改权限,赋予可执行功能。

sudo chmod +x ./*.run

然后,运行该驱动程序

sudo sh ./*.run

稍等一会儿后出现安装界面,选择Accept

下面这个步骤的意思是将驱动程序以模块形式安装进DKMS,选择NO 出现这个界面表示正在安装,等待几分钟

安装到最后出现报错,无法安装成功,我重新试过三四次,不管怎么样都有报错,可能是这个显卡本身太老了(GTX240,14年前的古董) 使用reboot命令重启电脑,然后发现NVIDIA的驱动程序打开出现错误,屏幕分辨率仍然有问题,显卡驱动不正常。

  • 杀手锏

经过好几次的尝试,都没办法正常安装显卡驱动,迫不得已之下,打开主机箱物理卸载显卡,拔掉显卡后将显示排线连接到主机后面的核显输出端口 。

重启后问题解决,界面恢复正常,因为核显无需额外的驱动程序,所以分辨率、画面亮度等功能也能进行更改,使用起来已经没有太大问题了。

到此,系统安装完成!电脑可以像普通电脑一样下载软件、浏览网页、看电视、听音乐,常用的软件比如微信、QQ、爱奇艺、网易云、WPS、腾讯会议等都有Linux版本,使用起来和普通家用windows电脑没什么大差别,而且垃圾软件个广告更少。

基本环境配置

权限管理

刚开始安装系统时输入的账户为管理员权限,使用该管理员帐号登录,然后进入账户,设置root密码,因为deepin系统初始没有提供root账户,所以需要设置激活后使用。

sudo passwd root

输入上述代码后先输入当前管理员的密码,然后设置root密码并重复一次,即可完成。

su root

输入上述代码并根据提示输入密码,即可进入root账户,此时命令行提示符号为“#”

如果想增加账号,先使用useradd添加,然后使用passwd设置该账户的密码即可。

软件安装

  • 桌面软件商店

可以使用系统自带的软件商店安装,这个方法最简单快捷,同时兼容性最好,官方推荐普通用户使用该方法安装软件。

  • apt软件包仓库
sudo apt install xxx
  • conda仓库
conda search python #搜索
conda install xxx #安装

启动SSH服务

由于deepin系统初始状态下,SSH服务是关闭状态,因此无法直接使用SSH远程连接。

  • Linux服务器端
sudo apt-get update #更新
sudo apt-get install openssh-server #安装ssh服务
sudo ps -e |grep ssh #查看是否存在ssh进程
netstat -an|head -5 #查看端口信息
sudo /etc/init.d/ssh start #启动ssh服务
sudo systemctl enable ssh #设置开机自动启动ssh服务

使用sudo /etc/init.d/ssh status命令可以查看当前SSH服务的开启状态,显示如下为正常情况。

  • 个人PC电脑端

按照ssh登录软件,常见的putty、finalshell、xshell都可以,这里推荐两款,一个是mobaxterm,界面相对丰富,功能也不错【点击这里即可下载使用】另一个是termius,支持多设备、文件管理和代码自动补齐功能,笔者觉得这两款都比较好用。 进入软件后输入主机IP、用户名、密码,即可远程登录上服务器,也可以直接用电脑的power shell输入以下命令登录。

ssh user@192.168.1.1 -p 22

搭建生信分析环境

miniconda

Miniconda是conda的精简版安装程序。 它是Anaconda的小型引导程序版本,仅包含conda,python,它们依赖的软件包以及少量其他有用的软件包。通俗来说就是一个软件的大仓库,里面有各种软件。

https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/

进入上方网址,下载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安装,之前已经配置好conda,如果没有安装需要先装conda,再装R,这个方法能够按照最新版4.2.0版本。

conda install r-base -y

安装后输入一个R,检查是否安装成功,如果成功后输入which R查看软件路径,这个路径复制保存,之后有用。

(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

需要系统管理员帐号密码和root账户密码,用于安装Rstudio-server,必须以root账户安装,以下操作均在管理员状态下进行。

下载官网: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
    1. 安装软件
sudo gdebi rstudio-server-2022.12.0-353-amd64.deb
    1. 设置参数

初次启动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 文件中添加并修改参数:

vim /etc/rstudio/rserver.conf 
www-port=80
#这里我们是将端口改成80

修改完毕之后要验证参数有效性,并重启rstudio-server

rstudio-server test-config
rstudio-server restart

设置R版本

默认情况下,RStudio server 运行时使用的R是系统PATH中指定的R,这个位置可以使用which R确定,如果我们的系统上有多个版本的R,那么可以使用rsession-which-r参数指定RStudio 使用哪个版本的R。

rsession-which-r=/usr/local/bin/R

设置用户限制

/etc/rstudio/rserver.conf文件中添加auth-required-user-group参数,可以指定访问rstudio 的用户:

auth-required-user-group=rstudio_users

创建组,将dave 用户添加到该组:

groupadd rstudio_users
usermod -g rstudio_users -G rstudio_users dave

/etc/rstudio/rserver.conf 文件中指定用户组,只有属于改组的用户才可以使用rstudio。

auth-required-user-group=rstudio_users

当然也可以添加一些其他的资源限制,比如总内存,stack size 和进程数等:

rsession-memory-limit-mb=4000
rsession-stack-limit-mb=10
rsession-process-limit=100
  • rsession.conf配置

默认情况下,当用户2个小时没有执行命令,RStudio 会终止用户的R session,并将这些信息写入磁盘,从而减少资源的消耗,当用户下次使用时,session被还原。

可以通过session-timeout-minutes 参数指定session 过期的时间

session-timeout-minutes=30#会话超时时间

limit-file-upload-size-mb 参数,其可以限制最大的上传大小

limit-file-upload-size-mb=100

指定默认的CRAN repository 服务地址

r-cran-repos=https://mirrors.nwafu.edu.cn/cran/

以上修改都需要重启服务才能生效

用任意设备浏览器访问主机本地IP的8787端口即可,网页版的Rstudio自带保存功能,并且支持多用户登录同时使用。

使用的时候,只需要在同一局域网下!

  • Rstudio运行状态查看
rstudio-server status
  • Rstudio服务开启、停止、重启
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

使用体验

这个系统实际用起来还是很方便的,普通用户也能很快上手,个人感觉操作界面有点像windows和Macos的结合版。

在设置中能够看到系统的介绍信息,菜单的逻辑关系比较强,操作起来和手机菜单差不多。 自带的终端很好用,响应速度也比较快,能够满足大部分应用。 如果开启图形化窗口界面,普通情况下占用大概2GB内存,通过系统管理器可以看出大部分应用进程占用资源较多。 综上所述,deepin操作系统作为国产之光,用起来还是很棒的!deepin和Linux的关系有点像最近几年鸿蒙和安卓的关系,外界对此还是存在各种观点,笔者认为只要好用、稳定就够了,不用在意具体如何实现。

未来有一天,假如受到国外制裁,所有的windows系统都封禁了,我们还能使用deepin这样的系统做备用替代,那么今日的笔记可能对你有所帮助,多学一点,有益无害。

分类:

后端

标签:

后端

作者介绍

生信分析笔记
V1

欢迎关注公众号:生信分析笔记