从零到一保姆级Ubuntu深度学习服务器环境配置教程

Posted daipuweiai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零到一保姆级Ubuntu深度学习服务器环境配置教程相关的知识,希望对你有一定的参考价值。

文章目录


前言

本篇博客主要记录Ubuntu深度学习服务器从裸机到配置结束的全过程


一、Ubuntu安装教程

1.1 下载Ubuntu镜像

首先需要下载Ubuntu系统镜像,这里以Ubuntu18.04系统镜像为例。Ubuntu官网地址如下:Ubuntu官网

如下图所示Ubuntu官网下载已经更新到22.04了,因此需要找到历史版本网址:Ubuntu历史版本官网,可根据自己需要进行选择,在此选择Ubuntu18.04,同时建议在Ubuntu18.04和Ubuntu16.04中进行选择。

对于网速较慢情况,大家可以利用阿里云镜像进行下载,网址如下:阿里云Ubuntu镜像


1.2 软碟通刻录U盘

接下找到一个支持UEFI的U盘,下载软碟通软件,这个百度即可。下载安装之后,提示要注册,这个可以不必管它,直接使用即可。打开软碟通软件并插入U盘之后,点击“文件”–>“打开”,打开你电脑上Ubuntu18.https://main.ns189.com/link/T4vw3LyH9kVVXE6e?sub=104镜像,之后点击“启动”–>“写入硬盘镜像”。

之后会出现如下界面,点击写入即可,之后等待刻录镜像文件完成。


1.3 进入Bios,修改相关选项

百度自身机型进入Bios的快捷键,在机器启动时按住快捷键进入Bios,之后关闭安全模式,并把UEFI改成优先启动,即第一位。由于自身主机配置时这些已经关闭,因此无法截图。

1.4 Ubuntu18.04安装流程

之后重启电脑,进入UEFI就能进入Ubuntu16.04安装程序。之后进入之后一系列傻瓜式下一步。接下来博客中的图片借用博客:【手把手AI项目】一、安装win10+linux-Ubuntu16.04的双系统(超细致)中的图,同时也感谢这位朋友在装系统时为我答疑解惑。在这里我们默认使用英文,中文会有很多问题



接下来要做的是分区。在概要中我们就提到我们首先将磁盘全部初始化,说明一下,当前图站服务器是512G固态加上1T机械,运行内存32G,显卡为RTX3090。分区主要分以下这些:

  1. swap:用作虚拟内存,这个一般和自己的物理内存一般大 /:主要用来存放Linux系统文件;
  2. /boot:存放linux内核,用来引导系统的,如果是Legacy启动就要设置引导,UEFI就不用设置这个(UEFI要设置EFI文件);
  3. /usr:存放用户程序,一般在/usr/bin中存放发行版提供的程序,用户自行安装的程序默认安装到/usr/local/bin中;
  4. /home:存放用户文件;

选中指定空闲磁盘,然后点击+ 号,开始分配,特别说明的是系统盘和数据盘建议分开,因此将/home放在机械盘上,其余放在固态上,在选择分区是需要特别注意这一点:

  1. 分配swap,选择主分区,空间起始位置,大小最好和自己物理内存一样,32G,用于交换空间;
  2. 若果使用EFI则设置EFI引导,选择逻辑分区,空间起始位置,用于EFI系统分区,大小设置300M即可;若使用Legacy引导则设置Boot引导,选择逻辑分区,空间起始位置,用于Ext4日志文件,挂载点:/boot,大小设置8G ;
  3. 设置/,选择逻辑分区,空间起始位置,用于Ext4日志文件,挂载点:/,大小的话推荐256G;
  4. 设置usr,选择逻辑分区,空间起始位置,用于Ext4日志文件,挂载点:/usr,大小设置为256G;
  5. 设置home,选择逻辑分区,空间起始位置,用于Ext4日志文件,挂载点:/home,大小为1T;

    由于我是利用UEFI来装Ubuntu的,因此我们最后将启动引导器的设备选择为efi去对应的磁盘。之后有时一系列下一步,**在选择键盘风格时,选择中文,最后等待安装完成。


然后重启,并在启动前拔掉U盘。


二、更换软件源

为了下载更方便,速度更快,往往在使用Linux系列系统时修改apt源为国内的源,一般选择有阿里云,豆瓣之类的,下面简单说下如何更改为阿里云源。

