服務器配置吐血總結
系統——Ubuntu16.04【非Server版本】
1.準備好一個空的U盤,將鏡像激活系統文件拷貝好以備用,
2.開啓服務器主機,用PrintScreen
鍵切換主機屏幕,按Enter
鍵便可以進入原始系統界面,如果過程中有任何卡頓,可以選擇按Ctrl+Alt+Del
進行重啓。
機櫃編號
一組是一個User,從上至下是一個Server,因此編號爲’U1S1,U1S2,U1S3…;U2S1,U2S2…….‘
2.在後續界面中,選擇one shot
和USB
模式開始從U盤進入系統裝載過程。
3.一段時間以後(大約10分鐘),就可以正常進入Ubuntu界面了,在此需要創建Root賬號【非常重要,一定要謹記用戶名和密碼】
4.至此,系統以安裝完畢,如下圖所示,代表你已經成功一半了
5.爲了能夠遠程連接ubuntu,需要配置IP和DNS,如上圖所示,點擊屏幕右上角上下箭頭的那個圖標,選擇無線網絡1或者2(Wired Connection1/2)
,在圖形化界面,分別將Address(網絡IP,並不是控制IP,一定要先確認好之後再填入)、Network(子網掩碼,255.255.255.0)、Gateway(也是分配好的,一定要事先確認好)、DNS Server(也是事先分配好的,請諮詢網絡管理員)填寫完整,並進行保存,則顯示網絡已配置成功。
6.【如果上述步驟成功,則跳到第7步】若上述步驟不成功,則需要在Terminal中進行網絡適配,在管理員用戶下,命令步驟如下:
#配置網絡
sudo vim /etc/network/interfaces
#用上述命令查看裏面的內容,按i進入編輯模式
#將下面的命令添加進去,保存退出
auto eno1
iface eno1 inet static
address 'your ip'/'Port'
gateway 'your gate way'
#重啓網絡,這樣固定IP就已經配置好了
sudo /etc/init.d/metworking restart
#配置DNS
sudo vim /etc/resolvconf/resolv.conf.d/base
#添加,並保存退出
nameserver 'your DNS'
#應用設置
sudo resolvconf -u
7.因爲Ubuntu自帶的ssh server不好用,因此爲了保證其可用,需要先卸載再安裝。所以需要安裝一個穩定的Xshell,確保ssh可用,命令如下:
// 卸載
sudo apt-get remove openssh-server
// 安裝
sudo apt-get install openssh-server
// 重啓ssh服務
sudo service ssh --full-restart
8.以上就已經成功安裝了系統並且可以遠程登陸了。
裝配好了系統,下面所有的操作就在自己個人電腦上,遠程控制了
命令:
ssh 'your username'@'your ip'
`press your passwd:` 'your password'
Install Drivers
在介紹一些安裝方法之前,我先將一些命令甩上來:
#查看系統信息
sudo lshw -C display | grep product
#系統更新
sudo apt update
sudo apt upgrade #will ask you Y/n if you want to upgrade
#以上步驟只是爲了做環境的預先準備,因爲爲了保證系統的穩定與安全,後面要對系統自動更新做禁用處理
#查看顯卡類別
lspci | grep VGA
#查看顯卡詳細信息
lspci -v -s 02:00.0
#查看硬件信息
sudo dpkg --list | grep nvidia-*
lspci | grep -i nvidia
#查看ubuntu推薦安裝的顯卡驅動類型,建議還是問公司同事或者學長學姐,需要安裝哪個版本的,如果這一步選擇錯了,就哭吧。。。
ubuntu-drivers devices
吐血的手賤黨——官方顯卡驅動安裝[新手請移步簡單安裝方法]
先是安裝了官網最新版的驅動,但是最新驅動鎖定了cuda10,而我們需要用的pytorch不支持cuda10,因此只能重新安裝cuda其他版本,如此處我安裝的是官網的410.73**[建議這樣安裝]**
推薦的原因在於:
1.官方出的會最大限度地利用顯卡資源
2.假如日後需要重新安裝其他版本的顯卡驅動,官方的只要一條uninstall命令就可以快速地卸載乾淨。前提是你將下載的“.run”的文件保存了下來,我就是因爲手賤,將安裝包刪除了,所以頭疼的要死。。。
下面我先來講講如何利用官方的顯卡驅動:
1.徹底卸載以前的驅動
#徹底卸載以前的驅動
sudo apt-get remove --purge nvidia*
sudo apt-get autoremove
sudo apt-get clean
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
2.禁止集成的nouveau驅動
Ubuntu系統集成的顯卡驅動程序是nouveau,它是第三方爲NVIDIA開發的開源驅動,我們需要先將其屏蔽才能安裝NVIDIA官方驅動。
如果我們直接安裝驅動的話,往往會報錯:ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver
將驅動添加到黑名單blacklist.conf中,但是由於該文件的屬性不允許修改。所以需要先修改文件屬性[文件屬性一般不要修改,如筆者在後面手動修改了一個文件的權限,就崩了。。。吐血。。。]
#查看屬性
sudo ls -lh /etc/modprobe.d/blacklist.conf
#修改屬性
sudo chmod 666 /etc/modprobe.d/blacklist.conf
#用vim打開
sudo vim /etc/modprobe.d/blacklist.conf
#在最後一行加入
blacklist nouveau
#執行文件內容
sudo update-initramfs -u
#重啓電腦後,運行
lsmod | grep nouveau
#若沒有輸出,證明已經屏蔽掉nouveau
3.禁用桌面服務
#執行命令,關閉桌面服務,稍後還會開啓,別慌
sudo /etc/init.d/lightdm stop
4.下載官方驅動文件
官方網址爲:https://www.geforce.com/drivers
根據自己機子的實際情況選擇,請務必選擇英文,不然後面配置會出問題:
點擊‘START SEARCH’便會得到可以使用的版本:
右擊DOWNLOAD
複製連接,在自己已連接的遠程窗口,新建一個文件夾以用來存儲這個安裝文件**[一定不要刪除,請給予它最高權限,我就是在第一次安裝的時候因爲不小心移rm掉了這個文件,只剩哭泣。。。]**
#新建文件夾
sudo mkdir 'yourfile name'
#下載驅動安裝文件
cd ->'yourfile name'
sudo wget 'your driver link'
#for example:sudo wget https://us.download.nvidia.com/XFree86/Linux-x86_64/410.73/NVIDIA-Linux-x86_64-410.73.run
5.運行.run
#給run文件賦予權限
sudo chmod a+x NVIDIA-Linux-x86_64-410.73.run
#安裝
sudo ./NVIDIA-Linux-x86_64-410.73.run --no-opengl-files
#安裝過程中會遇到
#“Would you like to run the nvidia-xconfig utility to automatically update your X configuration file……”
#切記選擇NO
#重啓電腦
shutdown -r now
#或者
reboot
#在後面的裝配過程中,出現過一個問題:shutdown或者reboot命令不可用,如果有人知道答案的話,請告知原因和修正方式
#驅動安裝成功,輸入下面命令,如有顯示,即可成功
nvidia-smi
6.卸載官方驅動
#到.run文件所在的地址
cd ->'yourfile name'
#卸載驅動
sudo chmod +x *.run
sudo ../NVIDIA-Linux-x86_64-410.73.run --uninstall
上述方法可能會出現的問題_循環登陸
主要表現爲在登錄界面輸入密碼後依然跳轉回登陸界面,無限循環,這是我在使用.run文件安裝時遇到的問題,這裏有一個親測有效的解決方案:
當輸入安裝指令時,不要簡單地輸入 sudo ./…run,而是輸入:
sudo ./NVIDIA.run -no-x-check -no-nouveau-check -no-opengl-files
-no-x-check #安裝驅動時關閉X服務
-no-nouveau-check #安裝驅動時禁用nouveau
-no-opengl-files #只安裝驅動文件,不安裝OpenGL文件
這樣再reboot,就不會出現循環登錄的問題。
簡單的顯卡驅動安裝方法——如果不想了解詳情,直接移步7.綜合說明
1.卸載之前所安裝的驅動
#卸載以前安裝過的驅動,如果害怕沒有卸載乾淨的話,可以參照上述.run的方法[1,2]操作一遍
sudo apt-get purge nvidia*
2.把顯卡驅動加入PPA
#步驟1
sudo add-apt-repository ppa:graphics-drivers/paa
#步驟1‘【有條件選用,請詳細看說明】
#如果使用上述命令在後續安裝過程中不能找到對應顯卡驅動的包的話,請使用下面這一條命令,重新來一遍,如果上述命令可以很好的安裝,就不需要運行下面這條命令
sudo add-apt-repository ppa:xorg-edgers/ppa -y
#步驟2
sudo apt-get update
3.此處可以用顯卡驅動推薦命令尋找比較適合的顯卡驅動
ubuntu-drivers devices
如上圖所示,有推薦415、410、396、390、384等版本,但是還是推薦使用3xxx版本,因爲4xx版本,可能會默認固定cuda類型,不方便日後使用
4.安裝顯卡驅動
sudo apt install nvidia-driver-390
5.檢查是否安裝成功
#運行下面語句,如有輸出證明已安裝成功
nvidia-smi
6.鎖定更新
#雖然是可選的,但是最好設置一下,以保持穩定的運行環境
sudo apt-mark hold nvidia-driver-390
#更嚴格的控制系統更新的方式是:
7.綜合說明
#利用簡單的安裝手段只需要四句話:
sudo apt-get purge nvidia*
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-390 nvidia-settings
#四行命令搞定
#安裝完畢後重啓電腦,運行nvidia-smi,查看生效的顯卡驅動
Cuda
驅動安裝完畢之後,就可以安裝Cuda了,相較於顯卡驅動,Cuda的安裝顯得尤爲簡單,值得注意的是,多個Cuda版本可以同時共存。在安裝了多個cuda版本後,可以在/usr/local/目錄下查看自己安裝的cuda版本。
1.首先確認自己安裝的環境、gcc和g++版本
gcc — version
g++ — version
sudo apt install linux-headers-$(uname -r)
2.選擇合適的Cuda版本
此處需要注意,不要安裝9.2版本,具體問題詳見鏈接:https://github.com/pytorch/pytorch/issues/6098
當初入坑安裝了9.2 ,結果還是得吐血重裝9.0
Cuda9.0的安裝文件的官網爲:
https://developer.nvidia.com/cuda-90-download-archive
可以根據自己的系統的規格選擇相應的文件,當選擇好了之後就會出現對應的文件安裝命令:
如上圖所示:
在遠程控制的我們,必須要通過Terminal進行處理:
1>新建一個文件夾,用於存儲安裝文件:
sudo mkdir cuda9
2>右擊上圖所示的Download選項複製link
#在新建的文件夾下,用cd命令過去
sudo wget 'your cuda link'
#如:
sudo wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64-deb
3> 在下載文件界面上,直接運行上圖中所給出的四條命令即可
sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
sudo apt-get update
#此處如果要安裝不同版本的cuda的話,只需要將cuda版本添加進命令中即可,但相應的需要在對應版本的deb文件下運行,如安裝8.0版本的:sudo apt-get install cuda-8-0
sudo apt-get install cuda
4>同樣禁用軟件更新
sudo apt-mark hold cuda
**5>配置CUDA相關環境變量 **
#修改~/.bashrc文件(或~/.zhsrc) 在文件末尾添加環境變量,沒有就新建一個
vim ~/.bashrc #修改配置文件(如果你用的是zsh,則需要修改 ~/.zshrc文件)
#在文件結尾處添加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
6>多個cuda版本的安裝
利用同樣的方法下載你想安裝的另一個版本的cuda工具包(注意是runfile類型),在安裝過程中,注意cuda symbol link的選擇(首次安裝,選y,安裝額外的版本,選n)
7>查看cuda版本
cat /usr/local/cuda/version.txt
8>多個Cuda版本之間的切換
可以使用stat命令查看當前cuda軟鏈接指向的哪個cuda版本
cd /usr/local/
stat cuda
可以看到,文件類型是symbolic link,而指向的目錄正是/usr/local/cuda-9.0,當我們想使用cuda-8.0版本時,只需要刪除該軟鏈接,然後重新建立指向cuda-8.0版本的軟鏈接即可(注意名稱還是cuda,因爲要與bashrc文件裏設置的保持一致),想切換其他版本的cuda,只需要改動建立軟鏈接時cdua的正確路徑即可
sudo rm -rf cuda
sudo ln -s /usr/local/cuda-8.0 /usr/local/cuda
Cudnn
[注意]
1.需要下載三個文件
2.因爲官網需要用自己的用戶名和賬號登陸,所以沒有辦法像Cuda那樣直接用‘wget’命令進行下載,只能在自己的機子上下載好了再上傳至服務器上,再進行安裝,因此在下載之前,你需要先進行註冊登陸。
Cudnn官方下載網址:
https://developer.nvidia.com/rdp/cudnn-download
1.下載文檔:
打開官網並註冊登陸後,會出現下面這個界面,點擊同意Lincense,便可以進入下載界面,在下載頁面就有相應Cuda對應的Cudnn版本,便可以根據自己的需求進行下載,如下圖所示,只有Cuda10.0,Cuda9.2,Cuda9.0,三個版本,所以如果需要Cuda8.0版本的,可以點擊‘Archived cuDNN Releases’查看更多選項。
如下圖所示,根據我的服務器的系統設備,需要下載以下三個文件。
以9.0爲例,三個文件分別是:
libcuDNN7_7.0.5.15–1+cuda9.0_amd64.deb
libcuDNN7-dev_7.0.5.15–1+cuda9.0_amd64.deb
libcuDNN7-doc_7.0.5.15–1+cuda9.0_amd64.deb
2.上傳到服務器
下載完畢安裝包後,需要將其上傳至服務器,此時需要使用scp命令。
1>在本地打開terminal,一定要在本地打開自己的terminal,要不然識別不了本機地址:
scp -i 'the address of your file' 'your username of the server'@'IP of the server':'the address of the server'
3.安裝
cd ‘address of your download file’
#依次運行下面三條命令,當然後面的文件名一定要與你自己下載的文件名相對應
sudo dpkg -i libcuDNN7_7.0.5.15–1+cuda9.0_amd64.deb
sudo dpkg -i libcuDNN7-dev_7.0.5.15–1+cuda9.0_amd64.deb
sudo dpkg -i libcuDNN7-doc_7.0.5.15–1+cuda9.0_amd64.deb
至此,cuDNN已安裝完畢。
Other
sudoer
因爲是在服務器上配置環境,當然配置完成之後,就可以分配給其他人使用了,因此,我們可以新建用戶,並通過向sudoers文件中寫入的方式,給相應用戶以sudo權限。
1>創建用戶
參見:
https://blog.csdn.net/weixin_37877130/article/details/80637713
useradd可用來建立用戶賬號,它和adduser命令是相同的。賬號建好之後,再用passwd設定賬號的密碼。使用useradd命令所建立的賬號,實際上是保存在/etc/passwd文本文件中。
#建立一個新用戶賬戶testuser1,並設置UID爲544,主目錄爲/usr/testuser1,屬於users組
#UID必須要大於499
#主目錄可以修改,如果當前沒有這個目錄,系統會自動創建
#組別可以修改,也可以沒有組別
useradd -u 544 -d /usr/testuser1 -g users -m testuser1
#修改密碼
echo "newpassword" | passwd --stdio 'your username'
2>刪除用戶
使用userdel刪除用戶
userdel travis
將用戶目錄一同刪除使用-f
userdel -f travis
3>分配權限
因爲需要給一些用戶以權限,因此需要修改sudoers
cd /etc/
sudo vim sudoers
#按i進入編輯模式,# User privilege specification下添加
username ALL=(ALL:ALL) ALL
#按esc退出編輯模式,再按‘:wq'保存退出
在這裏筆者犯了一個很大的錯誤,這也是一般新手經常會犯的錯誤:
【一定不要這麼做,可以用上述所說用root用戶,sudo打開進行修改】因爲在保存退出階段,系統顯示不能退出,權限不足,因此,我就講sudoers文件的權限進行了修改,用chmod命令將其改爲了‘777’ ,從此係統上所有的用戶都成了沒有權限的用戶,包括超級用戶的我,所以以至於後面什麼都做不了。。。,無奈只能重啓解決。
下面說一下我的吐血重啓解決步驟:
ubuntu進入單用戶模式,修改sudoers權限,修改root密碼
- 重啓ubuntu,隨即長按shift進入grub菜單;
- 選擇recovery mode(恢復模式),按"e"鍵進入編輯頁面;(注意這裏不要回車,直接按e)
- 將ro recovery nomodeset 改爲 rw single init=/bin/bash
- 按ctrl+x進入單用戶模式,當前用戶即爲root;
- 到/etc目錄下修改sudoers權限:chmod 0440 sudoers,搞定;也可以同時新增root密碼,下次就不這麼麻煩了;
- 按ctrl+alt+del重啓;
在此,最爲麻煩的就是第一步,需要進入grub菜單選項而不是命令行模式,因爲ubuntu默認隱藏菜單模式,所以一般長按shift進入的是默認的grub命令行模式,所以需要在第一步的重啓過程中,當BIOS進度條快加載完畢或者是即將完畢時,按一下‘ESC’鍵,纔可以進入菜單模式,所以在此一定要好好處理,而且給你按‘ESC’鍵的時間非常少,需要多試幾次。當然筆者是在Dell+Ubuntu16.04的模式下操作的,其他系統是否可用不得而知。
如果對如何進入grub模式還有疑問,可以詳見,視頻裏面是對忘記root密碼的情況的設置,所以如果有忘記root密碼的情況需要進行修改的話,可以參見下面鏈接內容,筆者就是順手將root密碼改了:
https://www.youtube.com/watch?v=m3rbpR9uuHA
在以上步驟結束之後,服務器就可以面向服務器上所有用戶使用了,這裏之所以並沒有安裝python等其他包的原因在於:由於每一個用戶所需要的實驗環境不同,所以最好由其個人進行自己個人實驗環境配置會比較好。
直接利用virualenv
命令創建自己的工作環境,彼此之間的python環境不會有干擾。
其他參考鏈接:
系統安裝:
linux命令:
http://www.runoob.com/w3cnote/linux-useful-command.html
SCP命令:
http://www.runoob.com/linux/linux-comm-scp.html
其他軟件的安裝:
https://blog.csdn.net/zuanjue1207/article/details/80696823
Ubuntu中root用戶和user用戶的相互切換:
http://www.cnblogs.com/weiweiqiao99/archive/2010/11/10/1873761.html
tmux教程