服务器软件使用说明 学生版

本文以笔者所在学校东北大学秦皇岛分校(以下简称NEUQ)服务器设置为基础,说明了服务器的通用使用方式,其中只涉及软件部分,即硬件准备就绪的情况,包括但不限于电源,网卡,显示器、键盘等外部设备。

新购置的服务器通常预装了单一系统。在科研领域,特别是深度学习方面,Ubuntu系统因其免费、稳定性高和强大的社区支持而广受青睐。众多科研人员选择Ubuntu,使得其使用基数庞大,因此遇到的各种问题及其解决方案也十分丰富。对于初学者而言,这意味着他们可以从互联网社区中获取到大量的经验和帮助。

本文所有的设置与软件安装,基于Ubuntu 20.04 LTS版本LTSLong Term Support的缩写,意味着长期支持,因此系统通常较为稳定。一个稳定的操作系统对于实验环境至关重要,它是确保稳定进行实验研究的先决条件,为科研活动的顺利进行提供了必要的保障。

对于操作系统来说,我个人建议是不要安装图形界面,因为有些图形界面系统会导致一些系统中断。但另一方面,图形界面会让人有一个直观的感受,因此本文会介绍部分图形界面相关的内容。另外,对于计算机视觉方面的程序会有一些必须需要图形界面支持的需要,如 opencv 等。

0 注意事项

作者在行文过程中,可能会受到当时所在环境及心情的影响,因此需要注意以下几点。

  • 文中出现某些网站地址可能会发生变化,因此建议使用微软必应进行搜索,更容易搜索到,而百度搜索可能会搜索到一些教程,这些教程往往不具有时效性,请注意仔细甄别。
  • 文中所提到的示例部分均为不真实的,如ip地址均为不真实地址,但保证是合理合法的格式。
  • 尽管作者已经非常认真,但文中可能会出现一些不正确的或者晦涩的表达让人难以理解,这是正常现象,请各位读者理解。

1、一台新服务器的配置

拿到一台新的服务器,首要任务是确保进行必要的网络连接和远程终端连接,以及设置图形显示界面的远程连接,这样才能进行必要的科研工作。

1.1 网络连接

学校内使用的服务器一般在 校园网(局域网) 内使用,需要老师及同学们远程访问,因此有一个固定IP地址是非常重要的。本节来说明如何对Ubuntu 20.04进行静态IP设置。

1.1.1 网络配置

1.1.1.1 图形配置

图形配置是最简单的配置方法,只需要在设置中打开网络设置,选择网线插入的网卡,点击设置即可,下图展示了一个样例。

注意:要确定是哪个网卡进行了连接

下图中的网卡名称是 eno1

网络图形化界面配置

  • 网络填写设置

NEUQ 的网络设置如下:

  • 子网掩码为 24 位,也就是 255.255.255.0
  • 网关在首位,最后一位是 1
  • DNS 服务器:202.206.16.2,也可以使用中国电信 114.114.114.114 阿里云 223.5.5.5 谷歌 8.8.8.8 等其他DNS服务器
1.1.1.2 配置文件配置

对于没有图形界面的网络,可以进行如下的配置

  • 1、首先确定是哪个网卡进行了连接,可以在终端内输入以下命令
1
ip a

输入内容中含有各个网卡的名称,找到 stat UP 的就是已经连接的网卡,并记住这个名字

下图是一个输出示例:名称是 eno1

1
2
3
4
5
6
7
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 7c:c2:55:78:f4:e4 brd ff:ff:ff:ff:ff:ff
altname enp1s0f0
inet 10.20.128.10/24 brd 10.20.128.255 scope global noprefixroute eno1
valid_lft forever preferred_lft forever
inet6 fe80::b73b:bffb:ccd4:97a3/64 scope link noprefixroute
valid_lft forever preferred_lft forever
  • 2、打开终端,使用 vim 或者任何一款可以编辑文本的工具,打开网络的配置文件 /etc/netplan/01-network-manager-all.yaml,命令如下:
1
sudo vim /etc/netplan/01-network-manager-all.yaml

填入以下示例内容:

