一篇文章帶你配置個人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文章地址