k8s笔记28--快速在ubuntu上基于二进制和源码安装containerd

  • 编译containerd报错的时候可能需要安装libbtrfs-dev
    报错信息:
    btrfs/ioctl.h: No such file or directory
    部分网友推荐 apt-get -y install btrfs-progs ,实测在ubuntu22.04及之后的系统上无效
    
    解决方法:
    有效: apt install libbtrfs-dev
    参考: https://ubuntu.pkgs.org/20.04/ubuntu-main-arm64/libbtrfs-dev_5.4.1-2_arm64.deb.html
    
    方法2: 编译的时候忽略 btrfs 
    make all BUILDTAGS=no_btrfs
    
  • 编译runc报错的时候可能需要安装 pkg-config 和 libseccomp-dev
    报错信息1:
    # pkg-config --cflags  -- libseccomp
    pkg-config: exec: "pkg-config": executable file not found in $PATH
    解决方法:
    apt install pkg-config
    
    报错信息2:
    go build github.com/seccomp/libseccomp-golang:
    # pkg-config --cflags  -- libseccomp
    Package libseccomp was not found in the pkg-config search path.
    Perhaps you should add the directory containing `libseccomp.pc'
    to the PKG_CONFIG_PATH environment variable
    Package 'libseccomp', required by 'virtual:world', not found
    pkg-config: exit status 1
    解决方法:
    apt install libseccomp-dev
    
  • 在新的server上执行 runc -v报错 GLIBC_2.38 not found
    报错:
    # /usr/local/sbin/runc -v
    /usr/local/sbin/runc: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /usr/local/sbin/runc)
    
    解决方法:
    确保编译系统的glibc版本和运行系统的glibc相同,或者比运行系统低一点。
    笔者最开始在ubuntu23.10 Desktop 上编译,在 ubuntu 22.04 server上运行, 而23.10 使用GLIBC 2.38,22.04使用的是GLIBC 2.35, 因此调整到22.04版本的系统上重新编译就可以正常使用了。
    
    可以通过 strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC_ 查看当前系统上的glibc版本
    通过 ldd --version 查看当前系统正在使用的glibc版本
    
  • 上一篇:Java八股文(设计模式)


    下一篇:Node.js常用命令详解