首先是复制源文件备份,以防万一。我们要修改的文件是sources.list,它在目录/etc/apt/下,sources.list是包管理工具apt所用的记录软件包仓库位置的配置文件,同样类型的还有位于 同目录下sources.list.d文件下的各种.list后缀的各文件。命令如下:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

之后在/etc/apt/sources.list添加阿里源镜像网址,命令如下:

sudo vim /etc/apt/sources.list

由于镜像源地址因系统版本而异,在此列出常见Ubuntu版本的镜像源网址,根据自身安装ubuntu版本进行复制:

# ubuntu16.04 阿里源
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

# ubuntu18.04 阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

# ubuntu22.04 清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

# ubuntu22.04 阿里源
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

# ubuntu22.04 中科大源
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

# ubuntu22.04 网易163源
deb http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse


之后依次运行如下命令更新软件列表和软件包

sudo apt-get update
sudo apt-get upgrade

如果网速不够快,这两条命令会运行比较长的时间,请耐心等待即可。等更新之后,在命令行安装软件的速度将会大幅度提升。


三、 NVIDIA驱动安装

接下来是安装NVIDIA驱动,这也是安装CUDA10.0及其对应版本的CuDNN和tensorflow、keras等深度学习框架之前最重要的一步。首先进入英伟达中国驱动官网输入显卡型号查看支持显卡驱动的版本,这个过程可能会有一定的延迟,请耐心等待。


接下来我们点击下载,将英伟达驱动的run文件放到Downloads文件夹下。在安装驱动之前我们必须进行相关准备工作。ubuntu默认安装了第三方开源的驱动程序nouveau,安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动。首先打开配置文件,禁用nouveau,命令如下:

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

在配置文件末尾添加如下代码:

blacklist nouveau
options nouveau modeset
blacklist rivafb
blacklist vga16fb
blacklist nvidiafb
blacklist rivatv

然后点击保存,可能会出现如下图中不支持设置属性的警告,不要紧,无视就可。后面我们也有类似的情况,依旧是无视即可。然后然配置文件生效,代码如下:

sudo update-initramfs -u

之后我们必须重启系统,这是可会出现屏幕分辨率变低的情况乱,不要惊讶,正常打开命令行然后验证nouveau是否已禁用,代码如下:

lsmod | grep nouveau

若命令行出现如下图所示状态,则说明nouveau成功被禁用。

在图形界面中安装英伟达驱动可能出现无限循环,因此我们必须进入命令行模式。接下来在ubuntu下按ctrl+alt+f1,输入用户名与密码,进入命令行模式。然后在命令行界面下输入如下代码关闭图形界面:

  sudo service lightdm stop      //这个是关闭图形界面,不执行会出错。

然后卸载掉原有驱动,代码如下:

sudo apt-get remove nvidia-*  //(若安装过其他版本或其他方式安装过驱动执行此项)

建议更新下ubuntu版本内核,安装需要的依赖

sudo apt update
sudo apt install dkms build-essential linux-headers-generic

进入Downloads文件夹,首先赋予驱动run文件赋予执行权限,然后执行run文件,代码如下:

cd Downloads
ls			//显示Downloads文件夹中所有文件名称,方便下面输入执行驱动安装程序的文件
sudo chmod  777 NVIDIA-Linux-x86_64-430.50.run			//将最后的英伟达驱动run文件名换成自己下载的驱动名称
sudo ./NVIDIA-Linux-x86_64-430.50.run

安装过程中的选项:(这是copy别人的,自己的没记住,我也是尝试选择了好多遍才安装好)

The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继续。
Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 选择 No 继续。
问题没记住,选项是:install without signing
问题大概是:Nvidia’s 32-bit compatibility libraries? 选择 No 继续。
Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 选择 Yes 继续

这些选项如果选择错误可能会导致安装失败,没关系,只要前面不出错,多尝试几次就好。接下来是挂载Nvidia驱动,代码如下:

modprobe nvidia

建议再次重启之后,打开命令行检查驱动是否安装成功,代码如下:

nvidia-smi

如果出现如下提示,则说明安装成功:


四、安装cuda+cudnn

4.1 安装cuda

在进行安装Cuda之前,我们首先进行相关准备工作。首先确认自己电脑的GPU兼容CUDA,只要电脑是N卡应该就支持,A卡应该是不支持的。在终端中输入以下命令即可查看自己的显卡是否兼容。

lspci | grep -i nvidia

图站服务器显示 compatible兼容
之后要做的是确定Ubuntu18.04是否支持CUDA。输入命令如下:

uname -m && cat /etc/*release


接着确定自己的Ubuntu系统安装了gcc,基本上是安装Ubuntu成功的基本都带有gcc,但是为了确保gcc是否安装,我们利用如下命令进行确认:

gcc --version


接下来确定系统是否已经安装了正确的Kernel Headers和开发包。首先查看系统正在运行的kernel版本:

uname -r


如果不是最新版本,先更新对应的kernels header和开发包:

sudo apt-get install linux-headers-$(uname -r)

接下来进入cuda历史官网下载cuda11.1的安装包。按照下图红框依次点击。

进入如下界面后按照红框依次点击即可,可以根据需要进行选择不同系统和安装方式,在这里使用runfile文件进行安装。

根据官网提供的安装命令依次进行安装:

cd Downloads/
wget https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run
sudo chmod 777 cuda_11.1.1_455.32.00_linux.run
sudo sh cuda_11.1.1_455.32.00_linux.run --override

执行上述命令后会出现如下界面,输入accept后点击回车。

接着出现如下界面,将Driver及其下属选项全部不选中,然后点击Install进行安装,安装过程有点长,请耐心等待。需要注意的是在如下界面中X代表选中,而中括号中什么都没有代表未选中

接下是配置相关环境变量。首先打开~/.bashrc文件,代码如下:

sudo vim ~/.bashrc

将以下内容写入到~/.bashrc尾部,并保存成功。

export PATH=/usr/local/cuda-11.1/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

然后让~/.bashrc生效,代码如下:

source ~/.bashrc

之后利用gedit命令打开在/etc/profile文件中,添加CUDA环境变量,代码如下:

sudo vim /etc/profile

打开文档都在文档结尾加上下面两句:

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

保存后, 执行下列命令, 使环境变量立即生效,代码如下:

source /etc/profile

同时添加lib库路径,在 /etc/ld.so.conf.d/新建文件 cuda.conf,命令如下:

sudo vim /etc/ld.so.conf.d/cuda.conf

在文中加入下面内容:

/usr/local/cuda/lib64

执行下列命令使之立刻生效,代码如下:

sudo ldconfig

最后我们利用测试CUDA的samples来测试cuda安装是否成功,代码如下:

cd /usr/local/cuda-11.1/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery

如果显示如下一些关于GPU的信息为PASS,则说明安装成功。

最后如下命令来查看驱动版本,代码如下:

nvcc -V

4.2 安装cudnn

之后进入cudnn官网进行下载cudnn,如下图所示。

点击红框按钮进入下载页面,如果你未登录账号,跳转页面如下。

有英伟达账号点击上图中红框的登录按钮进入登录页面即可,按提示完成登录。若没英伟达账号则点击篮框的立即加入进入注册账号页面,并按提示完成账号注册,然后在进行登录。我自己使用qq进行登录。

之后选择和cuda11.1版本对应的cudnn版本进行下载,在这里选择8.1.1版本。

在安装包下载完成之后,默认放置在Downloads文件中。我们利用cd命令进入安装包所在的文件夹对安装包进行解压,命令如下:

cd Downloads/
sudo chmod 777 cudnn-11.2-linux-x64-v8.1.1.33.tgz
sudo tar -zxvf  cudnn-11.2-linux-x64-v8.1.1.33.tgz

之后我们讲图片中的文件依次复制到/usr/local/cuda中对应的文件夹下。

sudo chmod 777 -R ./cuda  
sudo mv cuda/include/* /usr/local/cuda/include
sudo mv cuda/lib64/* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

4.3 卸载cuda

由于开发需要部分程序可能会对cuda版本有特殊要求,更换cuda版本则成为必然选择。因此需要已经安装好的cuda版本卸载后然后安装新版本的cuda。首先进入cuda文件夹,找到卸载程序:

# 下面需要根据自己情况更换cuda版本号
cd /usr/local/cuda-11.0/bin
ls


然后执行该程序完成cuda的卸载:

sudo ./cuda-uninstaller

执行上述命令后会出现如下界面,请一一勾选讲所有文件删除,在该界面中X代表已勾选,而非代表不选,最后点击Done正式进入卸载流程,该过程需要等待一段时间。

该流程结束后需要,再次进入cuda文件夹所在父目录,核验带有’cuda’名称文件夹是否全部删除,命令如下:

cd /usr/local
ls


若没有,则手动删除文件夹:

# 根据自身情况跟换cuda版本号
sudo rm -rf cuda-11.0/

五、深度学习环境安装

5.1 安装Anaconda

首先到Anaconda官网下载Anaconda安装包,如下图所示。

若网速太慢可以考虑国内镜像源下载,例如清华镜像源,根据时间找到最新版本的Linux安装包。

下载完成后建议将安装包放在根目录下,然后在命令行中赋予相应执行权限,之后在执行安装sh文件,代码如下:

cd Downloads/
sudo chmod 777 Anaconda3-2021.11-Linux-x86_64.sh
bash Anaconda3-2021.11-Linux-x86_64.sh

安装过程中看到

Welcome to Anaconda3 5.2.0
In order to continue the installation process, please review the license
agreement. (为了继续安装过程,请审核许可证。协议。)
Please, press ENTER to continue
直接按enter查看协议,然后一直enter下去,然后看到Do you accept the license terms? [yes|no](你接受许可证条款吗?)
直接输入yes 然后按enter,进入下一步
接下来会提示安装地址:Anaconda3 will now be installed into this location:
/home/anaconda3
Press ENTER to confirm the location
Press CTRL-C to abort the installation
Or specify a different location below
强烈建议默认即可,按enter继续下一步,注意这里按ctrl + c 直接会终止安装。接下来先等待安装即可。看到Thank you for installing
Anaconda3! 表示安装成功。

然后是配置环境变量,首先打开配置文件,代码如下:

 sudo vim ~/.bashrc

之后下面代码输入带文件末尾:

export PATH=/home/dpw/anaconda3/bin:$PATH

然后更新配置文件,代码如下:

source ~/.bashrc 

为了加快pip下载速度,将pip的默认源更换位阿里源,命令如下:

mkdir ~/.pip
sudo vim ~/.pip/pip.conf

# 将以下内容添加到~/.pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
 
[install]
trusted-host=mirrors.aliyun.com

5.2 Pytorch框架安装

进入Pytorch历史版本官网,选择适合自身服务器的pytorch版本进行安装。

在这里假设cuda版本为11.1,那么可以安装pytorch1.8,首先建立pytorch1.8的虚拟环境,并激活环境,命令如下:

conda create -n pytorch1.8 python=3.8
conda activate pytorch1.8


然后安装pytorch1.8安装命令如下:

pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

假如网速不够快那么则会导致安装失败,因此建议从Pytorch离线安装包官网上将相应离线安装包下载到本地后再进行安装

安装命令如下:

pip install torch-1.8.0+cu111-cp38-cp38-linux_x86_64.whl
pip install torchvision-0.9.0+cu111-cp38-cp38-linux_x86_64.whl

接着安装常见第三方工具库:

# 常见第三方工具库
pip install ipython scipy numpy pandas matplotlib yacs pyyaml opencv-python opencv-contrib-python scikit-learn Pillow onnx onnx-simplifier onnxruntime-gpu onnxoptimizer tqdm tensorboardX  pascal-voc-writer cython visdom

# COCO-API
git clone https://github.com/cocodataset/cocoapi.git  $COCOAPI
cd $COCOAPI/PythonAPI
sudo make install
(or)
python3 setup.py install --user

5.3 PaddlePaddle框架安装

进入PaddlePaddle官网,找到适合服务器cuda版本的按照包,如下图所示,

安装命令如下:

python -m pip install paddlepaddle-gpu==2.2.2.post111 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html

假如网速不够快那么则会导致安装失败,因此建议从PaddlePaddle离线安装包官网上将相应离线安装包下载到本地后再进行安装

安装命令如下:

pip install paddlepaddle_gpu-2.2.2.post111-cp38-cp38-linux_x86_64.whl

接着安装常见第三方工具库:

# 常见第三方工具库
pip install ipython scipy numpy pandas matplotlib yacs pyyaml opencv-python opencv-contrib-python scikit-learn Pillow onnx onnx-simplifier onnxruntime-gpu onnxoptimizer tqdm tensorboardX  pascal-voc-writer cython visdom paddle2onnx

# COCO-API
git clone https://github.com/cocodataset/cocoapi.git  $COCOAPI
cd $COCOAPI/PythonAPI
sudo make install
(or)
python3 setup.py install --user

5.4 TensorRT安装

进入TensorRT官网下载安装好对应安装包,TensorRT安装包会根据Linux版本和cuda版本不同而存在不一样的安装包。在这里我们假设Linux系统为Ubuntu18.04,Cuda版本为11.1,以TensorRT7.2.2.3为例,如下图所示。



等待安装包下载完成,然后进行解压,并移动到当前用户目录下,命令如下:

cd Downloads/
sudo chmod 777 
sudo tar -zxvf TensorRT-7.2.2.3.Ubuntu-18.04.x86_64-gnu.cuda-11.1.cudnn8.0.tar.gz
sudo chmod 777 -R TensorRT-7.2.2.3/
sudo mv   TensorRT-7.2.2.3/ /home/dpw

接着进入指定的虚拟环境,安装相关python工具包,以pytorch1.8虚拟环境为例,命令如下:

conda activate pytorch1.8
pip install cython pycuda==2019.1
cd /home/dpw/TensorRT-7.2.2.3/
cd python 
pip install tensorrt-7.2.2.3-cp38-none-linux_x86_64.whl
cd ..
cd graphsurgeon
pip install graphsurgeon-0.4.5-py2.py3-none-any.whl
cd ..
cd onnx_graphsurgeon
pip install onnx_graphsurgeon-0.2.6-py2.py3-none-any.whl
cd ..
cd uff
pip install uff-0.6.9-py2.py3-none-any.whl

然后在配置文件中假如TensorRT的环境变量,命令如下:

sudo vim  ~/.bashrc
# 下面命令假假如~/.bashrc文件文件中,需要根据自身需要调整TensorRT文件夹的绝对路径
export TENSORRT_ROOT=/home/dpw/TensorRT-7.2.2.3/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/dpw/TensorRT-7.2.2.3/lib

# 然后使配置文件生效
source ~/.bashrc

5.5 OpenCV编译与安装

在这里介绍的是C++版本OpenCV的安装流程,Python版本的OpenCV安装流程在此不介绍。首先安装OpenCV库相关的所需的CMake,命令如下:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake

接着安装OpenCV相关的依赖库,命令如下:

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libatlas-base-dev gfortran libgtk2.0-dev libjpeg-dev libpng-dev

接着在OpenCV官网下载源码压缩包,在这里我选择的是4.5.5版本,然后完成接源码解压,命令如下:

sudo chmod 777 opencv-4.5.5.zip
unzip opencv-4.5.5.zip

接着利用CMake编译OpenCV,命令如下:

cd opencv4.5.5
sudo mkdir build
cd build
sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo sudo make -j12				# 根据服务器硬件自行选择几个线程同时编译
sudo make install

编译成功后,开始配置环境变量。首先在/etc/ld.so.conf.d/opencv.conf文件中添加相关路径并使文件生效,命令如下:

sudo vim /etc/ld.so.conf.d/opencv.conf
# 添加内容
/usr/local/lib
# 文件生效
sudo ldconfig

接着配置环境变量,命令如下:

sudo vim /etc/bash.bashrc
# 添加内容
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
# 文件生效
source /etc/bash.bashrc
sudo updatedb

六、编辑器安装与配置

6.1 Pycharm

在这里默认安装Pycharm专业版,首先从Pycharm官网上下载对应安装包,如下图所示。

安装包下载完成之后,对压缩包进行解压,对文件夹赋予权限,并放置当前用户文件夹下,命令如下:

cd Downloads/
sudo chmod 777 pycharm-professional-2021.2.tar.gz
sudo tar -zxvf pycharm-professional-2021.2.tar.gz
sudo chmod 777 -R pycharm-2021.2/
sudo mv pycharm-2021.2/ /home/dpw

之后为了之后能够快速运行程序,我们必须建立桌面快捷方式。创建快捷方式文件代码如下:

cd /usr/share/applications/
sudo gedit pycharm.desktop

将如下内容粘贴到文件当中,最好在粘贴之后讲注释掉,然后保存即可。之后在上述快捷方式该快捷方式拖到桌面即可

[Desktop Entry]
Type=Application
Name=Pycharm	
GenericName=Pycharm3													
Comment=Pycharm3:The Python IDE										
Exec=/home/dpw/pycharm-2021.2/bin/pycharm.sh
Icon=/home/dpw/pycharm-2021.2/bin/pycharm.png
Terminal=pycharm
Categories=Pycharm;

然后讲该快捷方式拖拽到桌面即可。接下来进行pycharm配置操作,在创建新py脚本时,自动添加作者等信息,启动Pycharm,并按照顺序依次打开File->Settings->Editor->File and Code Templates->Python Script,将如下内容复制到窗口后点击Apply

##!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time    : $DATE $TIME
# @Author  : DaiPuWei
# @Email   : daipuwei@qq.com
# @File    : $NAME.py
# @Software: $PRODUCT_NAME

def run_main():
    """
    这是主函数
    """


if __name__ == '__main__':
    run_main()

接着添加常用插件,打开File->Settings->Plugins,然后右侧的文本框中输入想要的查看的插件名称,在下方就罗列已安装的相关插件。

需要安装的插件有:

  1. Rainbow CSV
  2. Raibow Brackets
  3. Indent Rainbow
  4. Tabnine
  5. CodeGlance
  6. Material Theme

6.2 Clion

首先从Clion上下载对应安装包,如下图所示。

安装包下载完成之后,对压缩包进行解压,对文件夹赋予权限,并放置当前用户文件夹下,命令如下:

cd Downloads/
sudo chmod 777 CLion-2022.2.4.tar.gz
sudo tar -zxvf CLion-2022.2.4.tar.gz
sudo chmod 777 -R clion-2022.2.4/
sudo mv clion-2022.2.4/ /home/dpw

之后为了之后能够快速运行程序,我们必须建立桌面快捷方式。创建快捷方式文件代码如下:

cd /usr/share/applications/
sudo gedit clion.desktop

将如下内容粘贴到文件当中,最好在粘贴之后讲注释掉,然后保存即可。之后在上述快捷方式该快捷方式拖到桌面即可

[Desktop Entry]
Type=Application
Name=Clion
GenericName=Clion3													
Comment=Clion3:The C/C++ IDE										
Exec=/home/dpw/clion-2022.2.4/bin/clion.sh
Icon=/home/dpw/clion-2022.2.4/bin/clion.png
Terminal=clion
Categories=Clion;

然后讲该快捷方式拖拽到桌面即可。接下来进行Clion配置操作,在创建新文件时,自动添加作者等信息,启动Clion,并按照顺序依次打开File->Settings->Editor->File and Code Templates->inlcude,将如下内容复制到窗口后点击Apply

/*
 **************************************************************************************************************
 * @Time    : $DATE $TIME
 * @Author  : DaiPuWei
 * @Email   : daipuwei@qq.com
 * Copyright (c) $YEAR ThunderSoft All rights reserved.
 **************************************************************************************************************
 */

接着添加常用插件,打开File->Settings->Plugins,然后右侧的文本框中输入想要的查看的插件名称,在下方就罗列已安装的相关插件。

需要安装的插件有:

  1. Rainbow CSV
  2. Raibow Brackets
  3. Indent Rainbow
  4. Tabnine
  5. CodeGlance
  6. Material Theme

七、Docker和Nvidia-Docker安装

7.1 Docker安装和配置

利用国内镜像源一键安装docker,命令如下:

# 阿里源
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# daocloud 
curl -sSL https://get.daocloud.io/docker | sh

接着将当前用户加入到组,并赋予当前用户root权限,命令如下:

sudo groupadd docker
sudo gpasswd -a $USER docker

之后重启docker,并测试是否成功,命令如下:

# 重启docker
sudo service docker restart
newgrp - docker
# 设置成开机自启
sudo systemctl enable docker
# 测试赋予权限是否成功
docker ps
docker --version


为了加快docker拉取镜像速度,需要更换docker镜像源,同时将拉取镜像的保存地址更换到数据盘,命令如下:

sudo vim /etc/docker/daemon.json

# 将如下内容复制到/etc/docker/daemon.json

    "registry-mirrors": [
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https:

一、服务器从零到一——Ubuntu搭建nginx静态服务器

参考技术A Ubuntu 18.04上的Nginx默认启用了一个服务器模块,该模块被配置为在/var/www/html目录下提供文档。 虽然这适用于单个站点,但如果您托管多个站点,它可能会变得很笨重。 我们不必修改/var/www/html ,而是在/var/www为我们的 example.com 网站创建一个目录结构,并将/var/www/html保留为默认目录,如果客户端请求没有匹配任何其他网站。

按如下所示为example.com创建目录,使用-p标志创建任何必需的父目录:

$ sudo mkdir -p /var/www/ example.com/html

接下来,使用$USER环境变量分配目录的所有权:

USER:$USER /var/www/ example.com/html/

如果你没有修改你的umask值,你的web根目录的权限应该是正确的,但是你可以通过输入:

$ sudo chmod -R 755 /var/www/ example.com/

接下来,使用gedit或您最喜欢的编辑器创建一个index.html页面示例:

$ gedit /var/www/ example.com/html/index.html

在里面,添加下面的示例HTML:

<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com server block is working!</h1>
</body>
</html>
为了让Nginx提供这些内容,有必要创建一个具有正确指令的服务器块。 我们不要直接修改默认配置文件,而是在/etc/nginx/sites-available/ example.com上创建一个新文件:

$ sudo gedit /etc/nginx/sites-available/example.com

粘贴到以下配置块中,该块类似于默认值,但已更新为我们的新目录和域名:

server
listen 80;
listen [::]:80;


请注意,我们已将root配置更新到我们的新目录,并将server_name为我们的域名。

接下来,让我们通过创建一个链接到启动sites-enabled目录来启用该文件,该目录是Nginx在启动过程中读取的:

$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

现在启用两个服务器模块并将其配置为基于listen和server_name指令响应请求(您可以阅读关于Nginx如何处理这些指令的更多信息):

example.com :将响应 example.com 和 www.example.com 请求。
default :将响应端口80上与其他两个块不匹配的任何请求。
为了避免添加额外的服务器名称可能导致的哈希桶内存问题,有必要调整/etc/nginx/nginx.conf文件中的单个值。

打开文件:sudo gedit /etc/nginx/nginx.conf

找到server_names_hash_bucket_size指令并删除#符号以取消注释该行:

...
http
...
server_names_hash_bucket_size 64;
...

...
接下来,测试以确保您的Nginx文件中没有语法错误:

$ sudo nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

如果没有任何问题,请重新启动Nginx以启用您的更改:

$ sudo systemctl restart nginx

熟悉重要的Nginx文件和目录

nginx服务器配置文件:

/etc/nginx :Nginx配置目录。 所有的Nginx配置文件都驻留在这里。
/etc/nginx/nginx.conf :主要的Nginx配置文件。 这可以修改,以更改Nginx全局配置。
/etc/nginx/sites-available/ :可存储每个站点服务器块的目录。 除非将Nginx链接到sites-enabled了sites-enabled目录,否则Nginx不会使用此目录中的配置文件。 通常,所有服务器块配置都在此目录中完成,然后通过链接到其他目录启用。
/etc/nginx/sites-enabled/ :存储启用的每个站点服务器块的目录。 通常,这些是通过链接到sites-available目录中的配置文件创建的。
/etc/nginx/snippets :这个目录包含可以包含在Nginx配置其他地方的配置片段。 可重复配置的片段可以重构为片段。
nginx服务器日志文件:

/var/log/nginx/access.log :除非Nginx配置为其他方式,否则每个对您的Web服务器的请求都会记录在此日志文件中。
/var/log/nginx/error.log :任何Nginx错误都会记录在这个日志中。

以上是关于从零到一保姆级Ubuntu深度学习服务器环境配置教程的主要内容,如果未能解决你的问题,请参考以下文章

保姆级教程从零到精通Git,CodeChina实战

一、服务器从零到一——Ubuntu搭建nginx静态服务器

十年测试大佬教你如何从零到一落地接口自动化测试?

集五福+微信红包+大转盘 从零到一完成国民级项目测试实战

从零到一学习Flutter——布局

❤️ 爆肝二十万字《Java从零到精通教程》,贴心保姆教你从零变大佬 ❤️(建议收藏),学不会找我!