编译环境准备
以下软件编译的相关操作,都请在编译机执行。
配置本地源
- 下载liboath源码及补丁。
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/tree/openEuler-21.03-20210330
- 通过Yum方式安装RPM打包所需的依赖。
1
yum install wget rpmdevtools gtk-doc pam-devel xmlsec1-devel libtool libtool-ltdl-devel createrepo cmake -y
Yum源为系统默认的公网源,原生系统配置好
代理 即可执行。 - 创建“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
- 拷贝.spec文件到指定的RPM包编译目录。
cp oath-toolkit.spec /root/rpmbuild/SPECS/
- 编译RPM包。
1
rpmbuild -bb /root/rpmbuild/SPECS/oath-toolkit.spec
- 将编译好的RPM包作为本地Yum源。
1 2 3
mkdir -p /home/oath cp -r /root/rpmbuild/RPMS/* /home/oath/ cd /home/oath && createrepo .
- 配置repo文件。
- 新建“local.repo”文件。
1
vim /etc/yum.repos.d/local.repo
若提示无vim命令,可使用vi命令进行创建,或执行yum install vim -y安装vim命令。
- 按“i”键进入编辑模式,添加以下内容。
1 2 3 4 5 6
[local-oath] name=local-oath baseurl=file:///home/oath enabled=1 gpgcheck=0 priority=1
- 按“Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。
- 新建“local.repo”文件。
- 设置Yum证书验证状态为不验证。
- 打开“yum.conf”文件。
1
vim /etc/yum.conf
- 按“i”键进入编辑模式,添加如下内容至末尾。
1 2
sslverify=false deltarpm=0
- 按“Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。
- 打开“yum.conf”文件。
- 配置pip华为代理,以提高下载速度。
- 新建“.pip”目录并在该目录下新建“pip.conf”文件。
1 2
mkdir -p ~/.pip vim ~/.pip/pip.conf
- 按“i”键进入编辑模式,添加如下内容。
1 2 3 4
[global] timeout = 120 index-url = https://repo.huaweicloud.com/repository/pypi/simple trusted-host = repo.huaweicloud.com
- 按“Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。
- 新建“.pip”目录并在该目录下新建“pip.conf”文件。
安装依赖包
- 配置epel源。
- 新建“epel.repo”文件。
1
vim /etc/yum.repos.d/epel.repo
- 按“i”键进入编辑模式,添加如下内容。
1 2 3 4 5 6
[epel] name=epel baseurl=https://repo.huaweicloud.com/epel/7/aarch64/ enabled=1 gpgcheck=0 priority=1
- 按“Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。
- 新建“epel.repo”文件。
- 使用epel源安装openEuler中缺少的依赖。
1
yum install python-routes python-tox -y
- 删除epel源。
1
rm -rf /etc/yum.repos.d/epel.repo
epel源仅用于2中的两个依赖的安装,使用后必须删除,否则后续步骤将会从epel源下载与openEuler冲突的RPM包。
- 使用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目录。
- 修改“.rpmmacros”文件。
- 打开文件。
1
vim /root/.rpmmacros
- 按“i”键进入编辑模式,修改“%_topdir”的路径为“/home/rpmbuild”。
- 按“Esc”键退出编辑模式,输入:wq!并按“Enter”键保存退出文件。
- 打开文件。
- 再次执行RPMbuild安装命令。
1
rpmdev-setuptree
父主题: 软件编译