编译环境准备

  • 以下软件编译的相关操作,都请在编译机执行。
  • 不建议使用root用户进行操作。

配置本地源

  1. 下载liboath源码及补丁。

    此步骤涉及Yum源的使用。Yum源为系统默认的公网源,原生系统配置好代理即可执行。

    1
    2
    3
    4
    yum install git -y
    git config --global http.sslVerify false
    cd /root
    git clone https://gitee.com/src-openeuler/oath-toolkit
    

  2. 通过Yum方式安装RPM打包所需的依赖。

    1
    yum install wget rpmdevtools gtk-doc pam-devel xmlsec1-devel libtool libtool-ltdl-devel createrepo cmake -y
    

  3. 创建“rpmbuild”目录,并将patch文件和源码包移动到“/root/rpmbuild/SOURCES”目录下。

    1
    2
    3
    4
    rpmdev-setuptree
    cd /root/oath-toolkit
    mv 0001-oath-toolkit-2.6.5-lockfile.patch /root/rpmbuild/SOURCES
    mv oath-toolkit-2.6.5.tar.gz /root/rpmbuild/SOURCES
    

  4. 拷贝.spec文件到指定的RPM包编译目录。

    1
    cp oath-toolkit.spec /root/rpmbuild/SPECS/
    

  5. 编译RPM包。

    1
    rpmbuild -bb /root/rpmbuild/SPECS/oath-toolkit.spec
    

  6. 将编译好的RPM包作为本地Yum源。

    1
    2
    3
    mkdir -p /home/oath
    cp -r /root/rpmbuild/RPMS/*  /home/oath/
    cd  /home/oath && createrepo .
    

  7. 配置repo文件。

    1. 新建“local.repo”文件。
      1
      vi /etc/yum.repos.d/local.repo
      
    2. “i”键进入编辑模式,在文件中加入以下内容。
      1
      2
      3
      4
      5
      6
      [local-oath]
      name=local-oath
      baseurl=file:///home/oath
      enabled=1
      gpgcheck=0
      priority=1
      
    3. “Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。

  8. 设置Yum证书验证状态为不验证。

    1. 打开“yum.conf”文件。
      1
      vim /etc/yum.conf
      
    2. “i”键进入编辑模式,添加如下内容至末尾。
      1
      2
      sslverify=false
      deltarpm=0
      
    3. “Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。

  9. 配置pip华为代理,以提高下载速度。

    1. 新建“.pip”目录并在该目录下新建“pip.conf”文件。
      1
      2
      mkdir -p ~/.pip
      vim ~/.pip/pip.conf
      
    2. “i”键进入编辑模式,添加如下内容。
      1
      2
      3
      4
      [global]
      timeout = 120
      index-url = https://repo.huaweicloud.com/repository/pypi/simple
      trusted-host = repo.huaweicloud.com
      
    3. “Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。

安装依赖包

  1. 配置epel源。

    1. 新建“epel.repo”文件。
      1
      vim /etc/yum.repos.d/epel.repo
      
    2. “i”键进入编辑模式,添加如下内容。
      1
      2
      3
      4
      5
      6
      [epel]
      name=epel
      baseurl=https://repo.huaweicloud.com/epel/7/aarch64/
      enabled=1
      gpgcheck=0
      priority=1
      
    3. “Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。

  2. 使用epel源安装openEuler中缺少的依赖。

    1
    yum install python-routes python-tox -y
    

  3. 删除epel源。

    1
    rm -rf /etc/yum.repos.d/epel.repo
    

    epel源仅用于2中的两个依赖的安装,使用后必须删除,否则后续步骤将会从epel源下载与openEuler冲突的RPM包。

  4. 使用Yum安装的方式,安装编译Ceph源码时所需的依赖包。

    1
    yum install java-devel sharutils checkpolicy selinux-policy-devel gperf cryptsetup fuse-devel gperftools-devel libaio-devel libblkid-devel libcurl-devel libudev-devel libxml2-devel libuuid-devel ncurses-devel python-devel valgrind-devel xfsprogs-devel xmlstarlet yasm nss-devel libibverbs-devel openldap-devel CUnit-devel python2-Cython python3-setuptools python-prettytable lttng-ust-devel expat-devel junit boost-random keyutils-libs-devel openssl-devel libcap-ng-devel python-sphinx python2-sphinx python3-sphinx leveldb leveldb-devel snappy snappy-devel lz4 lz4-devel liboath liboath-devel libbabeltrace-devel librabbitmq librabbitmq-devel librdkafka librdkafka-devel libnl3 libnl3-devel rdma-core-devel numactl numactl-devel numactl-libs createrepo openldap-devel rdma-core-devel lz4-devel expat-devel lttng-ust-devel libbabeltrace-devel python3-Cython python2-Cython gperftools-devel bc dnf-plugins-core librabbitmq-devel rpm-build java-1.8.0-openjdk-devel python3-devel -y
    

重新生成rpmbuild目录

“/home”目录重新生成rpmbuild目录。

  1. 修改“.rpmmacros”文件。

    1. 打开文件。
      1
      vim /root/.rpmmacros
      
    2. “i”键进入编辑模式,修改“%_topdir”的路径为“/home/rpmbuild”

    3. “Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。

  2. 再次执行rpmbuild安装命令。

    1
    rpmdev-setuptree