在銀河麒麟V10下編譯ceph 15.2.13


python源碼下載地址
 
CEPH源碼包下載地址
 
提示:編譯機器務必內存大一點,16GB以上,磁盤空間留足一點!!! 
 
1、創建rpmbuild目錄
cd ~
mkdir rpmbuild/{BUILD,SOURCES,SPECS,RPMS,BUILDROOT} -pv

2、下載ceph源碼,拷貝到/root/rpmbuild/SOURCES中

3、解壓源碼包(主要是拿源碼包中的spec文件)

tar -xvf ceph-15.2.13.tar.gz

4、安裝編譯依賴環境和編譯工具

yum install make python-devel openssl-devel graphviz autoconf automake rpm-build libtool

5、手動安裝gcc 8.3.1,銀河麒麟V10 ISO包的Packages-gcc下有8.3.11的包,拷貝到系統中,使用rpm -Uvh *.rpm安裝,提示缺少依賴,yum install 解決依賴

6、進入源碼目錄,修改ceph.spec,將Source0 定義的包名改成tar.gz格式的,本例中下載的為tar.gz的包,故需要修改相應的

.......
%if 0%{?suse_version}
Group:          System/Filesystems
%endif
URL:            http://ceph.com/
Source0:        http://ceph.com/download/ceph-15.2.13.tar.gz
.......

 7、安裝相關依賴

yum install CUnit-devel boost-random cmake expat-devel fuse-devel gperf libaio-devel libbabeltrace-devel libblkid-devel libcap-ng-devel libcurl-devel libibverbs-devel libnl3-devel librabbitmq-devel librdkafka-devel librdmacm-devel libxml2-devel lttng-ust-devel lz4-devel ncurses-devel nss-devel openldap-devel python3-Cython python3-devel python3-prettytable python3-sphinx  snappy-devel valgrind-devel xfsprogs-devel xmlstarlet yasm systemd-devel leveldb-devel spax at time mailx ed sendmail util-linux-user cups-client gperftools-devel gperftools-libs nasm  lua-devel libicu-devel gperftools-devel cryptsetup-devel

8、手動安裝kylin10缺失的包,用el8的包替代

liboath-2.6.2-3.el8.aarch64.rpm
liboath-devel-2.6.2-3.el8.aarch64.rpm
redhat-lsb-submod-security-4.1-47.el8.aarch64.rpm
redhat-lsb-core-4.1-47.el8.aarch64.rpm

9、其中redhat-rpm-config,銀河麒麟下是kylin-rpm-config,rpm -qa | grep rpm-config查詢一下,如果沒有的話yum install kylin-rpm-config一個

然后修改ceph.spec,注釋掉BuildRequires:  redhat-rpm-config
......
#hardened-cc1
%if 0%{?fedora} || 0%{?rhel}
# BuildRequires:  redhat-rpm-config
%endif
......

10、修改系統默認的python版本為3.7.4

11、在/usr/lib/rpm/macros文件中有一個定義:

%_unpackaged_files_terminate_build 1,把1改為0只警告
 
12、最后使用rpmbuild -ba --target=$(uname -m) ceph.spec 進行編譯
 
特別提醒:建議對swap擴容一下。使用free -m 查看swap大小,如果只有4或者8G的,建議擴容一下。否則編譯到一半會因為無法分配內存報錯
# 在/swap下創建swapfile文件,不要在/tmp下創建swapfile
mkdir -p /swap
dd if=/dev/zero of=/swap/swapfile bs=1M count=16384

# 格式化swap
mkswap /swap/swapfile

# 掛載swap
swapon /swap/swapfile

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM