服务器和Linux ,安装R rstudio ,常用软件

news2024/11/18 5:42:23
  1. 服务器的基本概念:

    1. 如服务器的基本结构,节点,端口的概念等。

  2. 服务器的基本设置和管理:

    1. 如何配置新服务器,

    2. 如何管理服务器,如何分配账户并确保他们互不访问,

    3. 如何全局安装软件让所有人都可以使用,

    4. 以及服务器管理员的常用操作等。

  3. 软件的安装和使用:安装和版本管理

    1. 如何在服务器上安装和使用各种软件,如R, Rstudio, Jupyter notebook等,

    2. 如何在服务器上使用不同版本的R和Python等。

  4. 数据管理:

    1. 如何下载和安装各种数据,

    2. 如何在Linux下进行相关分析,

    3. 如何在Linux下挂载后台运行及查看进度,

    4. 如何管理大量数据集等。

  5. 工作环境的搭建:

    1. 如何搭建生信分析或者对接课程的工作环境,

    2. 如何搭建单细胞下游分析工作环境,

    3. 如何创建网页版Rstudio和Python notebook以供外人访问等。

  6. 文件传输和存储:

    1. 如何用FileZilla或其他工具上传文件到服务器,

    2. 上传的文件在Python中如何找到

    3. 数据文件如何存储和管理等。

实际上关键点就两个,一个是怎么管理好多个用户,一个是怎么安装好软件。因此昨晚的直播课也就是侧重这两点。

第一部分:服务器和Linux的了解

在这一部分,我主要给大家简答科普了目前的服务器的类型,以及与我们当前用到的笔记本、台式机的区别。

需要知道的几点

  1. 服务器性能不一定比台式机强

  2. 服务器一般来说都是为了完成某个特定目标,比如说网页服务器,而我们用的电脑则是常用来执行多种不同的任务

  3. 服务器有物理服务器和虚拟服务器两类,虚拟服务器一般指的是将一个物理服务器的资源虚拟化,有效利用资源的一种。

  4. 大厂的云服务器比较贵。不建议购买云服务器做计算任务。

  5. Linux是服务器上最常用的一种操作系统

  6. Linux有两种主要发行版本,一种是CentOS,一种是ubuntu。

  7. 从后续的直播结果来看,请大家在装服务器系统的时候,尽量装最新的Ubuntu。云服务器的CentOS可能还是7,因此除非你对自己的管理能力很自信,否则慎选。

第二部分:服务器的交互

服务器访问三要素是

  1. 用户名

  2. IP地址,或者域名

  3. 端口号

即便很多时候你没有写端口,那也是有一个默认端口22的。

我觉得经过我很多次强调,上过我Linux课的人,都知道这三要素了。

与服务器交互的两种最常见方式是:SSH登录和SFTP数据传输。

在Windows上,我认为的最佳组合就是XSHELL和XFTP

Image

而在MacOS和Linux上,我自己偏好自带终端和FileZilla。由于FileZilla是跨平台的软件,所以实际上我在Windows上也会用。

Image

当然,还有其他一些东西可选,例如FinalShell。

第三部分:权限管理

这部分知识,在我们Linux实战课虽然提到过,但实际上大家都没有什么特别的感悟,因此这里,我给了一个非常复杂的例子

需求:

  • 创建三个用户,xzg1, xzg2,xzg3, 位于/home/xzg下, 属于xzg组

  • 创建三个用户,gsp1, gsp2, gsp3,位于/home/gsp下,属于gsp组

  • 创建1个用户,visitor,位于/home/visitor下,属于visitor组

  • 创建一个组,叫做gzdlab, xzg1, xzg2,xzg3, gsp1,gsp2,gsp3都属于gzdlab

  • xzg组之间可以相互访问,gsp组之间可以相互访问,xzg和gsp之间不能相互访问

  • 创建一个私人目录,/data/private_data,  gzdlab组的人可以访问,并编辑里面的内容,其他用户可以访问,但是不能编辑内容

  • 创建一个公共目录,/data/public_data, 所有人都可以访问,都可以编辑内容

这个例子在直播课有了非常好的演示。只不过在操作同时,还演示了一些内容外的东西,这要是我就觉得直播课相对于我写文字教程,有趣的地方。

我在用xzg1使用sudo时候,遇到了权限的问题,于是我带了大家学习用户让一个普通用户能够使用sudo。在Ubuntu和CentOS中,添加sudo用户是不太一样的操作。Ubuntu用的是usermod把用户加到sudo组中,而CentOS则是用visudo在配置文件中加上用户。

遇到之前的需求,我们解决方法如下

第一步,创建用户和用户组:

sudo groupadd xzg
sudo groupadd gsp

sudo mkdir /home/xzg
sudo mkdir /home/gsp

sudo useradd -m -d /home/xzg/xzg1 -g xzg xzg1
passwd xzg1

sudo useradd -m -d /home/xzg/xzg2 -g xzg xzg2
sudo useradd -m -d /home/xzg/xzg3 -g xzg xzg3

sudo useradd -m -d /home/gsp/gsp1 -g gsp gsp1
sudo useradd -m -d /home/gsp/gsp2 -g gsp gsp2
sudo useradd -m -d /home/gsp/gsp3 -g gsp gsp3

创建合作组,gzdlab,用于加上xzg和gsp的成员。

# 创建组
sudo  groupadd gzdlab

# 将用户添加到组
for user in xzg1 xzg2 xzg3 gsp1 gsp2 gsp3; do
    sudo  usermod -a -G gzdlab ${user}
done

之后,设置xzg和gsp用户组的访问权限:

# 更改所有者
# 前面的冒号表示只更改所属组,而不更改所有者。
sudo chown -R :xzg /home/xzg
sudo chown -R :gsp /home/gsp

sudo chmod -R 770 /home/xzg
sudo chmod -R 770 /home/gsp

为了方便数据的管理,我们创建了两个文件夹:

sudo mkdir -p /data/private_data
sudo mkdir -p /data/public_data

设置文件夹权限:

sudo chown -R :gzdlab /data/private_data
sudo chmod -R 770 /data/private_data
sudo chmod -R 777 /data/public_data

当然上述一般来说,可能都是管理非常复杂的情况,更多的是帮助我们理解什么叫做用户权限。但是在真实世界中,我们可能就只会做两步,

第一步,创建用户,给他分配一些资源。

useradd -m -d /home/用户名 用户名
passwd 用户名

第二步,创建一个公共的目录,放数据,让他去复制

mkdir /data/public_data
chmod -R 777 /data/public_data

简单的说,就是把数据分成自己的和公共的两类。

这一部分交给大家的作业就是,回顾整理下用户管理、用户组管理和权限管理的几个Linux命令。

第四部分:软件安装

我们先强调了环境变量,PATH的重要性,可执行文件都是通过这个PATH来找到执行路径的。

但是PATH是如何加载的呢?我们介绍了配置文件的加载过程,特别的,我们强调了 为什么有些时候,你已经把PATH添加到~/.bashrc  中,但是依旧不起作用的原因。

这里我找到了一张更好的图(来源:https://youngstone89.medium.com/unix-introduction-bash-startup-files-loading-order-562543ac12e9),来说明这个加载过程。

Image

通常来说,如果我们用的是终端登录,我们就是以 /ect/profile~/.bash_profile 来启动配置文件,而~/.bashrc通常是由~/.bash_profile调用。

接着,为了介绍如何全局安装软件,我们讲了两个例子

  • CellRanger

  • seqkit

大家可以自己回去练习下

当然,软件安装的重头戏还是R语言和RStudio的配置。

在R语言的安装上,我推荐的是用编译的方式安装,这样子,你可以保证,你自己安装多个版本的R,并保持他们共存。

直播课中,我介绍4.1.3和4.3.1的编译安装

# 4.3.1
wget https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/base/R-4/R-4.3.1.tar.gz
tar xf R-4.3.1.tar.gz
./configure --prefix=/opt/R-4.3.1 --enable-R-shlib --with-blas --with-lapack
make -j
sudo make install

#4.1.3
wget https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/base/R-4/R-4.1.3.tar.gz
tar xf R-4.1.3.tar.gz
./configure --prefix=/opt/R-4.1.3 --enable-R-shlib --with-blas --with-lapack 
make -j 
sudo make install


不过在安装过程中,我们出现了几个意外(放心,都在我的掌控之中)

首先,依赖环境不全,因此在configure的过程中,反复报错,我这里总结了CentOS和Ubuntu的一些必装的内容 CentOS

yum group install "Development tools"
yum install libX11-devel 
yum install libXt-devel 
yum install readline-devel
yum install xz xz-devel 
yum install pcre pcre-devel
yum install libcurl-devel
yum install texlive
yum install java-1.8.0-openjdk
yum install *gfortran*
yum install zlib*
yum install bzip2-*

Ubuntu

sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install zlib1g-dev libreadline-dev libcurl4-openssl-dev \
    libpcre2-dev libbz2-dev liblzma-dev \
    libxml2-dev libcairo2-dev
sudo apt-get install xorg-dev
sudo apt-get install texlive-base texlive-latex-extra texlive-fonts-recommended

# java支持, 可以不用
sudo apt-get install default-jdk

还有一个意外的就是,centOS7因为太老了,安装4.3.1的时候,还得加上 --with-pcre1参数,不能用最新的pcre2

./configure --prefix=/opt/R-4.3.1 --enable-R-shlib --with-blas --with-lapack  --with-pcre1
make -j
sudo make install 

另外要强调的一点事,因为后续要RStudio调用R,所以--enable-R-shlib参数必须有。

之后我们用CentOS演示了RStudio安装

wget https://download2.rstudio.org/server/centos7/x86_64/rstudio-server-rhel-2023.06.1-524-x86_64.rpm
sudo yum install rstudio-server-rhel-2023.06.1-524-x86_64.rpm

实际上Ubuntu也类似,到https://posit.co/download/rstudio-server/ 选择合适版本就好

需要注意的是,此时安装的Rstudio是不会成功启动的,因为我们没有安装在它默认搜索的位置,因此我们需要没指定R的位置

我们需要编辑 /etc/rstudio/rserver.conf ,添加如下的内容

rsession-which-r=/opt/R-4.3.1/bin/R

然后用sudo rstudio-server restart重启,使用rstudio-server status确认运行状态。

默认端口是8787,你需要通过 IP地址:端口来访问。

但是,如果你用的云服务器,或者你服务器有防火墙的设置,你还需要允许这个端口的放行。这部分内容参考直播课的演示。

接下来,我们介绍了R包的编译,需要强调的是,R默认是单线程编译。我们需要先运行这两个配置,让R执行编译时能够快一点。

options(Ncpus=20L)
Sys.setenv(MAKEFLAGS="-j 20")

在R包的安装过程中,充满了意外,例如,学员让我们演示CytoTRACE_0.3.3的安装,经过不断的排查,发现可能需要gcc7才能编译,而我的centos7只有gcc4.8。虽然我能给大家展现一下,如何在旧系统上编译新的GCC,但是考虑直播时长,我们还是冷静下,暂时在这里结束了,不然我们真的要决战到天明了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1276426.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于python的FMCW雷达工作原理仿真

这篇文章将介绍如何使用python来实现FMCW工作原理的仿真,第1章内容将介绍距离检测原理,第2章内容会介绍速度检测原理。 第1章 第1部分: 距离检测原理 调制的连续波雷达通常也被叫做调频连续波(FMCW)雷达是一个使用频率调制来测量…

C#,数值计算——插值和外推,谢别德(Shep)插值方法的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// 谢别德插值方法 /// Object for Shepard interpolation using n points in dim dimensions. Call /// constructor once, then interp as many times as desired. /// &…

nodejs微信小程序+python+PHP金融产品销售系统的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

NSDT场景编辑器实现真数字孪生

在线工具推荐&#xff1a; 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务 1、什么是数字孪生&#xff1f; 数字孪生是资产或系统的实时虚拟模型&#xff0c;它使用来自连…

15、 深度学习之正向传播和反向传播

上一节介绍了训练和推理的概念,这一节接着训练和推理的概念讲一下,神经网络的正向传播和反向传播。 其实单看正向传播和反向传播这两个概念,很好理解。 正向传播(Forward Propagation)是指从输入层到输出层的数据流动过程,而反向传播(Backpropagation)是指数据从输出…

Unity | 渡鸦避难所-0 | 创建 URP 项目并导入商店资源

0 前言 知识点零零碎碎&#xff0c;没有目标&#xff0c;所以&#xff0c;一起做游戏吧 各位老师如果有什么指点、批评、漫骂、想法、建议、疑惑等&#xff0c;欢迎留言&#xff0c;一起学习 1 创建 3D&#xff08;URP&#xff09;项目 在 Unity Hub 中点击新项目&#xff…

L1-006:连续因子

题目描述 一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3567&#xff0c;其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N&#xff0c;要求编写程序求出最长连续因子的个数&#xff0c;并输出最小的连续因子序列。 输入格式&#xff1a; 输入在一行…

腾讯云避坑——无法远程root登录

因为各种原因&#xff0c;最近需要使用腾讯云来代替阿里云。 但在ubuntu18/20的服务器中&#xff0c;我使用另一个电脑试图用scp命令来拷贝服务器中的一些文件&#xff0c;命令为: scp root服务器ip:文件目录 本地目录但一直显示密码错误。 原因是腾讯云ubuntu系统在创建时并不…

Node-red入门设计-时序信号输出

Note-red入门设计 - 时序信号输出 Note-red环境 打开Note-red 通过运行栏输入powershell&#xff0c;使用管理员权限运行后&#xff0c;执行如下命令&#xff1a; note-red运行note-red的指令&#xff0c;将输入如下内容&#xff1a; 此时&#xff0c;在浏览器界面录入相应…

PgSQL技术内幕 • statement_timeout做的那些事

PgSQL技术内幕 • statement_timeout做的那些事 statement_timeout是Postgres种的一个配置参数&#xff0c;用于指定SQL语句执行的超时时间&#xff0c;当超时时就取消该SQL的执行&#xff0c;并返回错误信息。这个参数通常用于控制运行时间较长的查询&#xff0c;避免影响数据…

利用 NRF24L01 无线收发模块实现传感器数据的无线传输

NRF24L01 是一款常用的无线收发模块&#xff0c;适用于远程控制和数据传输应用。本文将介绍如何利用 NRF24L01 模块实现传感器数据的无线传输&#xff0c;包括硬件的连接和配置&#xff0c;以及相应的代码示例。 一、引言 NRF24L01 是一款基于 2.4GHz 射频通信的低功耗无线收发…

第九节HarmonyOS 常用基础组件-Text

一、组件介绍 组件&#xff08;Component&#xff09;是界面搭建与显示的最小单位&#xff0c;HarmonyOS ArkUI声名式为开发者提供了丰富多样的UI组件&#xff0c;我们可以使用这些组件轻松的编写出更加丰富、漂亮的界面。 组件根据功能可以分为以下五大类&#xff1a;基础组件…

API成批分配漏洞介绍与解决方案

一、API成批分配漏洞介绍 批量分配&#xff1a;在API的业务对象或数据结构中&#xff0c;通常存在多个属性&#xff0c;攻击者通过篡改属性值的方式&#xff0c;达到攻击目的。比如通过设置user.is_admin和user.is_manager的值提升用户权限等级&#xff1b;假设某API的默认接口…

Mapper文件夹在resource目录下但是网页报错找不到productMapper.xml文件的解决

报错如下&#xff1a; 我的Mapper文件夹在resourse目录下但是网页报错找不到productMapper.xml。 结构如下&#xff1a;代码如下&#xff1a;<mappers><mapper resource"com/dhu/mapper/productMapper.xml" /> </mappers> 这段代码是在mybatis-co…

html实现各种好看的鼠标滑过图片特效模板

文章目录 1.鼠标悬浮效果1.1 渐动效果1.2 渐变效果1.3 边框效果1.4 线行效果1.5 图标效果1.6 块状效果1.7 边线效果1.8 放大效果1.9 渐出效果1.10 痕迹效果1.11 交叉效果1.12 着重效果1.13 详展效果1.14 能动效果1.15 明细效果 2.主要源码2.1 源代码 源码下载 作者&#xff1a;…

windows系统如何配置yarn环境变量

启动前端项目&#xff0c;突然遇到报错&#xff1a; 原因在于没有安装yarn&#xff0c;或没有配置环境变量。 全局安装 yarn 可在vsCode中输入&#xff0c;也可在命令行输入&#xff08;winR&#xff0c;输入cmd&#xff09; npm install -g yarn添加环境变量 找到yarn的安…

【算法】单调栈题单——字典序最小⭐(一种类型的模板题)

文章目录 题目列表316. 去除重复字母⭐⭐⭐⭐⭐&#xff08;类型题模板&#xff1a;单调栈&#xff0c;字典序最小&#xff09;221021天池-03. 整理书架&#xff08;保留数量为 limit 的字典序最小&#xff09;402. 移掉 K 位数字&#xff08;最多删除 k 次 前导零的处理&…

从0开始学习JavaScript--JavaScript 单元测试

JavaScript单元测试是保障代码质量和可维护性的关键步骤之一。通过编写和运行单元测试&#xff0c;开发者可以确保代码在不断迭代的过程中依然具有正确的行为。本文将深入探讨JavaScript单元测试的核心概念、工具使用和最佳实践&#xff0c;并通过丰富的示例代码演示其实际应用…

mac 系统 vmware 安装centos8

选择镜像 安装系统 依次设置有告警的项目 设置用户名密码 设置root密码 重启系统 重启成功进入下面界面 勾选&#xff0c;点击done 点击箭头所指按钮 输入密码登录 安装成功了 设置网络 打开终端 切换root用户 输入下面指令 su root 输入root的密码 安装git

振动温度一体式传感器的工作原理及其在设备状态监测中的作用

振动温度一体式传感器是一种先进的监测设备&#xff0c;可以同时测量和监测目标物体的振动和温度信息。它结合了振动传感技术和温度传感技术&#xff0c;为工业领域提供了全面而高效的设备状态监测解决方案。在振动温度一体式传感器中&#xff0c;有线和无线两种类型分别在设备…