构建CEPH deb包
来源:互联网 发布:同步教育软件 编辑:程序博客网 时间:2024/06/05 21:02
注:操作系统为UBUNTU14.4,3.X的内核,安装的CEPH版本为0.94.5(hammer)
思路
根据github上下载的CEPH源码,然后打包成deb包。通过dpkg –i指令替换ceph-deployinstall安装ceph的包,其他直接用ceph-deploy部署集群。或者是将打包的deb包发布本地repo,替换掉ceph-deploy的网络repo,按照ceph-deploy正常的安装步骤即可。
github下载源码
git clone --recursive https://github.com/ceph/ceph.gitcd cephgit checkout v0.94.5 -f
Notes:
1.下载比较慢,需下载不少submodule,若中途因为网络问题,切换到ceph目录后,可通过以下指令继续下载。
2. 必须git下载,否则会缺少文件
3.据说早上七八点的时候下载特别快
git submodule update --init --recursive
安装依赖包及配置
./install-deps.sh./autogen.sh./configure
编译(可选)
该步骤可以省去,因为打包工具dpkg也会执行编译命令。因为编译工具采用make,会检测那些文件已编译过,提前编译可以节省打包工具的打包时间。
make –j 4
其中-j是打开多线程编译,4表示为4线程,一般为核心数的两倍,查看核心数的指令
cat /proc/cpuinfo | grep cores
如果数字为核心数的两倍容易报错,数字指定为核心数值也可。
构建deb包
apt-get install debhelperdpkg-buildpackage –j4
编译完成后如下
制作deb包本地源
下载依赖包
apt-get install dpkg-dev
创建目录结构
mkdir /home/ceph-hammercd /home/ceph-hammermkdir poolsmkdir -p dists/trusty/main/binary-i386mkdir -p dists/trusty/main/binary-amd64
拷贝ceph软件包到pools
cp *.deb /home/ceph-hammer/pools
生成override 文件
把pools目录下所有的deb包包名写入文件override中
ls -1 pools | sed 's/_.*$/ extra BOGUS/' | uniq > override
生成Packages
把所有包的包名、版本号、依赖关系等信息写入文件Packages中
dpkg-scanpackages pools override > dists/trusty/main/binary-i386/Packagesdpkg-scanpackages pools override > dists/trusty/main/binary-amd64/Packages
允许ubuntu的packages未认证
echo "APT::Get::AllowUnauthenticated 1 ;" | sudo tee -a /etc/apt/apt.conf
至此,ceph本地源制作完成。
方法一:dpkg直接安装
切换到deb包的路径,执行一下命令即可
(注:需先安装一些依赖包,使用脚本install_deps.sh即可自动安装)
dpkg –i *.deb
注意!不要使用ceph-deploy install指令,否则会自动联网下载ceph安装包。
安装完成后,下载ceph-deploy,除了ceph-deploy install命令不用之外,其他照常配置集群即可。
方法二:替换repo安装
下载ceph-deploy
添加release key
wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
添加ceph软件源(用来下载新版的ceph-deploy,否则为1.4的版本):
echo deb http://download.ceph.com/debian-hammer/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
更新源
apt-get update
下载ceph-deploy
apt-get install ceph-deploy
将源修改为本地源
修改repo库
vi /usr/lib/python2.7/dist-packages/ceph_deploy/hosts/debian/install.py
找到以下代码:
if version_kind == 'stable': url = 'http://ceph.com/debian-{version}/'.format( version=version,)elif version_kind == 'testing': url = 'http://ceph.com/debian-testing/'
修改成
if version_kind == 'stable': # url = 'http://ceph.com/debian-{version}/'.format( url = 'file:///home/ceph-{version}/'.format( version=version, ) elif version_kind == 'testing': url = 'http://ceph.com/debian-testing/'
强制指定版本,
vi /usr/lib/python2.7/dist-packages/ceph_deploy/install.py
找到以下代码
version_str = args.version_kind if version: version_str += ' version {version}'.format(version=version) LOG.debug(
修改为
version_str = args.version_kind version = 'hammer' ## add by yxj if version: version_str += ' version {version}'.format(version=version) LOG.debug(
取消MDS的安装(如果不需要的话),找到以下代码
vi /usr/lib/python2.7/dist-packages/ceph_deploy/gatherkeys.py
并加注释
cap_dict = { 'admin' : [ 'osd', 'allow *', # 'mds', 'allow *', ##commet by yxj 'mon', 'allow *' ],
找到以下代码,加入一行代码
vi /usr/lib/python2.7/dist-packages/ceph_deploy/hosts/debian/install.py
加入
packages = ['ceph','radosgw'] if packages: distro.packager.install( packages, extra_install_flags=extra_install_flags )
后续按官网的ceph-deploy部署方式部署即可。
打包ceph-deploy
git clone https://github.com/ceph/ceph-deploy.gitcd ceph-deploygit checkout v1.5.20 –fdpkg-buildpackage
- 构建CEPH deb包
- 构建ceph deb 安装包
- deb包构建手册
- 从源码包构建deb二进制软件包
- deb包的构建(dpkg-buildpackage)过程详细过程说明
- 从源码包构建.deb文件的备忘
- deb包
- Ceph rpm构建
- 如何制作deb包
- DEB安装包制作方法
- deb 包新格式
- 制作Deb包
- .deb包制作方法
- 从无到有制作DEB包
- deb包的格式
- 如何制作deb包
- deb包 打包过程
- deb包 内容解析
- Android视图绘制流程完全解析,带你一步步深入了解View(二)
- Android开发 之 帧动画
- 技术支持
- java 源码解析(01) HashMap
- 【C语言】数组形参
- 构建CEPH deb包
- Unity3D GoldMiner--GameOver
- DOM小结
- 用 volume container 共享数据
- 嵌入式驱动开发之认识驱动的位置
- html的<script>标签中多行注释报错解决方法
- HDU5937(DFS+剪枝)
- 【C语言】函数
- HTML入门笔记3-HTML中h1到h6标签