1
2
3
4
5
6
7
8
9
10
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
ens3f1: # 网卡的名字
addresses: [172.16.75.193/24]
gateway4: 172.16.75.1
nameservers:
addresses: [223.5.5.5, 114.114.114.114, 8.8.8.8]

注意:yaml 有些严格的缩进限制,如果出现错误,请检查缩进格式是否出现错误,再检查是否配置正确

  • 3、保存并关闭文件后,运行以下命令以应用配置更改:
1
sudo netplan apply
  • 4、验证设置

还是使用 ip a 命令进行验证是否修改正确

并使用 ping [your gateway] 来检查是否能连通网关

  • 5、可能出现的问题

最后sudo netplan apply时可能会遇到,

1
2
`gateway4` has been deprecated, use default routes instead.
See the 'Default routes' section of the documentation for more details.

解决的方案就是把 gateway4 换成 routes,以下是一个示例

1
2
3
4
5
6
7
8
9
10
network:
version: 2
ethernets:
eth0: # 网卡的名字
addresses:
- 172.16.75.193/24 # 列表的另一种写法,和上文中的一样
routes:
- to: 0.0.0.0/0
via: 172.16.75.1 # 网关地址
metric: 100
1.1.3 另一种方式

如果 1.1.2 中的方式没有生效,可以修改 /etc/network/interfaces 这个文件

  • 1、使用 vim 编辑 /etc/network/interfaces (或其他本文编辑工具)
1
sudo vim /etc/network/interfaces
  • 2、填写示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.100 # 本机ip 地址
netmask 255.255.255.0 # 子网掩码
gateway 192.168.1.1 # 网关
dns-nameservers 8.8.8.8 8.8.4.4 # DNS 中间用空格隔开

  • 3、保存上述文件,然后重启电脑

    1
    sudo reboot # 严禁使用 shutdown 命令
  • 4、验证设置

还是使用 ip a 命令进行验证是否修改正确

并使用 ping [your gateway] 来检查是否能连通网关

1.1.2 连接网络

1.1.2.1 锐捷客户端连接

NEUQ 采用锐捷客户端进行校园网认证,使用步骤如下:

  • 1、首先在学校网站一网通办,下载Linux 支持的版本,解压,根据PDF中的说明进行配置

  • 2、为了方便连接网络,使用以下脚本进行网络连接,[] 中的内容是需要按照自己的配置进行填写

1
2
# ./rjsupplicant.sh -u [your username or student id] -p [your password] -n [adapter name / network interface name] -d 0 &
./rjsupplicant.sh -u 2272999 -p xxxx -n ens3f1 -d 0 &

以上脚本假设命名为 netcon,需要和 rjsupplicant.sh 放在一起,使用方法为在终端下使用以下命令。

1
sudo bash netcon

成功后另起一个终端使用 ping baidu.com 查看是可以访问互联网

1
2
3
4
5
lucy@server:~/rjsupplicant$ ping baidu.com
PING baidu.com (39.156.66.10) 56(84) bytes of data.
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=1 ttl=48 time=11.7 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=2 ttl=48 time=12.7 ms
64 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=3 ttl=48 time=11.9 ms
1.1.2.2 机房服务器

机房服务器需要教师申请联网,申请成功后,直接可以访问互联网

检查方式:起一个终端使用 ping baidu.com 查看是可以访问互联网

1.2 安装必要软件

连接网络后,此时网络连接畅通,需要进行软件的安装,以保证设备的利用。

1.2.1 APT的更新

apt update 命令用于更新本地存储的软件包列表,以使系统了解可用的软件包和它们的最新版本。

1
sudo apt update

以下内容为可选内容

当前Ubuntu建立了国内的网站链接,因为校园网有一些设置,目前体验还可以,不需要进行换源,然,凡事有例外,以下是换源方法

如果网络连接较慢,可以考虑换国内的镜像源,如清华大学镜像源,参考链接:
ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

需要注意,要为原版的sources.list 做一个备份,防止发生镜像站宕机无法更新

1.2.2 安装 GCC/G++/Make 支持

要进行深度学习,显卡驱动是万万不能少的,但是装显卡驱动之前,需要安装支持驱动的C语言,C++支持,因此需要安装 gcc/g++/make 三个软件及其依赖

安装命令方法如下:

