給Linux系統配置環境的詳細步驟及解決辦法
1. 重要的事情放到第一行來強調,真的真的強烈建議在把環境設定成英文。因為有時候中文的錯誤提示會變成亂碼,出現一些不明其所以然的error,在處理這種錯誤會耗費極大量的時間。
2. 第二重要的事情,建議看我另一篇關於解決配置出現問題的思路。而不是直接看這篇部落格裡,每種error的解決方法,在通過自己的努力去不斷尋找解決問題的方法,不僅可以收穫解決問題時那種快樂,還能收穫在解決問題時候的思路和套路。
-
第一件事是先換源
首先是開啟設定裡面的軟體與更新。
如果是Ubuntu18.04系統就要麻煩一些,要在終端輸入sudo update-manager,才能開啟。先勾選第一頁的所有選項,然後下載源選擇other其他,進入介面,選擇自動檢測。電腦就會自動檢測最適合的源。選擇一個合適的源可以在後面的下載安裝中節省大量的時間。
然後是第三頁updates,也全部勾選。關閉。 -
許可權
不論是在安裝模組還是安裝依賴包的時候,總有些時候需要許可權,如果出現了“沒有許可權”或者是“permission”這種error,只要在命令前加入sudo即可。如果不是個人電腦,則可以用chmod。 -
準備工具
在配置環境之前需要提前安裝好以下這些工具,否則在配置環境的時候就會報錯,提示你不能處理檔案或者是缺少依賴包。
“vim” “gcc” “g++” “qt4” ”qt5" “ffmpeg” “libopencv-dev” “kernel” “nvcc" “yum” “python-pip” “gst123”…
在終端輸入命令安裝:sudo apt-get install vim sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install qt4* sudo apt-get install qt5-default sudo apt-get install qtcreator sudo apt-get install ffmpeg sudo apt-get install libopencv-dev sudo apt-get install linux-kernel-headers sudo apt-get install kernel-package sudo apt-get install yum sudo apt-get install python-pip sudo apt-get install gst123
最好不要合併成一條命令安裝,容易報錯。
安裝好這些就可以避免在後面的配置中再依次去安裝了,下面進入下一步。 -
安裝
建議安裝順序:
cmake → cuda → cudnn → opencv → Anaconda3 → caffe
因為後面的有些會依賴於前面的環境。-
cmake
最快捷的方法是:sudo apt-get install cmake
也可以去官網上下載安裝包然後:
tar -zxvf cmake-3.12.0.tar.gz cd cmake-3.12.0 (新增許可權)./bootstrap --prefix=/home/jcfszxc/local/(注:這裡填的是路徑) (新增許可權)make -j4 make install
-
cuda
cuda是最麻煩的,先到官網下載安裝包 (*.run),並移動到主目錄便於尋找。(新增許可權)vim /etc/modprobe.d/blacklist.conf
在最下方新增blacklist nouveau , 通過wq!強制儲存退出。
遮蔽 nouveau 並更新核心sudo update-initramfs -u
重啟電腦,按ctrl + alt + f1 進入文字介面,執行下面語句關閉X server
sudo /etc/init.d/lightdm stop
如果不行,就輸入這串程式碼進入root模式,再執行關閉X server的命令。
sudo su root
開始安裝
chmod a+x cuda_8.0.61_375.26_linux.run ./cuda_8.0.61_375.26_linux.run
跳出百分比的文字介面的時候,按住空格跳過,然後就是各種yes accept 和安裝路徑的輸入。
安裝完成後,輸入這下面的程式碼恢復X serversudo /etc/init.d/lightdm restart
新增環境變數並重新整理
如果沒有記錯的話,好像cuda也是可以通過apt來安裝的。。。那樣就不用這麼冗長的步驟了。
可以通過nvcc -V來檢視環境變數是否配置成功。
如果再安裝英偉達顯示卡的時候出現了i915檔案的缺失,會出現這樣的提示:
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915
這時候要去官網下載對應丟失的那個檔案,並將它加入到提示的目錄中去。
附網址:
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
-
cudnn
老規矩,官網下載安裝包。tar -zxvf cudnn-8.0-linux-x64-v6.0.tgz cd cuda/include cp cudnn.h /home/jcfszxc/local/cuda_8.0.61/include cd ../lib64 cp -a lib* /home/jcfszxc/local/cuda_8.0.61/lib64
-
opencv
這也十個麻煩的傢伙。首先它的安裝需要非常久的時間,其次它需要很多依賴的工具,之前準備的很多工具都是再為了這個opencv服務的。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=/home/jcfszxc/local \(注:這裡又是路徑) -D WITH_TBB=ON \ -D BUILD_NEW_PYTHON_SUPPORT=ON \ -D WITH_V4L=ON \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D BUILD_EXAMPLES=ON \ -D WITH_QT=ON \ -D WITH_OPENGL=ON .. make -j4 (新增許可權)make install
耐心等待
配置環境:vim ~/.bashrc
在最後面加上
export PATH=/home/jcfszxc/local/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/home/jcfszxc/local/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export C_INCLUDE_PATH=/home/jcfszxc/local/include${C_INCLUDE_PATH:+:${C_INCLUDE_PATH}} export CPLUS_INCLUDE_PATH=/home/jcfszxc/local/include${CPLUS_INCLUDE_PATH:+:${CPLUS_INCLUDE_PATH}} export PKG_CONFIG_PATH=/home/jcfszxc/local/lib/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
注意上面的路徑要填自己安裝的路徑。
然後重新整理環境變數source ~/.bashrc
-
Anaconda3
這個會簡單一點。去官網下載 .sh 的那個安裝包。
終端輸入:sh Anaconda3-5.2.0-Linux-x86_64.sh
按照步驟安裝完成即可。
-
caffe
配置caffe必須要保證前面的那麼多全部配置成功才能繼續進行。否則不能成功配置。
cafe的依賴包很多,這裡另外列出來:pip install --ignore-installed -U pip numpy pyyaml matplotlib setuptools Cython mock scipy typing future protobuf opencv-python memory-profiler
如果不能安裝的話,可能是沒有安裝好pip,用
sudo apt-get install pip
啊,在安裝caffe的時候可能運氣比較差,沒有碰上什麼麻煩的error。按照這麼個步驟就解決了。
先使用Git下載caffe包,然後在/home裡面找到caffe,解壓並進入資料夾。下一步sudo cp Makefile.config.example Makefile.config sudo gedit Makefile.config
將 #USE_CUDNN := 1 修改成:USE_CUDNN := 1
將 #OPENCV_VERSION := 3 修改為:OPENCV_VERSION := 3
將 #WITH_PYTHON_LAYER := 1 修改為 WITH_PYTHON_LAYER := 1
將
1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
2 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改為:
1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
2 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial開啟makefile檔案
將:NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
修改為:NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)sudo gedit usr/local/cuda/include/host_config.h
將:
#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
修改為:
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!現在可以開始安裝了。
我貪圖速度,想直接用make -j來安裝,然後宕機了。。。所以還是推薦使用make -j4來安裝,如果機子效能不好可以再調小一點。
make install
sudo make runtest
出現這個介面就代表安裝成功了。
當然在安裝過程中是有碰到error的,說是檔案缺失或者無關聯,這時候只要把對應缺失檔案複製到/usr/lib/路徑就好了。
-