一篇文章带你配置个人linux深度学习服务器

内容较长建议先码后看,文章最后提供可下载的pdf版本。

最近这两天重装了一下系统,安装了我个人必要常用的软件,才了不少坑,在此记录一下,希望能给有需要的朋友一点帮助。

目前配置环境内容为(随后在使用中添加, 有大佬有ubuntu宝藏软件或者其他的技巧,希望各位大佬不吝赐教):

ubuntu18.04
nvidia driver 440.33.01
cuda 10.2
cudnn 7.6.5.32
anaconda3-20.07

gcc
g++
make

pip与anaconda源更换

pytorch1.6
pycharm2020.2.3
vscode
chrome浏览器
typora markdown编辑器
福昕pdf阅读器
网易云音乐
electronic-wechet
百度网盘



frp反向代理,给自己的电脑配置公网ip

1. ubuntu18.04

系统iso文件下载地址://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/

在下载的时候,我刚开始选择了18.04.5,但是在拨号上网的时候,发现网速总是特别的慢,而且总是掉线,搞不定,后来选用了18.04.1安装之后就正常了,这里记录一下安装的过程。

1.1 利用UltraISO制作启动盘(在另一台windows上)

需要一个空u盘,4g以上就够

在上面提供的网址下载ISo镜像之后,下载UltraISO软件(这里在windows上制作启动盘),下载网址://www.ultraiso.com/download.html

安装之后点击试用(直接试用就行,不用购买)

  1. 打开iso文件(文件->打开,选中下载的iso文件即可)

1.png

  1. 选中u盘

2.png

  1. 启动–>写入硬盘映像

3.png

  1. 便捷启动–>写入新的启动器引导扇区–>syslinux

  2. 点击写入等待完成

1.2 安装ubuntu18.04

  1. 开机进入BIOS,然后选择u盘启动方式
  2. 点击Install Ubuntu(选择英文还是中文版本的系统)

8.jpg

  1. 选择英文或者中文版本的键盘布局

9.jpg

  1. 选择最小化安装

11.jpg

  1. 选择安装方式,我这里选择自行设置分区,我只分出了swap/这两个,也可以参考一些博客上的分区方案。

    这里也可以选择,清楚硬盘,直接安装,不用自行设置分区,简单操作。

12.jpg

1.3 ubuntu18.04拨号上网

我之前下载的是ubuntu18.04.5,网络链接一直有问题,连接不上,或者速度特别慢,这里下载ubuntu18.04.1正常。

  1. /usr/share/applications 找到Network connections

13.jpg

  1. 打开Network Connections,点击左下角的 +

14.jpg

  1. 选择DSL/PPPoE(拨号上网)

16.jpg

  1. 输入用户名与密码

连接名称(connect name)随意起一个。

20.jpg

然后在General中勾选自动连接,在IPV6设置中点击忽略,禁用ipv6,否则可能会出现经常掉线的问题。

19.jpg

最后由于ubuntu18中,有线链接与拨号链接冲突,因此需要关掉有线链接。

将有线链接中的自动链接勾选掉。关闭有线连接即可。

17.jpg

2. nvidia driver 440.33.01

驱动下载地址://developer.nvidia.com/cuda-toolkit-archive

2.1 禁用nouveau

  1. 创建文件:
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
  1. 插入以下内容:
blacklist nouveau
options nouveau modeset=0

执行以下命令使禁用生效并且重启:

sudo update-initramfs -u
sudo reboot

重启后可以验证是否生效:

lsmod | grep nouveau

若没有输出,则禁用生效.

2.2 驱动安装

安装使用如下两条命令:

**需要注意:**可能网上有教程说需要–no-opengl-files参数,其实这个参数有时候加上会出现循环登录,有时候不加上会出现循环登录。安装完成利用显卡运行程序的时候会出现屏幕刷新率很低,一卡一卡的,可能也是这个参数的锅,加与不加这个参数试着来呗。

chmod +x NVIDIA.run(这里是你下载的run file文件的名字) 
sudo sh NVIDIA.run(下载的runfile文件的名字)

在安装的时候可能会报没有gcc与make的错误。需要先安装gcc与make

sudo apt install gcc
sudo apt install make

安装完成后输入:

nvidia-smi

3. cuda 10.2与cudnn7.6.5.32

3.1 安装cuda10.2

cuda run file下载地址://developer.nvidia.com/cuda-toolkit-archive

sudo chmod +x cuda_10.2.89_440.33.01_linux.run

sh cuda_10.2.89_440.33.01_linux.run

# accept

然后会出现这样的东西。

CUDA Installer

-[X] driver
-[X]CUDA ToolKit
-[X]CUDA Samples
-[X]CUDA Demo Suit
-[X]CUDA Documentation
Options
Install

由于之前已经安装过显卡驱动, 这里选中driver,点击回车将X号去掉, 然后选择Install回车即可正常安装。

3.2 安装cudnn

下载地址://developer.nvidia.com/rdp/cudnn-archive

下载完成后,选择对应的版本,然后运行如下的命令:

# 解压下载的文件
tar -zxvf cudnn.tgz
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64/
sudo cp  cuda/include/cudnn.h /usr/local/cuda-10.2/include/

# 为所有用户设置读取权限
sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.h 
sudo chmod a+r /usr/local/cuda-10.2/lib64/libcudnn*

4. anaconda3-2020.07

anaconda下载地址://repo.anaconda.com/archive/

下载之后直接运行对应的Anaconda.sh即可

sh Anaconda3-2020.07-linux-x86_64.sh

# 最后一个选项是否进行conda init选择no
# 然后关掉这个终端,选择另外一个终端进行conda list的测试