1
2
3
4
sudo apt update
sudo apt install gcc
sudo apt install g++
sudo apt install make

安装成功后验证命令:

1
2
3
gcc --version
g++ --version
make --version

gcc/g++/make

1.2.3 安装显卡驱动

安装显卡驱动对于深度学习研究非常重要,可以显著提高计算效率、加速模型训练、支持大规模模型和数据集,并提高实验灵活性和多样性。

安装步骤如下:

  • 1、搜索引擎搜索显卡驱动,进入网站

下载最新版官方 GeForce 驱动程序

如下图中的网站主页输入系统配置进行搜索,注意下载类型选择:**Production Branch** 然后下载对应驱动的执行文件(.run 或者 .sh 结尾)

下载显卡驱动

  • 2、上传到服务器,使用 sudo bash 命令运行这个文件

启动NVIDIA驱动程序的安装向导。按照提示进行操作,例如接受许可协议、选择安装方式、安装位置等。

示例如下:

1
sudo bash NVIDIA-Linux-x86_64-xxx.xx.run
  • 3、重新启动系统:

安装完成后,你需要重新启动系统以使新的NVIDIA驱动生效。可以运行以下命令来重新启动:

1
sudo reboot
  • 4、验证安装

重新启动后,可以打开终端,并运行以下命令来验证NVIDIA驱动是否正确安装:

1
nvidia-smi

运行出以下类似结果则安装成功

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Sun Dec  3 16:13:04 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.147.05 Driver Version: 525.147.05 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA L4 Off | 00000000:AF:00.0 Off | 0 |
| N/A 39C P0 27W / 72W | 0MiB / 23034MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA L4 Off | 00000000:D8:00.0 Off | 0 |
| N/A 39C P0 29W / 72W | 0MiB / 23034MiB | 8% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+

1.2.4 远程终端连接

正常情况下如果安装的是服务器版本的话,用户可以通过 SSH 进行远程连接,但如果不是安装的服务器版本可以会出现,服务器可以通过 ssh 连接别的主机,但别的主机无法通过 ssh 连接服务器主机,这是因为服务器没有安装 ssh 服务。

可以使用以下命令进行 openssh-server 的安装

1
sudo apt install openssh-server

这样就可以使用以下方式进行连接:

1
ssh username@hostname

注意:root用户默认情况下不允许远程访问

1.3 本章小结

本章主要介绍了新购入的服务器需要进行的操作,以NEUQ的部分设置为基础,较为详细的说明了新购入的服务器需要进行的配置,这些配置有些必须现场进行配置,如网络连接,远程访问无法连接的情况。

2、科研准备

2.1 CUDA与显卡驱动

2.1.1 CUDA 与 显卡驱动的关系

CUDA(Compute Unified Device Architecture)是NVIDIA推出的并行计算平台和编程模型,用于利用NVIDIA GPU进行通用目的的并行计算。CUDA包括一个并行计算架构、并行计算指令集和CUDA Runtime API,使开发人员能够在NVIDIA GPU上开发和运行高性能并行计算应用程序。

显卡驱动是操作系统和GPU之间的软件接口,负责管理GPU的硬件资源、提供GPU与操作系统之间的通信、实现图形渲染等功能。显卡驱动通常由GPU厂商(如NVIDIA)提供,以确保GPU与操作系统的兼容性和性能。

CUDA和显卡驱动之间存在密切的关系:

  1. CUDA依赖于显卡驱动: 要在NVIDIA GPU上运行CUDA程序,首先需要安装适当版本的NVIDIA显卡驱动。CUDA运行时库与显卡驱动紧密结合,利用显卡驱动提供的硬件访问接口和并行计算功能来执行CUDA程序。

  2. 显卡驱动支持CUDA功能: NVIDIA的显卡驱动提供了对CUDA所需的并行计算功能的支持,包括GPU计算核心的调度、内存管理、线程调度等功能。安装正确的显卡驱动版本可以确保CUDA程序能够在GPU上正确运行并发挥最佳性能。

  3. 显卡驱动更新可能影响CUDA功能: 更新显卡驱动可能会影响CUDA功能和性能。新的显卡驱动版本通常会改进对CUDA的支持,并提供更好的性能和稳定性。因此,在更新显卡驱动时,需要确保选择适用于CUDA程序的兼容版本。

