因為安裝CRIU需要安裝很多依賴,所以導致安裝十分繁瑣,目前網絡上已經有了很多基於CentOS安裝的方法,但是在Ubuntu 上安裝還是很繁瑣,因為很多安裝包不能使用命令直接安裝,或者包的名稱和CentOS 上不一樣,提高了入門的門檻。為了解決這一問題,特意寫下這個文章,提供詳細的安裝教程,本人使用Ubuntu16.4系統為模板,在沒有任何使用記錄的新裝系統上嘗試CRIU的安裝。如果你使用的是相同的系統,安裝成功率必定是100%。而且由於我是一邊安裝依賴,一邊安裝CRIU ,所以盡量減小了安裝依賴的范圍,不一定是最小集,僅供參考:
(因為我是一邊試,一邊安裝,一邊寫教程,所以過程很拖沓,見諒)
下面開始教程:
- 下載CRIU 壓縮包 criu-3.11.tar.bz2 地址:https://download.openvz.org/criu/
- 解壓
tar -xvf criu-3.11.tar.bz2
- 進入文件夾
cd criu-3.11
直接使用make命令肯定報錯,要先安裝依賴,如下: -
安裝protobuf
- 下載安裝包:protobuf-2.6.1.tar.gz 下載地址:http://pan.baidu.com/s/1i43CzJn 地址引用自Ubuntu上安裝protobuf 和protobuf-c
- 解壓
tar -xvf protobuf-2.6.1.tar.gz
- 進入文件夾
cd protobuf-2.6.1
- 執行
./configure
- 執行
make
執行執行make check
命令執行結束后的截圖,如下:
sudo make install
-
安裝protobuf-c
- 下載安裝包:protobuf-c-1.2.1.tar.gz (上面的安裝包鏈接中包含這個壓縮包)
- 解壓
tar -xvf protobuf-c-1.2.1.tar.gz
- 進入文件夾
cd protobuf-c-1.2.1
- 在執行configure之前,必須先安裝pkg-config
-
sudo apt-get install -y pkg-config
sudo apt-get install protobuf-compiler
sudo apt-get install libprotobuf-dev
- 執行
./configure
- 執行
export LD_LIBRARY_PATH=/usr/local/lib
- 執行
make
- 執行
sudo make install
到此為止,需要下載的安裝包就安裝完了,下面是命令行安裝的依賴:
以下命令均在criu-3.11文件夾執行(其實在哪是無所謂的,只有在安裝git之后才有一點點影響,大牛請忽略,小白請照做)
- 安裝libnet-dev
sudo apt-get install libnet-dev
- 安裝libnl-3-dev
sudo apt-get install libnl-3-dev
- 安裝libcap-dev
sudo apt-get install libcap-dev
- 安裝 asciidoc
sudo apt-get install asciidoc
- 其實到這里已經把依賴安裝的差不多了,但是有些情況下還是會有些問題的,因為我也是多次安裝,每次的錯誤都不一樣,為了保證安裝無誤,可以選擇把下列包都裝上
sudo apt-get install protobuf-c-compiler sudo apt-get install python-protobuf
- 執行
make
因為安裝了所有需要的依賴,此時make命令就不會報錯了
- 安裝git
sudo apt-get install git
- 初始化git(在criu-3.11文件夾執行)
git init
- 執行 (安裝最后一步)
sudo make install
留意輸出日志,如果沒有報錯就是成功了。
- 測試,執行
sudo criu check
如果輸出Looks Good!就是成功了。
--------------------------------------------------------------------------------------
以下是討論:
我在測試的時候不僅輸出了Looks Good. 還有一行警告,輸出如下:
Warn (criu/net.c:2840):Unable to get tun network namespace
這個警告並不影響簡單的使用,目前我使用的過程中並沒有發現不妥。
如果不是追求完美到此就結束了。
但是:
我想解決這個問題,但是無從下手,希望路過的大牛可以指點迷津。
下面是一些教程: