編譯N版ceph rpm包支持中文dashboard

一、前言

N版ceph dashboard已經支持中文了,但是用默認是英語,對於有中文需求的人可以參考以下步驟,重新編譯ceph RPM包,支持dashboard中文顯示。

二,環境準備

需要一個大內存和多核的主機可以是虛擬機,磁盤空間要足夠大(80GB),安裝centos7.6

三、下載ceph源碼包

用git clone方式下載ceph源碼需要下載ceph的子模塊,這個過程要連接國外的網站,下載速度非常的慢,因此下載ceph的tar源碼包,下載地址:https://download.ceph.com/tarballs/

四、編譯dashboard angular

ceph的dashboard使用的angular框架,默認情況下只編譯了英文包,因此需要自己重新編譯自己需要的語言包

1、解壓

下載了ceph 源碼包後,解壓

2、創建臨時文件

TEMP_DIR=`mktemp -d`

3、創建python虛擬機環境

ceph/src/tools/setup-virtualenv.sh --python=python2.7 $TEMP_DIR
4、安裝包
$TEMP_DIR/bin/pip install nodeenv
$TEMP_DIR/bin/nodeenv -p --node=10.13.0
5、進入dashboard目錄
cd  ceph/src/pybind/mgr/dashboard/frontend
6、激活python虛擬環境  
. $TEMP_DIR/bin/activate
7、安裝js相關包
npm ci
8、編譯angular
npx npm-run-all --print-label --parallel --max-parallel 2  "build :* - - -- --prod"     #編譯支持的所有語言也可以用:zh-CN編譯中文
編譯成功後查看dist目錄下是否有對應的語言文件
編譯成功後退出python虛擬環境
 deactivate
9、重新打ceph tar包
tar czvf ceph_14.2.7.orig.tar.gz ceph-14.2.7/

五、編譯ceph rpm包

1、安裝ceph編譯依賴包

執行ceph源碼目錄下的./install-deps.sh

2、安裝gcc 7.3版本

yum install centos-release-scl scl-utils-build
yum list all --enablerepo='centos-sclo-rh' 列出scl有哪些源可以用
yum install devtoolset-7-gcc.x86_64 devtoolset-7-gcc-c++.x86_64 devtoolset-7-gcc-gdb-plugin.x86_64     安裝gcc-7.3編譯工具鏈
scl enable devtoolset-7 bash     切換到gcc-7.3編譯環境

3、設置編譯環境

yum install rpm-build rpmdevtools 安裝rpm包編譯工具
rpmdev-setuptree 設置編譯環境

cp ceph-<version>.tar.gz  rpmbuild/SOURCES     將ceph 源碼壓縮包拷貝到rpmbuild目錄下

tar --strip-components=1 -C ~/rpmbuild/SPECS/ --no-anchored -xvzf ~/rpmbuild/SOURCES/ceph-<version>.tar.gz "ceph.spec" 提取ceph.sepc文件

修改文件rpmbuild/SPECS/ceph.spec  編輯Source0:        http://ceph.com/download/ceph-<version>行,

將ceph-<version>改爲rpmbuild/SOURCES下的文件名

4、編譯ceph rpm包

執行  rpmbuild -ba ~/rpmbuild/SPECS/ceph.spec編譯ceph rpm包

六、遇到的問題

1、編譯rpm包過程中可能會報需要python3

yum install python36u -y 
yum install python36u-devel -y 

2、編譯rpm包過程中出現以下錯誤

在ceph.spec文件中加入

%define _binaries_in_noarch_packages_terminate_build 0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章