實驗室服務器環境搭建

準備工作:4G以上U盤一個,linux系統鏡像iso,其中Ubuntu推薦安裝長期支持版(LTS),centos推薦6.5或7這裏採用的是7.
製作啓動U盤:製作linux啓動盤的軟件很多,這裏強烈推薦使用rufus這個小工具。主要這個對centos和Windows都很好的支持,像universal usb installers這個Ubuntu官網推薦的工具對centos的支持就不是很好,製作的啓動盤不能直接啓動,需要有些修改。

1. 開始製作啓動盤


打開rufus軟件並按照下圖所示進行操作等待制作完畢即可。

2. 安裝系統


U盤插入電腦,開機選擇U盤啓動(這裏一般會出現兩個,一個是UEFI,一個是legacy,選擇UEFI進去畫面會清晰很多),進入install選項開始安裝。後面的安裝都是設置一些東西比較傻瓜式,記得不要勾選安裝第三方軟件,要不安裝速度很慢。在分區這一步驟中選擇something else,後面手動分區。分區記得home目錄要大一點,所有的用戶主目錄都在這裏。還有就是 /usr/local/ /tmp swap等,最後還得給boot設置一個分區,這樣以後啓動項丟失了還能找的回來。具體的分區方案可以參考百度谷歌別人的建議。對於Ubuntu在選擇地區這裏建議拔掉網線,有時候會因爲這個原因卡死。

3. 配置軟件源


!!!謹記不同版本的Ubuntu或者centos軟件源是有點不一樣的,一定要配置對應版本號的軟件源。之所以配置軟件源是因爲默認的軟件源服務器一般在國外,訪問速度較慢。

3.1 Ubuntu 14.04配置軟件源

sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup
sudo gedit /etc/apt/sources.list
在sources.list中增加以下內容
#education ipv6 source
deb http://mirrors6.ustc.edu.cn/ubuntu/ trusty main multiverse restricted universe
deb http://mirrors6.ustc.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe
deb http://mirrors6.ustc.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe
deb http://mirrors6.ustc.edu.cn/ubuntu/ trusty-security main multiverse restricted universe
deb http://mirrors6.ustc.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe
deb-src http://mirrors6.ustc.edu.cn/ubuntu/ trusty main multiverse restricted universe
deb-src http://mirrors6.ustc.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe
deb-src http://mirrors6.ustc.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe
deb-src http://mirrors6.ustc.edu.cn/ubuntu/ trusty-security main multiverse restricted universe
deb-src http://mirrors6.ustc.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
-----------------------------------------------------------------------------------------------
#更新軟件源
sudo apt-get update

3.2 Centos 7配置軟件源

sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo //阿里雲的鏡像,資源還是比較多的
yum clean all
yum makecache//生成緩存即可
還有一些比較好用的國內源
網易163:http://mirrors.163.com/.help/centos.html
華中科技大學:http://mirrors.hust.edu.cn/help.html#centos
浙江大學:http://mirrors.lifetoy.org/
------------------------------------------------------------------------------
添加RHEL源和一些國外源
yum localinstall http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm -y

有時候可能出現404錯誤,這是因爲這個有更新了,打開地址搜索epel-release找到對應的地址替換即可。

#最後生成緩存即可:
yum clean all
yum makecache

3.3 配置python的pip源

pip是一個python包安裝工具,首先安裝pip和python的一些庫

yum install python-dev python-pip           // centos
apt-get install python-dev python-pip       //Ubuntu

默認的pip源也是速度超級慢,這裏我們配置爲豆瓣或者清華的源。centos和Ubuntu的配置是一樣的。
首先我們切換到root用戶。

su
mkdir ~/.pip
gedit ~/.pip/pip.conf  //對於centos可以用vim ~/.pip/pip.conf, 可通過sudo yum install vim 安裝vim
#輸入以下內容
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn

上面僅僅是修改了pip install安裝時候的默認源,觀察發現在使用setup.py的時候依然是使用的pypi.python.org,這裏需要修改distutils的配置。同上切換到root。

vim ~/.pydistutils.cfg
輸入:
[easy_install]
index_url = https://pypi.tuna.tsinghua.edu.cn/simple

這樣以後安裝的時候都是通過清華的鏡像源,速度比較快。

4. 安裝gcc, gcc-c++, cmake


yum install gcc
yum install gcc-c++
#去cmake官網下載源碼包編譯安裝
比如我這裏下載的是
cmake-3.5.2.tar.gz
tar xzvf cmake-3.5.2.tar.gz
cd cmake-3.5.2
sudo ./bootstrap
sudo gmake
sudo make install
#驗證安裝
cmake -version

5. 配置ssh和添加用戶


5.1 Ubuntu 安裝ssh server

