Rate This Document
Findability
Accuracy
Completeness
Readability

Compiling oVirt Software Packages

  • Store the following compiled software packages in the /root/ovirt_rpm directory, which can be directly used as local sources.
  • The compilation takes a long time. Therefore, you can back up the /root/ovirt_rpm directory after the compilation is complete and skip the compilation in subsequent deployments.
  • The compilation dependencies of some packages are updated in the local source in real time. If a dependency fails to be installed and a message is displayed indicating that the package is not found, run the following command to update the Yum cache and reinstall it.
    1
    yum makecache
    
  1. Cancel environment variables to accelerate RPM package compilation.
    1
    unset GOMP_CPU_AFFINITY
    
  2. Create a Maven cache directory.
    1
    mkdir ~/.m2
    
  3. Add the Maven source.
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    echo "
    <?xmlversion=\"1.0\"?>
    <settings xmlns=\"http://maven.apache.org/POM/4.0.0\"
              xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
              xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0
              http://maven.apache.org/xsd/settings-1.0.0.xsd\">
      <mirrors>
        <mirror>
          <id>huaweicloud</id>
          <name>huawei cloud repo</name>
          <url>https://mirrors.huaweicloud.com/repository/maven/</url>
          <mirrorOf>*</mirrorOf>
        </mirror>
      </mirrors>
    </settings>" > /root/.m2/settings.xml
    

    If a proxy is required for Internet access, add the <proxies> tag under the <settings> tag:

    <proxies>
        <proxy>
          <active>true</active>
          <protocol>http</protocol>
          <username>Proxy_username</username>
          <password>Proxy_password</password>
          <host>Proxy_address</host>
          <port>Proxy_port</port>
        </proxy>
        <proxy>
          <active>true</active>
          <protocol>https</protocol>
          <username>Proxy_username</username>
          <password>Proxy_password</password>
          <host>Proxy_address</host>
          <port>Proxy_port</port>
        </proxy>
      </proxies>
  4. Create a cache directory.
    1
    2
    3
    4
    mkdir /root/ovirt_build
    mkdir /root/ovirt_rpm
    mkdir -p /root/rpmbuild/SOURCES
    cd /root/ovirt_build
    
  5. Install the base software.
    1
    yum install tar git vim rpm-build createrepo_c java-11-openjdk -y
    
  6. Compile ovirt-jboss-modules-maven-plugin.
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    # Download the source code.
    git clone https://gitee.com/src-openeuler/ovirt-jboss-modules-maven-plugin.git -b openEuler-20.03-LTS-SP1
    # Copy the source code to the build directory.
    cp ovirt-jboss-modules-maven-plugin/* ~/rpmbuild/SOURCES
    # Install the dependency.
    yum-builddep -y ovirt-jboss-modules-maven-plugin/ovirt-jboss-modules-maven-plugin.spec
    # Build the RPM package.
    rpmbuild -bb ovirt-jboss-modules-maven-plugin/ovirt-jboss-modules-maven-plugin.spec
    # Copy the built files to the cache directory.
    cp /root/rpmbuild/RPMS/noarch/ovirt-jboss-modules-maven-plugin-2.0.2-*.noarch.rpm ../ovirt_rpm
    # Clear build residues.
    rm -f ~/rpmbuild/SOURCES/*
    # Refresh the local source content.
    createrepo_c ../ovirt_rpm
    yum-config-manager --enable ovirt-local
    yum makecache
    
  7. Compile oVirt-engine.
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    git clone https://gitee.com/src-openeuler/ovirt-engine.git -b openEuler-20.03-LTS-SP1
    cp ovirt-engine/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-engine/ovirt-engine.spec
    rpmbuild -bb ovirt-engine/ovirt-engine.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-vmconsole-proxy-helper-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-health-check-bundler-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-websocket-proxy-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-tools-backup-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-plugin-imageio-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-plugin-vmconsole-proxy-helper-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/python3-ovirt-engine-lib-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-plugin-websocket-proxy-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-plugin-cinderlib-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-base-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-plugin-ovirt-engine-common-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-tools-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-setup-plugin-ovirt-engine-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-dbscripts-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-restapi-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-backend-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-webadmin-portal-4.4.4.1-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  8. Compile ovirt-ansible-collection.
    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-ansible-collection.git
    cp ovirt-ansible-collection/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-ansible-collection/ovirt-ansible-collection.spec
    rpmbuild -bb ovirt-ansible-collection/ovirt-ansible-collection.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-ansible-collection-1.5.3-*.noarch.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  9. Compile ovirt-dependencies.
    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-dependencies.git
    cp ovirt-dependencies/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-dependencies/ovirt-dependencies.spec
    rpmbuild -bb ovirt-dependencies/ovirt-dependencies.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-dependencies-4.4.2-*.noarch.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  10. Compile ovirt-engine-nodejs-modules.
    1
    2
    3
    4
    5
    6
    7
    8
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-engine-nodejs-modules.git
    cp ovirt-engine-nodejs-modules/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-engine-nodejs-modules/ovirt-engine-nodejs-modules.spec
    rpmbuild -bb ovirt-engine-nodejs-modules/ovirt-engine-nodejs-modules.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-nodejs-modules-2.0.53-*.noarch.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    yum makecache
    
  11. Compile ovirt-engine-ui-extensions.
    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-engine-ui-extensions.git
    cp ovirt-engine-ui-extensions/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-engine-ui-extensions/ovirt-engine-ui-extensions.spec
    rpmbuild -bb ovirt-engine-ui-extensions/ovirt-engine-ui-extensions.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-ui-extensions-1.2.6-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  12. Compile ovirt-engine-wildfly.
    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-engine-wildfly.git
    cp ovirt-engine-wildfly/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-engine-wildfly/ovirt-engine-wildfly.spec
    rpmbuild -bb ovirt-engine-wildfly/ovirt-engine-wildfly.spec
    cp /root/rpmbuild/RPMS/aarch64/ovirt-engine-wildfly-19.1.0-*.aarch64.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  13. Compile ovirt-engine-wildfly-overlay.
    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-engine-wildfly-overlay.git
    cp ovirt-engine-wildfly-overlay/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-engine-wildfly-overlay/ovirt-engine-wildfly-overlay.spec
    rpmbuild -bb ovirt-engine-wildfly-overlay/ovirt-engine-wildfly-overlay.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-wildfly-overlay-19.1.0-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  14. Compile ovirt-imageio.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-imageio.git
    cp ovirt-imageio/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-imageio/ovirt-imageio.spec
    rpmbuild -bb ovirt-imageio/ovirt-imageio.spec
    cp /root/rpmbuild/RPMS/aarch64/ovirt-imageio-daemon-2.1.1-*.aarch64.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/aarch64/ovirt-imageio-client-2.1.1-*.aarch64.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/aarch64/ovirt-imageio-common-2.1.1-*.aarch64.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  15. Compile ovirt-provider-ovn.
    1
    2
    3
    4
    5
    6
    7
    8
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-provider-ovn.git
    cp ovirt-provider-ovn/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-provider-ovn/ovirt-provider-ovn.spec
    rpmbuild -bb ovirt-provider-ovn/ovirt-provider-ovn.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-provider-ovn-driver-1.2.29-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/ovirt-provider-ovn-1.2.29-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  16. Compile ovirt-cockpit-sso.
    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-cockpit-sso.git
    cp ovirt-cockpit-sso/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-cockpit-sso/ovirt-cockpit-sso.spec
    rpmbuild -bb ovirt-cockpit-sso/ovirt-cockpit-sso.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-cockpit-sso-0.1.4-*.noarch.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  17. Compile ovirt-engine-metrics.
    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-engine-metrics.git
    cp ovirt-engine-metrics/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-engine-metrics/ovirt-engine-metrics.spec
    rpmbuild -bb ovirt-engine-metrics/ovirt-engine-metrics.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-metrics-1.3.6.4-*.noarch.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  18. Compile ovirt-engine-dwh.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-engine-dwh.git
    cp ovirt-engine-dwh/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-engine-dwh/ovirt-engine-dwh.spec
    rpmbuild -bb ovirt-engine-dwh/ovirt-engine-dwh.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-dwh-grafana-integration-setup-4.4.4.1-*.noarch.rpm ../ovirt_rpm/
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-dwh-setup-4.4.4.1-*.noarch.rpm ../ovirt_rpm/
    cp /root/rpmbuild/RPMS/noarch/ovirt-engine-dwh-4.4.4.1-*.noarch.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  19. Compile collectd.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/collectd.git
    cp collectd/* ~/rpmbuild/SOURCES
    yum-builddep -y collectd/collectd.spec
    rpmbuild -bb collectd/collectd.spec --nocheck
    cp /root/rpmbuild/RPMS/aarch64/collectd-*.rpm ../ovirt_rpm/
    cp /root/rpmbuild/RPMS/aarch64/libcollectdclient-*.rpm ../ovirt_rpm/
    cp /root/rpmbuild/RPMS/aarch64/perl-Collectd-*.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  20. Compile oVirt-host.
    1
    2
    3
    4
    5
    6
    7
    8
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-host.git
    cp ovirt-host/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-host/ovirt-host.spec
    rpmbuild -bb ovirt-host/ovirt-host.spec
    cp /root/rpmbuild/RPMS/aarch64/ovirt-host-dependencies-4.4.1-*.aarch64.rpm ../ovirt_rpm/
    cp /root/rpmbuild/RPMS/aarch64/ovirt-host-4.4.1-*.aarch64.rpm ../ovirt_rpm/
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  21. Compile cockpit-ovirt.
    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/cockpit-ovirt.git
    cp cockpit-ovirt/* ~/rpmbuild/SOURCES
    yum-builddep -y cockpit-ovirt/cockpit-ovirt.spec
    rpmbuild -bb cockpit-ovirt/cockpit-ovirt.spec
    cp /root/rpmbuild/RPMS/noarch/cockpit-ovirt-dashboard-0.15.0-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  22. Compile FreeIPA.

    If an error occurs during the compilation, see FreeIPA Compilation Failure to rectify the fault.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/freeipa.git
    cp freeipa/* ~/rpmbuild/SOURCES
    yum-builddep -y freeipa/freeipa.spec --nobest
    rpmbuild -bb freeipa/freeipa.spec
    cp /root/rpmbuild/RPMS/noarch/freeipa-python-compat-4.9.3-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/aarch64/freeipa-client-samba-4.9.3-*.aarch64.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/freeipa-client-common-4.9.3-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/aarch64/freeipa-client-epn-4.9.3-*.aarch64.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/aarch64/freeipa-client-4.9.3-*.aarch64.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/python3-ipalib-4.9.3-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/python3-ipaclient-4.9.3-*.noarch.rpm ../ovirt_rpm
    cp /root/rpmbuild/RPMS/noarch/freeipa-common-4.9.3-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  23. Compile ovirt-hosted-engine-setup.
    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-hosted-engine-setup.git
    cp ovirt-hosted-engine-setup/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-hosted-engine-setup/ovirt-hosted-engine-setup.spec
    rpmbuild -bb ovirt-hosted-engine-setup/ovirt-hosted-engine-setup.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-hosted-engine-setup-2.5.0-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  24. Compile certmonger.
    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/certmonger.git
    cp certmonger/* ~/rpmbuild/SOURCES
    yum-builddep -y certmonger/certmonger.spec
    rpmbuild -bb certmonger/certmonger.spec --nocheck
    cp /root/rpmbuild/RPMS/aarch64/certmonger-0.79.11-*.aarch64.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  25. Compile vdsm-jsonrpc-java.
    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/vdsm-jsonrpc-java.git
    cp vdsm-jsonrpc-java/* ~/rpmbuild/SOURCES
    yum-builddep -y vdsm-jsonrpc-java/vdsm-jsonrpc-java.spec
    rpmbuild -bb vdsm-jsonrpc-java/vdsm-jsonrpc-java.spec
    cp /root/rpmbuild/RPMS/noarch/vdsm-jsonrpc-java-1.5.5-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  26. Compile VDSM.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/vdsm.git
    cp vdsm/* ~/rpmbuild/SOURCES
    yum-builddep -y vdsm/vdsm.spec
    rpmbuild -bb vdsm/vdsm.spec
    cp -f /root/rpmbuild/RPMS/noarch/vdsm-*.rpm ../ovirt_rpm
    cp -f /root/rpmbuild/RPMS/aarch64/vdsm-*.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    yum makecache
    
  27. Compile ovirt-hosted-engine-ha.
    1
    2
    3
    4
    5
    6
    7
    git clone -b openEuler-20.03-LTS-SP1 https://gitee.com/src-openeuler/ovirt-hosted-engine-ha.git
    cp ovirt-hosted-engine-ha/* ~/rpmbuild/SOURCES
    yum-builddep -y ovirt-hosted-engine-ha/ovirt-hosted-engine-ha.spec
    rpmbuild -bb ovirt-hosted-engine-ha/ovirt-hosted-engine-ha.spec
    cp /root/rpmbuild/RPMS/noarch/ovirt-hosted-engine-ha-2.4.5-*.noarch.rpm ../ovirt_rpm
    rm -f ~/rpmbuild/SOURCES/*
    createrepo_c ../ovirt_rpm
    
  28. Copy the oVirt software package to all nodes where oVirt is deployed.

    Copy the /root/ovirt_rpm directory to the /root directory on all nodes where oVirt is deployed.

    Run the following commands on all nodes where oVirt is deployed to clear the cache and re-create a cache:
    1
    2
    yum-config-manager --enable ovirt-local
    yum clean all && yum makecache