1. 程式人生 > >常見linux問題解決辦法和ubuntu使用中遇到問題

常見linux問題解決辦法和ubuntu使用中遇到問題

嚴正宣告:

  在linux下面使用命令列操作時,一定要懂得命令列的意思,然後再執行,要不然在不知道接下來會發生什麼的情況下輸入一通命令,linux很有可能崩掉。

  因為在linux下面,使用sudo以及root許可權時,是可以對任意一個檔案進行操作處理的,即使是正在使用的系統檔案。

  caffe中出現下面這些問題說明在安裝過程中有一些步驟沒有按照官網說明來,如果按照官網說明一步步安裝,一般會一次性通過。

Caffe編譯問題及解決方案彙總:

 在編譯caffe程式碼時,之前的各種錯誤會顯現出來,這時候會出現各種各樣的問題:

問題1:

Error: 'make all' 'make test'
.build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)' 
.build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector >&, std::vector > const&)'

原因:caffe程式碼中並沒有build資料夾,需要新建build資料夾之後再進行編譯:

cd caffe-master  #開啟caffe所在資料夾
cp Makefile.config.example Makefile.config  #change setting in Makefile.config
make all -j8  #在build資料夾下進行編譯
make test -j8 
make runtest -j8  #使用CPU多核同時進行編譯

問題2:

CMake Error at cuda_compile_generated_lrn_layer.cu.o.cmake:206 (message)

在成功安裝cuda之後,由於路徑設定問題,或者路徑衝突會產生以下錯誤,解決方法:

1.在caffe資料夾下,通過下面該命令檢視配置路徑:

sudo find / -name nvcc

2.通過下面命令檢視是否cuda路徑衝突:

$PATH

如果顯示結果有兩個cuda環境變數,那麼需要移除舊的路徑,更新PATH。

3.重新設定cuda環境變數

在/etc/profile中新增CUDA環境變數  

PATH=/usr/local/cuda/bin:$PATH  
export PATH

然後登出或重啟(因為登出或重啟之後PATH會從 ~/.bash_profile檔案中重新讀取)

問題3:pycaffe編譯過程中的問題

錯誤資訊:touch python/caffe/proto/__init__.py
     CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp
     PROTOC (python) src/caffe/proto/caffe.proto
        python/caffe/_caffe.cpp:1:52: fatal error: Python.h: No such file or directory
      #include <Python.h>  // NOLINT(build/include_alpha)
     compilation terminated.
     make: *** [python/caffe/_caffe.so] Error 1

因為我的python環境安裝的是spyder,而不是Anaconda,因此在makefile.config裡面需要對路徑進行設定

複製程式碼
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
# ANACONDA_HOME := $(HOME)/anaconda
# PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
        # $(ANACONDA_HOME)/include/python2.7 \
        # $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \

# We need to be able to find libpythonX.X.so or .dylib.
PYTHON_LIB := /usr/lib
# PYTHON_LIB := $(ANACONDA_HOME)/lib
複製程式碼

Python.h  can running sudo find / -name 'Python.h' to find the path.

原帖地址

Linux一些常用命令記錄及解釋:

1.程式安裝

  本地安裝 命令格式  

  sudo dpkg -i softname.deb

  其中dpkg為Debian Package的縮寫,dpkg常用命令有: -i 安裝 ;-r 解除安裝

  dpkg命令是一個底層的安裝工具,apt是dpkg上層工具,用於從遠端獲取軟體包以及處理複雜的軟體包之間的關係。

  apt常用的用法,apt-get後面接install 或remove對軟體進行安裝和解除安裝

  apt-get install <package>

2.設定系統root密碼

  如果使用光碟安裝Ubuntu,按照安裝嚮導來進行帳號、分割槽等設定,而在這個安裝嚮導程式中沒有提示進行root密碼的設定,所以在 Ubuntu安裝好後需要手動設定root密碼。而如果是跳過安裝嚮導,點選桌面上的Install圖示來進行安裝的話,在安裝過程中則會提示設定 root密碼。當然,如果需要修改root密碼也可以使用以下方法:開啟終端,在終端中輸入命令:

sudo passwd root

接下來,按照提示一步步設定系統的root密碼。
輸入新的 UNIX 口令:
重新輸入新的 UNIX 口令:
passwd:已成功更新密碼
口令:

3.刪除資料夾和檔案

在ubuntu裡面有些資料夾通過右鍵方式無法刪除,這時候就需要使用命令來進行刪除。

刪除檔案:

cd /usr/local/src      #開啟檔案所在位置
sudo rm ./file-name  #刪除檔案

刪除資料夾:

cd /usr/local/src
sudo rm -r ./folder-name

3. 使用命令更改檔案或資料夾名

sudo mv 舊檔名 新檔名

4. 使用顯示核心版本

uname a

5.Ubuntu批量複製刪除檔案命令

批量複製檔案命令