sudo apt-get install openssh-server
sudo ps -e |grep ssh   //查看ssh服務是否啓動成功
sudo service ssh start  //啓動ssh服務
# 修改配置文件,設置root用戶可以登入
sudo gedit /etc/ssh/sshd_config
註釋掉下面這行語句:
# PermitRootLogin without-password
並加入語句:
PermitRootLogin yes
重啓ssh服務:
sudo service ssh restart
設置ssh服務開機自啓動:
打開/etc/rc.local文件,在exit 0語句前加入:
/etc/init.d/ssh start

5.2 centos設置ssh server

centos默認已經安裝了ssh server
開啓ssh服務:
service sshd start
設置ssh開機啓動:
chkconfig sshd on

5.3 添加用戶

Ubuntu和centos有點差別
useradd 對於ubuntu只會創建用戶不會在home目錄下生成對應的用戶文件。
這裏採用adduser
修改用戶密碼
sudo passwd user

6. 用戶主目錄分區掛載


對於每一個新建的用戶,在/Home下會有對應的用戶文件夾,考慮到數據的安全和可移植性,這裏我們希望可以將用戶目錄掛載到系統盤外的盤上。

6.1 利用parted對電腦其他盤進行分區和掛載到用戶目錄

首先需要對系統盤外的盤進行分區並格式化,利用fdisk -l查看電腦磁盤分佈。這裏我將5T的盤分成5個分區,對應的盤符是sdd

parted /dev/sdd
mklabel
輸入gpt
mkpart
輸入起始位置和結束位置
!!!上面的操作都是不可逆的
q退出
mkfs.ext4 /dev/xx

6.2 開始掛載分區

vim /etc/fstab
# 前面是對應的磁盤和要掛載到的地方,後面是文件系統等等。
   /dev/sdd1 /home/qiudan   ext4    defaults0   0
   /dev/sdd1 /home/qiudan   ext4    defaults0   0
   /dev/sdd1 /home/qiudan   ext4    defaults0   0
   /dev/sdd1 /home/qiudan   ext4    defaults0   0
   /dev/sdd1 /home/qiudan   ext4    defaults0   0
#查看fstab配置時候正確
   mount –a
   df -h
   如果正確的話可以看到分區被正確掛載到對應的目錄,下面把目錄權限給對應的用戶:
   sudo chown -R xx:xx xx

這個時候切換到對應的用戶會發現終端沒有顯示用戶名,這是因爲我們掛載的分區缺少一些用戶文件,可以通過拷貝獲得,並記得授權權限。

sudo cp –R /etc/skel/. /home/xxx
sudo chown xx:xx  home/xx/.bash*

7. 配置 ftp


sudo apt-get install vsftpd
vim /etc/vsftpd.conf
anonymous_enable=Yes
sudo mkdir /srv/files/ftp //希望的ftp文件夾位置
sudo usermod -d /srv/files/ftp ftp //修改ftp文件夾位置配置
sudo restart vsftpd//重啓ftp

8. 安裝CUDA, cudNNs


沒必要提前安裝nvidia顯卡驅動,cuda裏面已經帶了,可以在安裝CUDA的時候勾選安裝驅動選項即可

a.禁用自帶的顯卡驅動:
  Vim /etc/modprobe.d/blacklist.conf
   輸入以下內容:
    blacklist nouveau
    options nouveau modeset=0
   -------------------------------------------------
    更新內核啓動參數:
    sudo update-initramfs -u        //Ubuntu
    sudo dracut --force             //Centos

