Ubuntu 安装CRIU教程

因为安装CRIU需要安装很多依赖,所以导致安装十分繁琐,目前网络上已经有了很多基于CentOS安装的方法,但是在Ubuntu 上安装还是很繁琐,因为很多安装包不能使用命令直接安装,或者包的名称和CentOS 上不一样,提高了入门的门槛。为了解决这一问题,特意写下这个文章,提供详细的安装教程,本人使用Ubuntu16.4系统为模板,在没有任何使用记录的新装系统上尝试CRIU的安装。如果你使用的是相同的系统,安装成功率必定是100%。而且由于我是一边安装依赖,一边安装CRIU ,所以尽量减小了安装依赖的范围,不一定是最小集,仅供参考:

(因为我是一边试,一边安装,一边写教程,所以过程很拖沓,见谅)

下面开始教程:

  1. 下载CRIU 压缩包 criu-3.11.tar.bz2    地址:https://download.openvz.org/criu/
  2. 解压
    tar -xvf criu-3.11.tar.bz2
  3. 进入文件夹
    cd criu-3.11
    直接使用make命令肯定报错,要先安装依赖,如下:
  4. 安装protobuf     
    1. 下载安装包:protobuf-2.6.1.tar.gz    下载地址:http://pan.baidu.com/s/1i43CzJn   地址引用自Ubuntu上安装protobuf 和protobuf-c
    2. 解压
      tar -xvf protobuf-2.6.1.tar.gz
    3. 进入文件夹
      cd protobuf-2.6.1
    4. 执行
      ./configure
    5. 执行 
      make 
      请耐心等待。。。。
      执行
      make check

      命令执行结束后的截图,如下:

      执行
      sudo make install
  5. 安装protobuf-c
    1. 下载安装包:protobuf-c-1.2.1.tar.gz  (上面的安装包链接中包含这个压缩包)
    2. 解压
      tar -xvf protobuf-c-1.2.1.tar.gz
    3. 进入文件夹
      cd protobuf-c-1.2.1
    4. 在执行configure之前,必须先安装pkg-config
    5. sudo apt-get install -y pkg-config
      sudo apt-get install protobuf-compiler
      sudo apt-get install libprotobuf-dev
    6. 执行
      ./configure
    7. 执行
      export LD_LIBRARY_PATH=/usr/local/lib
    8. 执行
      make
    9. 执行
      sudo make install

    到此为止,需要下载的安装包就安装完了,下面是命令行安装的依赖:

    以下命令均在criu-3.11文件夹执行(其实在哪是无所谓的,只有在安装git之后才有一点点影响,大牛请忽略,小白请照做)

  6. 安装libnet-dev  
    sudo apt-get install libnet-dev
  7. 安装libnl-3-dev
    sudo apt-get install libnl-3-dev
  8. 安装libcap-dev   
    sudo apt-get install libcap-dev
  9. 安装 asciidoc
    sudo apt-get install asciidoc 
  10. 其实到这里已经把依赖安装的差不多了,但是有些情况下还是会有些问题的,因为我也是多次安装,每次的错误都不一样,为了保证安装无误,可以选择把下列包都装上
    sudo apt-get install protobuf-c-compiler 
    sudo apt-get install python-protobuf
  11. 执行
    make

    因为安装了所有需要的依赖,此时make命令就不会报错了

      
  12. 安装git 
    sudo apt-get install  git
  13. 初始化git(在criu-3.11文件夹执行)
    git init
  14. 执行  (安装最后一步)
    sudo make install

    留意输出日志,如果没有报错就是成功了。

  15. 测试,执行
    sudo criu check

    如果输出Looks Good!就是成功了。

    --------------------------------------------------------------------------------------
     

以下是讨论:

我在测试的时候不仅输出了Looks Good.   还有一行警告,输出如下:

Warn  (criu/net.c:2840):Unable to get tun network namespace

这个警告并不影响简单的使用,目前我使用的过程中并没有发现不妥。

如果不是追求完美到此就结束了。

但是:

我想解决这个问题,但是无从下手,希望路过的大牛可以指点迷津。

下面是一些教程:

CRIU简单教程  

CRIU使用细节教程

原文地址:https://www.cnblogs.com/PPWEI/p/10109123.html