5. pip与anaconda源更换

将anaconda与pip的源更换为清华源,提高下载包的速度。

5.1 anaconda更换为清华源

在终端中输入以下的命令

conda config --add channels //mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels //mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels //mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels //mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels //mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels //mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels //mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes 

测试是否修改源成功

conda config --show channels

5.2 pip更换为清华源

# 建立文件夹
mkdir ~/.pip

cd ~/.pip

# 创建pip.conf文件
touch pip.conf

sudo gedit ~/.pip/pip.conf

在对应的文件中添加下面的内容,修改为清华源

[global]
index-url = //pypi.tuna.tsinghua.edu.cn/simple/ 
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

输入以下的内容,查看是否更新成功

pip config list

6. pytorch1.6

利用conda安装pytorch1.6,官方网址://pytorch.org/

conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.2 -c pytorch

7. pycharm2020.2.3

7.1 使用二进制文件安装

下载地址://www.jetbrains.com/zh-cn/pycharm/download/#section=linux

下载完成之后解压,在bin文件夹下有Pycharm.sh的文件,运行这个可执行文件。

cd bin/
sh pycharm.sh

然后激活之后,随便新建一个工程。然后在tools中Create desktop entry,然后就可以在系统中搜索到pycharm,打开之后固定到收藏夹即可。

7.2 使用snap安装

直接使用snap安装,更简单

sudo snap install [pycharm-professional] --classic

8. vscode

下载地址://code.visualstudio.com/docs/?dv=linux64_deb

下载deb文件之后,直接运行如下的命令安装(###下载的文件名字)

sudo dpkg -i ###.deb

9. chrome浏览器

下载地址://www.google.cn/chrome/

下载deb文件之后,直接运行如下的命令安装(###下载的文件名字)

sudo dpkg -i ###.deb

10. typora markdown编辑器

10.1 命令行安装

# or use
# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
wget -qO - //typora.io/linux/public-key.asc | sudo apt-key add -

# add Typora's repository
echo -e "\ndeb //typora.io/linux ./" | sudo tee -a /etc/apt/sources.list
sudo apt-get update

# install typora
sudo apt-get install typora

10.2 deb文件安装

在如下的地址中选择一个合适的版本。
//typora.io/windows/dev_release.html
可以直接点击下载,

也可以使用链接,下载网址一般为//typora.io/linux/typora_${version}_amd64.deb

11. 福昕pdf阅读器

下载地址://www.foxitsoftware.cn/downloads/

4.png

点击图标,一定是图标(不能是高速下载这四个字)。然后在弹出的窗口中选择linux 64bit下载

5.png

下载run file之后,直接运行这个可执行文件,即可安装

12. 网易云音乐

//d1.music.126.net/dmusic/netease-cloud-music_1.2.1_amd64_ubuntu_20190428.deb

下载deb文件之后,直接运行如下的命令安装(###下载的文件名字)

sudo dpkg -i ###.deb

13. electronic-wechat

如下为github链接: //github.com/geeeeeeeeek/electronic-wechat

下载安装这个软件最无脑的操作就是,直接在ubuntu软件商店中,直接搜索下载

6.png

14. 百度网盘

//pan.baidu.com/download

7.png

下载deb文件之后,直接运行如下的命令安装(###下载的文件名字)

sudo dpkg -i ###.deb

15 反向代理公网ip

远程访问管理服务器需要一个公网的IP frp是一款好用内网穿透工具,FRP 全名:Fast Reverse Proxy。FRP 是一个使用 Go 语言开发的高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务。FRP 支持 TCP、UDP、HTTP、HTTPS等协议类型,并且支持 Web 服务根据域名进行路由转发。

15.1 下载frp

//github.com/fatedier/frp/releases

下载之后解压。frps与frps.ini是外网服务器端要使用的文件 frpc与frpc.ini是内网主机要使用的文件

15.2 公网服务器端

修改配置文件 $ vi frps.ini,如下:

[common]
bind_port = 7000  #frp服务端端口

配置很简单,然后启动:

nohup ./frps -c frps.ini &

15.3 内网服务器端

修改配置文件 $ vi frpc.ini,如下:

[common]
server_addr = 0.0.0.0   #frp服务端地址,可以填ip或者域名,这里假设为0.0.0.0
server_port = 7000      #frp服务端端口,即填写服务端配置中的 bind_port

[ssh1]
type = tcp              #连接类型,填tcp或udp
local_ip = 127.0.0.1    #填127.0.0.1或内网ip都可以
local_port = 22         #需要转发到的端口,ssh端口是22
remote_port = 5000      #frp服务端的远程监听端口,即你访问服务端的remote_port就相当于访问客户端的 local_port,如果填0则会随机分配一个端口

[tensorboard1]
type = tcp              #连接类型,填tcp或udp
local_ip = 127.0.0.1    #填127.0.0.1或内网ip都可以
local_port = 6006        #需要转发到的端口, tensorboard 端口为6006
remote_port = 5001     #frp服务端的远程监听端口,即你访问服务端的remote_port就相当于访问客户端的 local_port,如果填0则会随机分配一个端口


[jupyter1]
type = tcp              #连接类型,填tcp或udp
local_ip = 127.0.0.1    #填127.0.0.1或内网ip都可以
local_port = 8888        #需要转发到的端口,jupyter端口是8888
remote_port = 5002     #frp服务端的远程监听端口,即你访问服务端的remote_port就相当于访问客户端的 local_port,如果填0则会随机分配一个端口

启动客户端程序:

$ nohup ./frpc -c frpc.ini &

pdf版本的文章请移步github自取:pdf文章地址