综上所述,CUDA和显卡驱动是密切相关的,正确安装和配置显卡驱动是在NVIDIA GPU上运行CUDA程序的前提条件。

2.1.2 CUDA的安装

一般情况下,下载一个 CUDA 的安装文件时,文件中会包含一个显卡驱动,但在笔者实际的操作经验上来说,一般安装 CUDA 时并不会选择 CUDA 中自带的显卡驱动,因为 CUDA 版本永流传,显卡驱动不等人。因显卡驱动出问题的情况不在少数,但从未听说 CUDA 版本出问题的服务器设备。

  • 1、根据系统版本选择CUDA

    • 搜索引擎搜索关键词 CUDA

CUDA Toolkit - Free Tools and Training | NVIDIA Developer

下面是打开网站之后进行的操作:

CUDA下载主页

CUDA 选择下载

CUDA 的下载处,有相关教程,注意命令不需要输入 $ 这个代表是普通用户,而 # 代表你是超级用户

另外,还需要注意的是,安装 cuda时显卡驱动是不需要装的,如果你已经有了显卡驱动。

  • 2、运行下载好的文件

按空格取消驱动的安装

去掉显卡驱动

  • 3、安装完成

安装完成之后可能会要求重新启动,此时重新启动即可。

1
sudo reboot
  • 4、验证安装

安装完成后,需要配置一下环境变量,环境变量的配置在3.2 环境变量配置中查看

可以使用命令行或图形界面工具来验证CUDA的安装是否成功。

1
nvcc --version

出现以下类似示例则代表安装成功

1
2
3
4
5
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Mon_Oct_24_19:12:58_PDT_2022
Cuda compilation tools, release 12.0, V12.0.76
Build cuda_12.0.r12.0/compiler.31968024_0

2.1.3 Cudnn 安装

cuDNN是NVIDIA提供的针对深度学习任务优化的CUDA库,可以加速深度学习模型的训练和推理过程。以下是安装cuDNN的一般步骤:

  • 1、 获取cuDNN安装文件

cuDNN Archive | NVIDIA Developer

访问NVIDIA的开发者网站,下载适用于系统和 CUDA 版本的 cuDNN 安装文件。

cuDNN下载

一般情况下,需要注册NVIDIA开发者账号并接受许可协议才能下载 cuDNN ,不过可以在百度搜索引擎中,搜索 cuDNN 账号分享,可以登录,也可以直接获得链接,使用第三方工具(如迅雷)进行下载。

  • 2、解压安装文件

下载完cuDNN安装文件后,解压缩文件到你选择的目录中。需要注意的是,在2024.04.12附近的版本中,解压出来的名字中带有Windows 不知道是两个平台互通,还是命名疏忽。作者没有研究,读者可自行研究。

解压后的文件如下图所示

1
2
3
4
5
6
7
./
├── bin
├── include
└── lib
└── x64

4 directories
  • 3、复制文件到CUDA目录:

在解压缩的 cuDNN 目录中,你会找到一些头文件和库文件。根据你的系统架构(示例的系统架构为64,目前绝大多数是64)和 CUDA 版本,选择相应的文件,并将其复制到CUDA的安装目录中。通常情况下,cuDNN 的头文件和库文件应该分别复制到 CUDAincludelib(或者lib64) 目录中。以下为命令,注意命令运行时,工作目录在 cuDNNhome(软件的安装目录)目录下