b.關閉圖形界面
  其中Ubuntu可以參考[1](http://blog.csdn.net/a1311543690/article/details/48861237)
  centos 7圖形和命令提示符界面切換:
  systemctl set-default multi-user.target //命令提示符
  systemctl set-default graphical.target  //圖形界面
c.重啓開始安裝cuda(這裏我們選擇的是.run file進行安裝的)
  查看gcc時候安裝
  gcc --version
  如果沒安裝需要手動安裝之!
  sudo ./cuda_7.5.18_linux.run  --no-opengl-libs (不要安裝opengl這會覆蓋cpu中集成顯卡的opengl庫導致裝完進不了圖形界面)
首先driver是肯定要安裝的,tookit也是要安裝的,sample可選,建議安裝下,路徑的除了sample都用默認的即/usr/local/cuda

安裝中按ctrl+c可以跳過長長的閱讀協議部分。安裝完畢,設置開啓圖形界面重啓ok

d.安裝cudNN( 這裏需要注意,最新版本的可能會不兼容caffe,本文采用cudnn4)
    下載x64位的cudnn壓縮包。
    tar xvzf cudnn-7.0-linux-x64-v4.0-prod.tgz
    sudo cp cuda/include/cudnn.h /usr/local/cuda/include
    sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
    拷貝完這些文件後還需要注意,重新生成鏈接文件並賦予對應的權限。
    cd /usr/local/cuda/lib64
    rm -rf libcudnn.so libcudnn.so.4   //刪除原來的鏈接
    chmod u=rwx,g=rx,o=rx libcudnn.so.4.0.7 //對目標文件放開權限
    ln -s libcudnn.so.4.0.7 libcudnn.so.4  //設置鏈接
    ln -s libcudnn.so.4.0.7 libcudnn.so   //同上
e.配置cuda的環境變量:
    PATH變量:
    vim /etc/profile
    輸入下面內容:
    PATH=/usr/local/cuda/bin:$PATH
    export PATH
    更新環境變量:
    source /etc/profile
    lib變量:
    cd /etc/ld.so.conf.d/
    vim cuda.conf
    輸入下面內容:
    /usr/local/cuda/lib64
    更新環境變量:
    sudo ldconfig

9. 安裝FFmpeg


----安裝一些依賴庫---------------
#安裝彙編指令集yasm(必須)
sudo yum install yasm

#安裝libass(可選)
sudo yum install libass-devel libav*

#安裝H.264編碼器 (可選)
從 http://www.videolan.org/developers/x264.html 下載源碼包
#解壓源碼包
tar -xjvf /path/to/x264-snapshot-20080805-2245.tar.bz2
#開始configure並安裝H.264
cd /path/to/x264-dir
./configure --enable-shared
make -j8
sudo make install

上述安裝完畢後還需配置x264的lib到系統path變量,否則運行ffmpeg會出現 error while loading shared libraries: libavdevice.so.52: cannot open shared object file: No such file or directory

#配置x264
sudo vim /etc/ld.so.conf.d/custom-libs.conf
# 添加/usr/local/lib 到系統的lib索引
/usr/local/lib
# update to make it work
sudo ldconfig
sudo updatedb

---開始安裝FFmpeg----------
#下載FFmpeg源碼包
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
#configure
cd FFmpeg-master
sudo ./configure --enable-libass --enable-libx264 --enable-gpl --enable-shared --prefix=/usr/local/ffmpeg

上述命令按照需要修改,如果沒安裝libass和x264則不要enable否則會出錯

#開始make
make -j8
sudo make install  //因爲安裝到的路徑是 /usr/local/ 需要root權限

#配置FFmpeg的lib庫
sudo vim /etc/ld.so.conf.d/ffmpeg.conf
#輸入以下內容:
/usr/local/ffmpeg/lib/   // /usr/local/ 和上面configure設置的路徑要一致
#保存並使之生效
sudo ldconfig
#設置ffmpeg的path變量
sudo vim /etc/profile/
export PATH=/usr/local/ffmpeg/bin/:$PATH
#添加路徑到PKG_CONFIG_PATH
sudo yum install pkgconfig.x86_64  //可能未安裝PKG_CONFIG_PATH
sudo vim /etc/profile/
export PKG_CONFIG_PATH=/usr/local/ffmpeg/lib/pkgconfig:$PKG_CONFIG_PATH
#保存並生效,更新db
source /etc/profile
sudo updatedb   //有時候添加到了環境變量不生效,但是又不能重啓,執行該條命令很有效。

#查看ffmpeg版本
ffmpeg -version
#比如我這臺電腦如下:
---------------------------------------------------------------------------
[zhengbo@mediaszu ~]$ ffmpeg -version
ffmpeg version 3.0.git Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
configuration: --enable-shared --prefix=/usr/local/ffmpeg
libavutil      55. 28.100 / 55. 28.100
libavcodec     57. 48.102 / 57. 48.102
libavformat    57. 41.100 / 57. 41.100
libavdevice    57.  0.102 / 57.  0.102
libavfilter     6. 47.100 /  6. 47.100
libswscale      4.  1.100 /  4.  1.100
libswresample   2.  1.100 /  2.  1.100
------------------------------------------------------------------------------

10. 源碼編譯安裝opencv 2.4.xx


在正式安裝opencv之前需要安裝一些依賴包,下面是官網給出的指南:

    # GCC和ffmpeg還有pkg-config,python-dev前面已經安裝
    sudo yum install gtk2 gtk2-devel gtk2-devel-docs
    sudo pip install numpy
    sudo yum insatll libjpg-devel libpng-devel libtiff-devel libjasper-devel

下載opencv的源碼包,比如我下載的是opencv-2.4.13.zip

#解壓源碼包
unzip opencv-2.4.13.zip -d ~/
#進入源碼包
cd ~/opecv-2.4.13
mkdir release
cd release
#開始設置cmake
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..   //注意後面有兩個點
#等待片刻後可以看到生成了Makefile,下面開始make,可以開啓多線程
make -j8
#開始安裝
sudo make install
#因爲上面的安裝路徑設置的是"/usr/local/",故此path不需要額外配置環境變量。
#下面配置lib變量和註冊下包的信息
sudo vim /etc/ld.so.conf.d/custom-libs.conf   //名字任意
# 添加/usr/local/lib 到系統的lib索引,如果之前有添加過則不用
/usr/local/lib
# update to make it work
sudo ldconfig
sudo updatedb
#配置PKG_CONFIG_PATH
sudo vim /etc/profile
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
#保存後source,更新db
source /etc/profile
sudo updatedb
#查看opencv版本信息
pkg-config --modversion opencv
#比如我的出現下面
2.4.13

下面繼續配置opencv的python接口,參考官網,由於我們opencv採用的是源碼安裝,所以只需要將一些文件拷貝到python包下即可。

#方法1,拷貝文件
sudo cp /usr/local/lib/python2.7/site-packages/cv2.so /usr/lib/python2.7/site-packages
#方法2,添加路徑到PATH
sudo vim /etc/profile
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
source /etc/profile
#測試接口
python
import cv2
print cv2.__version__

11. 安裝tensorflow


方法1.源碼安裝 –>主要針對cundnn5需要源碼安裝,官方編譯好的並不支持cudnn5

a. 安裝Bazel,這裏我們選擇源碼安裝
安裝之前需要先配置JAVA的環境變量,因爲系統默認安裝的是openjdk並沒有配置JAVA_HOME
這裏我選擇先刪除系統自帶的openjdk,安裝官方的JDK8
#查詢系統自帶的jdk有哪些
    rpm -qa | grep jdk
#開始刪除
    sudo yum remove name //name是上面查出的包的名字,可以用通配符匹配刪除所有的
#安裝Oracle JDK8
#http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
#選擇linux 64位的tar.gz包,比如這裏我下載的是'jdk-8u91-linux-x64.tar.gz'
#解壓所,建議放到/usr/local
   tar tar zxvf jdk*.tar.gz -C /usr/local/

#配置環境變量,注意文件夾名字
  sudo vim /etc/profile
  #set java environment
  export JAVA_HOME=/usr/local/jdk1.8.0_60   
  export JRE_HOME=/usr/local/jdk1.8.0_60/jre  
  export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH   
  export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
#更新
  source /etc/profile
#驗證
  java -version
#下載bazel源碼包
  git clone https://github.com/bazelbuild/bazel.git
  cd bazel
  ./compile.sh
#等待幾分鐘後完畢,生成一個bazel的可執行文件
  sudo cp ~/bazel-master/output/bazel /usr/local/bin
b.下載tensorflow源碼包
    git clone https://github.com/tensorflow/tensorflow
    cd tensorflow-master
    ./configure

如下圖:

這裏我們直接回車即可,沒必要像上圖單獨指定,採用default即可。

c.build 源碼包並生成pip安裝包
  bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
  上述命令需要下載,需等待片刻
  #生成 pip安裝包
  bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
  #pip安裝tensorflow
  sudo pip install /tmp/tensorflow_pkg/tensorflow-0.9.0-py2-none-any.whl

d. 測試安裝
 cd tensorflow-master/models/image/mnist
 python convolutional.py
 #出現下面界面說明安裝成功
 Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
 Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
 Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
 Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
 Extracting data/train-images-idx3-ubyte.gz
 Extracting data/train-labels-idx1-ubyte.gz
 Extracting data/t10k-images-idx3-ubyte.gz
 Extracting data/t10k-labels-idx1-ubyte.gz
 Initialized!
 Epoch 0.00
 Minibatch loss: 12.054, learning rate: 0.010000
 Minibatch error: 90.6%
 Validation error: 84.6%
 Epoch 0.12
 Minibatch loss: 3.285, learning rate: 0.010000
 Minibatch error: 6.2%
 Validation error: 7.0%
 ....

方法2. 通過pip安裝官方已經編譯好的文件

a.下載whl
    下載官方編譯好的python安裝包
    地址[1](https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl)
    地址[2](https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl)
    地址1僅僅支持cpu,這裏我們選擇支持GPU的地址2

b.開始安裝
    pip install --upgrade tensorflow-0.9.0-cp27-none-linux_x86_64.whl
    #上述命令會安裝python的一些其他包
    numpy, protobuf, wheel, setuptools
    如果中間有安裝失敗的包,自己手動安裝即可。

這裏需要注意的是,如果python當前採用的是Anaconda python,那麼在安裝setuptools的時候有可能出現 Cannot remove entries from nonexistent file, 這其實是Anaconda的一個bug,主要原因是關於setuptools的一個文件不存在。解決方法如下

c.Anaconda python 升級setuptools
  去pypi官網 https://pypi.python.org/pypi/setuptools#using-setuptools-and-easyinstall
  下載ez_setup.py
  python ez_setup.py

等待片刻成功安裝setuptools最新版,並不報錯,再執行命令安裝tensorflow即可!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章