sudo cp -R /srcfolder/*  /dstfolder

批量刪除檔案命令:

sudo rm -rf /usr/share/stardict/dic/*

Ubuntu14.04使用中的一些問題及解決方法:

1.核心出現問題時解決方法

該問題困擾我很久,因為dpkg時程式安裝命令,該命令出問題導致新的軟體不能安裝,非常煩,查了很多資料,終於找到解決方法。

錯誤提示:  dpkg: 在處理時有錯誤發生:  linux-image-extra-3.19.0-28-generic 

                    linux-image-3.19.0-28-generic

解決思路:將dpkg包中的資訊先備份,在新的info資訊複製到資料夾中更新核心

複製程式碼
sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old      //現將info資料夾更名
sudo mkdir /var/lib/dpkg/info                 //再新建一個新的info資料夾
sudo apt-get update                      //更新源
sudo apt-get -f install                    
sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old    //將info中檔案全部移到info_old資料夾下
sudo rm -rf /var/lib/dpkg/info                //把自己新建的info資料夾刪掉
sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info     //把以前的info資料夾重新改回名字
複製程式碼

通過上述命令可以解決核心移除失敗,更新問題。

2.Ubuntu14.04 無法識別硬碟exfat分割槽

為什麼使用exfat格式呢?主要有以下兩種原因:

1、三大主流作業系統(Linux、Mac、Windows)都支援exfat格式。

2、exfat支援大於4G的檔案。

在ubuntu下,由於版權的原因(據說),預設不支援exfat格式的u盤,不過可以很方便就能新增對exfat的支援:

1、對於ubuntu 14.04版本,直接執行下面的命令就可以了:  

sudo apt-get install exfat-utils

安裝完之後重啟生效。(如果不重啟不行,則重啟)

3.設定PYTHON路徑方法

export PYTHONPATH=/home/username/caffe/python

檢視路徑

echo $PYTHONPATH

4.Ubuntu不能對exfat以及ntfs等格式磁碟寫入檔案

問題描述:the disk for the xx is not ready yet or not present  

     acpi pcc probe failed

解決方式:

sudo su #獲取root許可權
mount -o remount,rw /
dpkg --configure -a

5.caffe的python介面配置問題

在使用make pycaffe -j8命令完成caffe的python介面生成之後,還需要將python介面的路徑進行設定。

路徑設定一般有兩種方式(具體方法百度),為方便使用,這裡設定為永久路徑。

使用命令

gedit ~/.bashrc

來對路徑進行設定,在檔案最後一行加入路徑:

export PYTHONPATH=/home/startag/caffe/python/:/home/startag/caffe/python/caffe/

登出或者重啟,路徑生效。

import caffe時錯誤提示

1. 錯誤提示:ImportError: No module named skimage.io

解決方法:

直接使用終端安裝:

pip install -U scikit-image

如果提示不識別   pip  命令,在Ubuntu14.04(64bit)下,使用下面命令安裝pip包管理軟體,也可以使用新立得軟體包搜尋“scikit-image”安裝。

wget https://bootstrap.pypa.io/get-pip.py  --no-check-certificate
sudo python get-pip.py

問題:

ImportError: No module named google.protobuf.internal

提示錯誤可使用新立得軟體包搜尋“python-protobuf”安裝。

然後使用import caffe測試介面是否除錯成功。

問題:

from google.protobuf import symbol_database as _symbol_database
ImportError: cannot import name symbol_database

解決方法: 

sudo pip install --upgrade protobuf

6. caffe中的python介面和matlab介面配置及常見問題彙總: 

在配置好了caffe環境之後,我們需要使用到caffe中的介面。caffe的介面分為3種,cmd介面,matlab介面和python介面。

cmd介面在使用make all -j8過程中已經生成,位置在tools裡面。而matlab介面特別是python介面需要配置,期間還會遇到各種各樣的問題。

在對caffe的matlab和python介面進行編譯時可能會遇到g++版本過高問題,解決方法:Caffe使用:安裝gcc4.7和g++4.7。

在make pycaffe之後,需要使用make dist來將生成的python檔案進行整理並設定caffe路徑。

在~/.bashrc檔案中加入路徑:( 問題:ImportError: libcaffe.so: cannot open shared object file: No such file or directory解決方法)

#多個路徑使用:分割開
export LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64:/usr/local/cuda/lib64:/home/startag/caffe/distribute/lib  
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6
export PYTHONPATH=/home/startag/caffe/distribute/python:$PYTHONPATH

python介面配置按照caffe官網interface中步驟進行,在~/.bashrc檔案中寫入PYTHONPATH路徑,具體見官網。

遇見的問題解決方法:方法1 

**建議:在使用caffe時候,確定一個版本,然後把路徑寫入~/.bashrc 檔案中。當然,也可以使用多個版本,不過需要把每一個版本的路徑都要加入到~/.bashrc檔案中,比較麻煩,如果自己需要使用caffe,使用軟連線方法建立與caffe的軟連線。

方法:

ln -s caffe-root 目標資料夾

 構建fast-rcnn時提示:OpenCV - cannot find module cv2

解決方法

&. 使用draw_net.py繪製網路結構方法:

使用draw_net.py繪製網路結構時提示錯誤資訊:

permission denied: 

解決方法:讓該檔案具有系統許可權

chmod u+x ./python/draw_net.py

出現下面錯誤時說明系統已經嚴重損壞,不保證可以完全修復

1.誤將cuda解除安裝之後,cuda-driver包損壞時的解決方案:

使用 aptitude進行安裝(這個經測試不好用,這樣安裝可能是非官方驅動)

  1. Install aptitude

    sudo apt-get install aptitude
  2. Install main package

    sudo aptitude install cuda

2. caffe中安裝build-essential提示包損壞解決方法

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential -f

當因安裝版本問題出現錯誤時,如本來應該在Ubuntu14.04上安裝cuda7.0,但是錯誤的在Ubuntu15.04上安裝(應該安裝對應的7.5),提示一下錯誤時:

dpkg: error processing archive  (--install):cuda-repo-ubuntu1504_7.5-18_amd64.deb
trying to overwrite '/etc/apt/sources.list.d/cuda.list',
which is also in package cuda-repo-ubuntu1404_7.0-18_amd64.deb

解決方案:

sudo dpkg -i --force-overwrite cuda-repo-ubuntu1504_7.5-18_amd64.deb