1
2
sudo cp include/* /usr/local/cuda/include/
sudo cp lib/x64/* /usr/local/cuda/lib64/
  • 4、设置环境变量

如果使用的深度学习框架需要访问cuDNN的头文件和库文件,可能需要设置相应的环境变量,以便系统能够找到这些文件。可以将cuDNN的安装路径添加到系统的 PATH 变量中,并设置 LD_LIBRARY_PATH 等环境变量以指定cuDNN库文件的位置。

  • 5、 验证安装

安装完成后,可以通过运行一些深度学习程序来验证cuDNN是否正确安装并生效。

不过一般情况下,不能直接看出来,而且在某些深度学习框架安装时,会安装cuDNN的依赖

2.2 包管理器Conda

2.2.1 Conda/Miniconda/Anaconda

MiniConda、Conda和Anaconda是Python生态系统中的三个重要组件,它们有着不同的功能和定位:

  • 1、Conda:

    • Conda是一个开源的包管理系统和环境管理系统,主要用于安装和管理软件包及其依赖项。
    • Conda可以用于任何编程语言,但它最为广泛地用于Python环境中。
    • Conda的主要功能包括创建、导出、安装、删除和更新软件包,以及管理虚拟环境。
    • Conda具有跨平台性,可以在Windows、Linux和macOS等操作系统上运行。
  • 2、MiniConda:

    • MiniConda是一个精简版的Conda发行版,它只包含了Conda本身以及一些基本的软件包和工具,没有预装额外的数据科学和机器学习库。
    • MiniConda的体积更小,下载和安装速度更快,适合于需要自定义环境和只需要基本功能的用户。
    • 用户可以通过MiniConda构建自己需要的环境,根据需要安装额外的软件包和库。
  • 3、Anaconda:

    • Anaconda是一个基于Python的开源发行版,包含了大量用于科学计算和数据分析的软件包和工具。
    • Anaconda默认集成了Conda,因此可以使用Conda来管理Anaconda中的软件包和环境。
    • Anaconda发行版中包含了许多流行的数据科学和机器学习库,如NumPy、Pandas、SciPy、Matplotlib、scikit-learn等。
    • Anaconda还提供了一个名为Anaconda Navigator的图形用户界面(GUI)工具,用于方便地管理软件包、环境和项目。

一句话总结:Conda是一个包管理和环境管理工具,MiniConda是其精简版,而Anaconda是一个集成了许多科学计算和数据分析库的Python发行版。用户可以根据自己的需求选择合适的版本进行安装和使用。

2.2.2 Miniconda 安装

Miniconda 和 Anaconda 安装是类似的,本节以 Miniconda 为例表述在 Ubuntu Linux 下进行安装。

  • 1、获取安装文件

    • 安装文件可以从两个地方获得,一个是官方网站的地址,一个是镜像地址,

      • 1、官方地址下载

        首先在搜索引擎中搜索 miniconda,然后选择自己系统的版本进行下载,示例中的为Linux 64 位

        miniconda 官方下载

      • 2、镜像地址下载(以清华镜像为例)

        搜索引擎搜索清华镜像,或者直接访问:清华大学开源软件镜像站 | Tsinghua Open Source Mirror,使用Ctrl + F 进行搜索 conda,进入 anaconda/miniconda 的下载列表,使用Ctrl + F 进行年份搜索,找到最新版本,点击下载

        Miniconda清华镜像下载

    • 上传至服务器
      将下载好的Miniconda3-latest-Linux-x86_64.sh 上传到服务器(见4.1 文件传输)。

      然而,这种方式比较麻烦,适用于服务器未连接网络的情况下。如果服务器网络畅通,则可以使用 wget 命令进行下载。从以上两种方式获得的下载链接处,右击复制链接。使用下面的命令进行下载即可直接将文件下载到服务器上,两条命令选择一个即可。

      1
      2
      3
      4
      wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh # 清华镜像中的miniconda 链接

      # 或者以下方式
      wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh # 官方网站的miniconda 链接
  • 2、使用命令进行安装

在下载后使用以下命令进行安装。

1
sudo bash Miniconda3-latest-Linux-x86_64.sh # Miniconda3-latest-Linux-x86_64.sh 需要改下载的文件

说明:使用 sudo 命令可以确保你有足够的权限来将软件安装到系统中的任何位置。如果不使用 sudo 命令,则只允许将软件安装到当前登录用户有权限访问的目录下

运行命令后,需要进行接受许可协议、选择安装路径和设置环境变量等操作,完成安装后,MiniConda 会在你选择的安装路径下创建一个新的目录,并在其中安装Conda以及相关的工具和库。

  • 3、安装完成

安装完成后需要重启终端,或者使用 conda init bash再使用。

Miniconda 的安装程序会让你选择是否配置环境变量或者直接配置了环境变量,可以使用以下命令来验证是否安装成功:

1
conda --version 

运行上述命令后,终端会打印出conda 的版本,则安装成功。

2.2.3 Miniconda/Anaconda 使用

2.2.3.1 环境介绍

在Conda中,每个环境都是相互独立的,它们之间没有直接的关系。每个环境都包含了一个特定版本的Python解释器以及用户指定的软件包集合。
每个环境之间的关系:

  • 相互独立性: 每个环境都是相互独立的,它们的安装路径和配置信息都是独立的。这意味着一个环境中安装的软件包和依赖项不会影响其他环境,每个环境可以有自己独立的软件包版本和配置。

  • 共享资源: 虽然每个环境是独立的,但它们可以共享系统上已安装的一些公共资源,例如系统库和共享依赖项。这样可以节省空间,并且可以在不同的环境之间共享一些公共的软件包和库。

  • 基于环境的项目管理: 使用Conda创建的环境可以用于管理特定项目的依赖项和环境配置。每个项目可以拥有自己独立的环境,这样可以确保项目之间的环境不会相互干扰,并且可以轻松地在不同项目之间切换和管理环境。

安装成功后在终端用户名前会出现一个 (base) 字样,这是默认激活了一个base 的环境。

2.2.3.2 基本使用

以下是使用MiniConda的简要安装和使用说明:

使用MiniConda:

1、 打开终端或命令行窗口:
在安装完成后,打开终端或命令行窗口。

2、 创建和管理环境:
使用Conda命令来创建和管理虚拟环境。例如,可以使用以下命令创建一个名为myenv的新环境:

1
conda create --name myenv

3、 激活环境:
创建环境后,使用以下命令来激活环境:

1
conda activate myenv

4、 安装软件包:
在激活的环境中,可以使用Conda命令来安装软件包。例如,要安装NumPy包,可以运行以下命令:

1
conda install numpy

5、 使用Python:
在激活的环境中,可以使用Python命令来运行Python解释器,并执行Python脚本。例如,要启动Python解释器,可以运行以下命令:

1
python

6、 退出环境:
完成后,可以使用以下命令退出当前环境或者直接退出终端。

1
conda deactivate

更多的使用方法以及技巧请查看官方文档 Conda Documentation — conda-docs documentation

2.2.3.3 安装软件

在一个虚拟环境激活后,可以在这个环境中可以按照自己的需要进行环境的安装。
在Conda虚拟环境中安装软件有几种方式:

  • 1、使用conda命令安装:

    使用conda install命令可以在当前激活的Conda虚拟环境中安装软件包。例如,要安装numpy软件包,可以执行以下命令:

    1
    2
    3
    conda install package_name=version # 范式
    conda install numpy # 示例:会默认选择一个版本
    conda install numpy=1.19.5 # 示例:指定版本号1.19.5
  • 2、 使用pip命令安装

    在Conda虚拟环境中,也可以使用pip命令来安装软件包。尽管Conda提供了自己的包管理系统,但有些软件包可能只能通过pip来安装。例如,要安装一个不在Conda仓库中的软件包,可以执行以下命令:

    1
    2
    3
    pip install package_name==version    # 范式:注意是两个"="
    pip install requests
    pip install requests==2.25.1 # 示例:指定版本号 2.25.1

    使用pip 安装时,也可以使用离线安装方法,例如通过某种方式下载了工具的软件(如numpy-1.19.5.whl),可以通过以下方式安装

    1
    pip install /path/for/numpy/numpy-1.19.5.whl # 需要看好相对路径和绝对路径

    相对路径与绝对路径请查看 3.1.2 相对路径与绝对路径

  • 3、 从其他渠道安装:
    有些软件包可能不在Conda或pip的默认仓库中,你可以从其他渠道安装。比如,一些软件包可能在Anaconda仓库或其他第三方仓库中。你可以通过添加相应的渠道来安装这些软件包,如 apt全局安装,如果是全局安装,则可能环境不能分离,切记

无论选择哪种方式,安装的软件包都将安装到当前激活的Conda虚拟环境中。这样做的好处是,软件包的安装和依赖项管理将与其他环境分离,避免了可能的冲突和版本问题。

2.3 远程图形访问(选)

在深度学习中,计算机视觉的学习有时会用到有弹窗的学习,另外对于不擅长使用Linux命令终端的同学来说,图形界面更简单易用,因此远程访问时如果可以像虚拟机一样使用远程服务器就非常友好了,但是作者还是建议熟练使用命令操作。

尽管如向日葵,ToDesk等软件的远程访问十分方便且易用。但是对于校园网内的服务器来说,远程访问可以通过内网来访问。而向日葵与ToDesk需要在有图形界面下安装才可以,并且可能具有安全问题。

而普通研究生,一般通过windows电脑工作,Ubuntu系统进行科学计算,因此经过作者的经验,决定使用windows 系统下的 mstsc 来进行远程访问,mstsc 是 Microsoft Windows操作系统中的一个远程桌面连接工具,是一个功能强大、稳定可靠的远程桌面连接工具,适用于各种远程管理和协作场景。它有以下几个优点:简单易用: mstsc提供了简单直观的用户界面,用户可以通过输入目标计算机的IP地址或主机名,快速建立与远程计算机的连接;稳定性高: mstsc作为Windows操作系统的官方远程桌面连接工具,具有良好的稳定性和兼容性。它能够稳定地连接到远程计算机,并提供流畅的远程桌面体验;功能丰富: mstsc支持多种功能和设置,包括文件传输、剪贴板共享、远程打印、远程音频和视频等。用户可以根据需要进行相应的配置和调整;安全性强: mstsc支持多种安全连接方式,包括基于用户名和密码的身份验证、网络级别的数据加密、双因素身份验证等。用户可以根据需要选择合适的安全设置;性能优化: mstsc支持对连接进行优化,可以调整图形质量、颜色深度和带宽限制等参数,以实现更好的性能和用户体验。

mstsc 一般为 windows 操作系统自带的,不需要额外安装。
打开方式如下,按下 Win + R组合键打开“运行”对话框,然后在对话框中输入mstsc 并按下Enter键即可打开mstsc应用程序,输入对应的内网 IP 地址即可进行访问,但是在此之前,需要在Ubuntu Linux 系统上安装一个 xrdp 的软件才可以,直接命令安装,安装完成后,即可通过mstsc 进行连接。

1
sudo apt install xrdp

对于有图形界面安装的 Ubuntu Linux 系统呢,就像连接了自己的电脑一样,如下图所示:
有图形界面

对于无图形界面安装的 Ubuntu Linux 系统来说,只有一个终端打开,但是可以有软件弹窗,足够应对任何可能需要的场景。

无图形界面

2.4 本章小节

本章介绍了进行科研所需要进行的准备工作,以及部分软件的安装,以能快速正确的配置环境进行科学研究。

3、系统说明

3.1 目录

3.1.1 用户目录home介绍

用户的Home目录是Linux系统中每个用户的个人工作目录,也是用户的默认登录目录。它在文件系统中的路径通常是/home/<username>,其中username是用户的用户名。用户的Home目录是用户在Linux系统中的个人工作空间和默认登录目录,用于存储个人文件、配置文件和工作文档。它为用户提供了一个安全、私密和个性化的工作环境。用户的Home目录具有以下特点和功能:

  • 1、个人工作空间: 用户的Home目录是用户在Linux系统中的个人工作空间,用户可以在其中存储个人文件、文档、配置文件、下载的文件等。

  • 2、默认登录目录: 当用户登录到Linux系统时,系统会自动将用户导航到其Home目录,作为默认的工作目录。这意味着用户可以直接在Home目录下进行操作,而不需要额外的导航步骤。

  • 3、权限限制: 用户的Home目录通常只对该用户有写入权限,其他用户只有读取权限或者没有权限。这意味着其他用户无法访问用户的个人文件,保护了用户的隐私和安全。

  • 4、用户配置文件: 许多应用程序和工具会在用户的Home目录下创建配置文件和缓存文件,用于保存用户的个性化设置、历史记录、临时文件等。这些文件通常以.开头,称为隐藏文件或隐藏目录,例如.bashrc.vimrc等。

3.1.2 相对路径与绝对路径

在Ubuntu中,相对路径和绝对路径是用于定位文件或目录的两种不同方式。

  • 1、 相对路径:

    • 相对路径是相对于当前工作目录的路径。
    • 使用相对路径时,你指定的路径是相对于当前所在位置的路径。
    • 相对路径不包括根目录(/),而是从当前目录开始计算。
    • 例如,假设当前工作目录是/home/user/Documents,相对路径file.txt表示/home/user/Documents/file.txt
  • 2、 绝对路径:

    • 绝对路径是从文件系统的根目录开始的完整路径。
    • 使用绝对路径时,你指定的路径是文件或目录在文件系统中的完整位置。
    • 绝对路径始终从根目录(/)开始,包括完整的目录结构。
    • 例如,/home/user/Documents/file.txt就是file.txt的绝对路径。

绝对路径提供了明确的文件或目录位置,不受当前工作目录的影响,而相对路径则更简洁,通常用于指定当前目录内的文件或子目录。在选择使用相对路径还是绝对路径时,取决于你希望表达的是相对于当前位置还是在文件系统中的确切位置。

3.1.3 多用户状态下使用注意事项

3.1.3.1 普通用户严禁

如果管理员管理不当,误分配了 super 用户权限,则以下为严禁使用,避免数据丢失等其他麻烦。

  • 如果资源紧张时,禁止使用危险命令如 sudo kill 来杀死别人的进程。
  • 远程访问时,禁止使用 sudo shutdown 命令。
  • 未经导师允许,禁止删除公共资源,如一些公共数据集等。
  • 示经导师允许,禁止修改系统配置。
  • 未经他人允许,禁止修改其他用户的配置。
  • 未经所有用户允许,禁止卸载公共软件。
  • 未经所有用户允许,禁止修改系统软件的版本。
  • 禁止删除系统日志。
  • 禁止删除他人创建的虚拟环境。
  • 禁止删除自身未知用处的文件。
  • 禁止使用服务器资源从事与科研学习无关的事项
3.1.3.2 普通用户建议
  • 建议在进行系统软件安装时,请求导师意见。
  • 建议谨慎使用 sudo 权限,三思而后行。
  • 建议遇到问题,要冷静处理,仔细查看产生的日志及错误提醒

3.2 环境变量配置

在Ubuntu中,环境变量是指在系统中存储的一些全局变量,它们可以在整个系统中被各种应用程序和命令所使用。环境变量的配置可以影响系统的行为、应用程序的运行和用户的体验。在Ubuntu中配置环境变量可以通过编辑系统级环境变量文件或者用户级配置文件来实现。配置的内容需要符合相应的语法规则,并且在修改完配置后需要重新加载或者重启才能生效。以下是关于在Ubuntu中配置环境变量的一般步骤:

  • 1、系统级环境变量:

    系统级环境变量是在整个系统中都可用的变量,它们通常被系统服务、所有用户和所有会话所使用。系统级环境变量通常存储在/etc/environment文件中,每行一个变量,格式为VARIABLE=value。修改这个文件需要root权限。

    另外系统环境变量,也可以配置在 /etc/profile 文件中,需要使用以下语句来进行配置。

    1
    export PATH=$PATH:/usr/local/bin

    使用 export 进行 PATH 环境变量的配置时,所需要要的目录多个,使用: 隔开不同的目录。

  • 2、用户级环境变量:

    用户级环境变量是针对每个用户的,它们只对当前用户有效,不会影响其他用户的环境。用户级环境变量通常存储在用户的配置文件中,如~/.bashrc~/.bash_profile~/.profile等。用户可以在这些文件中添加自己的环境变量配置,例如:

    1
    export PATH=$PATH:/usr/local/bin

    这个命令将/usr/local/bin路径添加到PATH环境变量中,使得系统可以在这个路径中查找可执行文件。

  • 3、临时环境变量:

    除了永久配置环境变量外,还可以临时设置环境变量,这些变量只在当前会话中有效,并在会话结束后失效。可以使用export命令来设置临时环境变量,例如:

    1
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
  • 4、环境变量的生效:

    在修改完环境变量配置后,需要重新加载配置文件或者重新启动终端才能使修改生效。对于用户级环境变量,可以执行source ~/.bashrc命令来重新加载配置文件;对于系统级环境变量,则需要重新启动系统或者重新加载相关服务。

4、Linux远程开发实用技巧

4.1 文件传输

4.2 VSCode 远程开发

4.3 远程SSH免密登录