因为安装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
这个警告并不影响简单的使用,目前我使用的过程中并没有发现不妥。
如果不是追求完美到此就结束了。
但是:
我想解决这个问题,但是无从下手,希望路过的大牛可以指点迷津。
下面是一些教程: