【记录】使用ssh在Ubuntu Server上配置环境

在服务器上配置深度学习环境

预备:

刚刚在服务器上配置好的Ubuntu系统,还能直接使用ssh进行远程登陆。使用命令

sudo apt-get install openshh-server

如果速度很慢,可以先换源。

sudo nano /etc/apt/sources.list

把里面的全删了,粘贴上其他的源,例如清华源:

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse

使用命令更新源:

sudo apt-get update

安装完成后,输入:

ps -e |grep ssh

如果有sshd,说明ssh服务已经启动,如果没有启动,输入下面的命令来启动ssh服务:

service ssh start

查看ip地址:

ifconfig

【记录】使用ssh在Ubuntu Server上配置环境_第1张图片

创建用户:

在另一台电脑上(比如自己的电脑)使用ssh命令连接:

ssh 用户名@IP地址

再输入密码即可连接成功。

【记录】使用ssh在Ubuntu Server上配置环境_第2张图片

因为服务器是多人使用的,所以需要创建账号,来分给不同的用户使用。

使用权限,创建用户:

sudo adduser 用户名
Enter new UNIX password: 输入密码
Enter new UNIX password: 重复输入密码
个人信息可以回车跳过,最后Yes确认即可。

【记录】使用ssh在Ubuntu Server上配置环境_第3张图片

用户信息会储存在/etc/passwd里,可以用cat命令来查看:

cat /etc/passwd

这个文件的内容非常规律,每行代表一个用户。Linux系统默认会有很多系统用户,系统用户是不能登陆系统的,也不能被删除,因为一旦被删除,以来这些用户运行的服务或程序就不能正常执行,会导致系统问题。

每一行用“:”作为分隔符,划分为7个字段:

用户名称:x:UID:GID:用户说明:家目录:登陆后的Shell
  • 第一个字段是用户名称,即登陆时使用的用户名

  • 第二个字段是x代表的是密码标志,并不是真正的密码,真正的密码是保存在/etc/shadow 文件中的。

  • 第三个字段是UID即为 User ID,系统上通过UID来识别不同的用户和分配用户权限的。这些UID是有使用限制和要求的:

    0:超级用户 UID 。如果用户 UID 为 0,则代表这个账号是管理员账号。在 Linux 中如何把普通用户升级成管理员呢?只需把其他用户的 UID 修改为 0 就可以了,这一点和 Windows 是不同的。不过不建议建立多个管理员账号。

    1~499:系统用户(伪用户)。系统用户(伪用户)UID。这些 UID 是系统保留给系统用户的 UID,也就是说 UID 是 1~499 范围内的用户是不能登录系统的,而是用来运行系统或服务的。其中,1~99 是系统保留的账号,系统自动创建;100~499 是预留给用户创建账号的。

    500~65535:普通用户 UID。建立的普通用户 UID 从 500 开始,最大到 65535。

  • 第四个字段是GID是用户的组ID,也就是这个用户得出十足的标志号。这里需要解释一下初始组和附加组的概念。

    • 所谓初始组,指用户一登陆录就立刻拥有这个用户组的相关权限。每个用户的初始组只能有一个,一般就是将和这个用户的用户名相同的组名作为这个用户的初始组。举例来说,我们手工添加用户 lamp,在建立用户 lamp 的同时就会建立 lamp 组作为 lamp 用户的初始组。
    • 所谓附加组,指用户可以加入多个其他的用户组,并拥有这些组的权限。每个用户只能有一个初始组,除初始组要把用户再加入其他的用户组外,这些用户组就是这个用户的附加组。附加组可以有多个,而且用户可以有这些附加组的权限。
  • 第五个字段是这个用户的简单说明,没有什么特殊作用,可以不写。

  • 第六个字段是这个用户的家目录,也就是用户登录后有操作权限的访问目录,我们把这个目录称为用户的家目录。

  • 第七个字段是登录之后的Shell,Shell 就是 Linux 的命令解释器。管理员输入的密码都是 ASCII 码,也就是类似 abcd 的英文。但是系统可以识别的编码是类似 0101 的机器语言。Shell 的作用就是把 ASCII 编码的命令翻译成系统可以识别的机器语言,同时把系统的执行结果翻译为用户可以识别的 ASCII 编码。Linux 的标准 Shell 就是 /bin/bash。

【记录】使用ssh在Ubuntu Server上配置环境_第4张图片

可以看见刚刚创建的这个账号,但是拥有管理员权限的jmuaia002账号却是在第一行。

安装显卡:

在安装显卡前要说一下scp的用法。

由于在服务器上下载想要的安装包并不怎么方便,我们可以在自己的电脑上下载好所需要的文件, 然后scp命令把文件上传到服务器上。

scp 本地文件路径 用户名@IP地址

(如果安装的是有界面版需要添加下面这步来禁用显卡)

vim /etc/modprobe.d/blacklist.conf
# 在最下方添加 blacklist nouveau 
# 屏蔽 nouveau 并更新内核,修改系统设置需要sudo权限
sudo update-initramfs -u
# 按 Ctrl + Alt + F1 进入命令行界面,执行下面语句关闭X Server,需要sudo权限
sudo /etc/init.d/lightdm stop

先在管理员用户下装英伟达显卡。因为是在服务器上,所以可以省略关闭图形界面的这步。因为CUDA的安装包里附带了英伟达显卡的安装程序,因此直接运行cuda10即可。

./cuda_10.0.130_410.48_linux.run

【记录】使用ssh在Ubuntu Server上配置环境_第5张图片

  • Do you accept the previously read EULA? (询问是否接受条款)accept
  • Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?(询问是否安装英伟达显卡)yes
  • 后面的我们都暂时不需要,全部选no既可。

其次再用sudo命令安装几个常用的必备应用,例如 vim,screen等。

配置环境:

用exit退出管理员账号,然后再用shh登陆新创建的用户。

【记录】使用ssh在Ubuntu Server上配置环境_第6张图片

输入pwd,可以查看当前在/home/下的一个由用户名命名的文件夹里,这就是我们的家目录,目录外的文件我们是没有操作权限的。目录里暂时还一个文件都没有。创建downloads和local文件夹,分别用来存放安装包和作为文件安装目录。

使用scp将安装包们上传到downloads文件夹里。

scp F:/Downloads/* [email protected]:downloads

如果没有运行权限,则使用chmod命令来给文件添加权限。

【记录】使用ssh在Ubuntu Server上配置环境_第7张图片

chmod 权限 文件

a表示所有用户,x表示执行权限,w表示写权限,r表示读权限。

a+x 就表示给用户赋予执行权限。

也可以用数字来赋权,例如,使用

chmod 777 文件

表示给文件赋予所有权限。

【记录】使用ssh在Ubuntu Server上配置环境_第8张图片

安装cuda8 9 10的工具包

因为我们已经在管理员目录里安装过显卡,所以在这里我们不需要安装显卡,只需要在Install the CUDA 8.0 Toolkit?这句选择yes来安装工具包,其他都选择no。

【记录】使用ssh在Ubuntu Server上配置环境_第9张图片

选择安装Toolkit后,会提示输入安装路径,一定要输入到自己家目录里的安装位置的绝对路径。例如我想把cuda8.0的工具包安装在家目录下的Local文件夹里的Cuda8.0里,就把路径选为:

/home/jcfszxc/local/cuda8.0

【记录】使用ssh在Ubuntu Server上配置环境_第10张图片

同理,安装好cuda9 和cuda10的工具包。安装完成后,因为nvcc这个已经编译好的程序只存在于“local/cuda/bin/”的目录下,并不是全局目录中,如果我们要让我们的程序能够在全局调用得到我们的cuda,我们需要将cuda加入到环境变量里面,因此,而在我们的主文件夹(Home)下,有一个环境变量 的配置文件.bashrc。使用vim编辑器去添加环境变量。

【记录】使用ssh在Ubuntu Server上配置环境_第11张图片

# added by cuda8.0
export PATH=~/local/cuda8.0/bin:$PATH
export LD_LIBRARY_PATH=~/local/cuda8.0/lib64:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=~/local/cuda8.0/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=~/local/cuda8.0/include:$CPLUS_INCLUDE_PATH

顺序很重要, 最后使用的cuda工具包是排在最后的那个,例如这样子排序就是cuda10.

刷新环境变量,并查看版本。

【记录】使用ssh在Ubuntu Server上配置环境_第12张图片

配置Cudnn

配置Cudnn的步骤很简单,也就是把cudnn的头文件和库文件都拷贝到cuda安装文件夹里面就好了。但是要注意版本搭配, 各个工具之间的版本搭配非常严格, 如果版本之间的搭配出现了错误,就极有可能报错。

tar zxvf cudnn-9.0-linux-x64-v7.tgz # 解压,生产的文件夹叫cuda,最后cp(拷贝)完后这个文件夹就可以删掉了
cp cuda/include/cudnn.h ../local/cuda9.0/include/
cp -r cuda/lib64/* ../local/cuda9.0/lib64/

编译cmake

tar -zxvf cmake-3.12.0.tar.gz
cd cmake-3.12.0
./bootstrap --prefix= 安装路径
make -j8
make install -j8

添加环境变量:

# added by cmake3.12.0
export PATH="~/local/cmake3.12.0/bin:$PATH"

编译opencv

# 编译opencv3.3
unzip opencv-3.3.0.zip
cd opencv-3.3.0 
mkdir build
cd build
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX= 安装路径 ..
# 从上面到这里
make -j8
make install -j8

添加环境变量:

# added by opencv3.3.0
export PATH=~/local/opencv3.3.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=~/local/opencv3.3.0/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export C_INCLUDE_PATH=~/local/opencv3.3.0/include${C_INCLUDE_PATH:+:${C_INCLUDE_PATH}}
export CPLUS_INCLUDE_PATH=~/local/opencv3.3.0/include${CPLUS_INCLUDE_PATH:+:${CPLUS_INCLUDE_PATH}}
export PKG_CONFIG_PATH=~/local/opencv3.3.0/lib/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}

配置好环境变量可以使用opencv_version来查看opencv的版本。

安装Anaconda

使用命令:

 sh Anaconda3-5.2.0-Linux-x86_64.sh

【记录】使用ssh在Ubuntu Server上配置环境_第13张图片

提示输入安装路径。再次提醒,一定要输入绝对路径。

安装完成后,会提示是否需要添加全局变量,选择yes后,系统会自动添加全局变量, 我们就可以省去添加变量这一繁琐的步骤了。再后面会提示是否按钻过Microsoft VSCode。暂时用不到,选no即可。

【记录】使用ssh在Ubuntu Server上配置环境_第14张图片

.bashrc 文件里也多了一行:

在这里插入图片描述

刷新环境变量:

source ~/.bashrc

给pip换源。

cd ~/ && mkdir -p .pip && cd .pip && vim pip.conf

【记录】使用ssh在Ubuntu Server上配置环境_第15张图片

粘贴信息:

[global] 
index-url=https://pypi.tuna.tsinghua.edu.cn/simple 
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn 
disable-pip-version-check = true 
timeout = 6000

保存退出。

安装tensorflow-gpu

pip install tensorflow-gpu==1.8
pip install -U h5py

完成。

你可能感兴趣的:(Ubuntu,Server,配置环境,ssh,远程连接)