首页 > 使用rpmbuild对ceph的源码包进行重新打包

使用rpmbuild对ceph的源码包进行重新打包

进入ceph源码包下载ceph相关的rpm包和tar包

我们下载的是ceph-12.1.1-0.el7.src.rpmceph L版本的rpm包

执行命令rpmbuild --rebuild ceph-12.1.1-0.el7.src.rpm

等待它执行到configuring done之后就强行终止

-- Found cython
-- Performing Test HAS_VTA
-- Performing Test HAS_VTA - Success
-- Check if the system is big endian
-- Searching 16 bit integer
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Found PythonInterp: /bin/python2.7 (found version "2.7.5") 
-- exclude following files under src: *.js;*.css;civetweb;erasure-code/jerasure/jerasure;erasure-code/jerasure/gf-complete;rocksdb;googletest;spdk;xxHash;isa-l;lua;Beast;boost;dpdk;zstd;crypto/isa-l/isa-l_crypto;blkin;rapidjson
-- Configuring done

会在当前用户目录下生成一个rpmbuild文件夹,该文件夹的目录层级如下

BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS

此时在SOURCES目录下存放的是该版本的ceph源码包ceph-12.1.1.tar.bz2,如果完全执行完rpmbuild --rebuild命令,那么RPMS存放的是这个版本Ceph所有的rpm包,BUILD存放解压后的源码文件夹,SPECS存放源码编译以及打包的规则文件ceph.spec文件,SRPMS文件夹存最终重新打包的源码二进制rpm包文件ceph-12.2.1-0.el7.centos.src.rpm(该文件可以执行用rpm -i 执行,生成rpmbuild文件夹)

综上,如果我们对自己源码有改动,则只需要进入SORUCES文件夹下,使用tar jxvf ceph-12.1.1.tar.bz2解压该源码包,将自己代码合入之后再执行tar jcvf ceph-12.1.1.tar.bz2 ceph-12.1.1再次执行压缩该文件

最后进入SPECS文件夹下,执行rpmbuild -ba ceph.sepc重新构建Ceph的源码包(SRPMS目录下)和二进制软件包(RPMS目录下)。

更多相关:

  • 上一次我在Ubuntu 16.04.3 LTS上从源码安装了Go,当时最新的版本是1.10,参见我之前的博文 https://blog.csdn.net/tao_627/article/details/79375950 这里,我想将Go更新到现在的最新版本,下面是我的折腾过程,很简单,只需要替换Go语言的源码文件就可以了。 从G...

  • Mastering Algorithm with C是一本非常经典和独具个性的算法书,主要是从程序员的角度,对算法领域的基本内容,通过C语言进行源码实现,其附带的源码非常详细,对初接触这个领域的程序员很有参考价值.我特地将该书源码的使用方法做了笔记,放在这样,以便日后参考. 下面是该书的封面: 1.首先从OReilly...

  • spring源码开始的时候是通过SVN来管理代码的,后来是转移到github上管理源码的,可以通过在github上直接下载spring的源码。 下面讲解如何通过在eclipse上的插件git来获取spring源码的 主要步骤如下: 1、首先需要在Eclipse中安装git的插件,在Eclipse-->Help-->Eclipse Ma...

  • 在某些情况下(例如通过网络访问数据),常常不希望程序卡住而占用太多时间以至于造成界面假死。在这时、我们可以通过Thread、Thread + Invoke(UI)或者是 delegate.BeginInvoke 来避免界面假死,但是这样做时,某些代码或者是某个方法的执行超时的时间还是无法操控的。那么我们又是否有一种比较通用的方法、来设...

  • 传参 如果程序执行的时候需要加入参数,如 ./sample aa bb 使用 gdb 的时候可以使用如下方式 gdb --args ./sample aa bb 执行 启动 gdb 之后,直接使用 r,就是 run 的意思,或者可以使用 b 加一个断点进行调试。处理信号 如果在使用的时候,遇到类似下面的报错 Threa...

  • 进程的图文形象表示 阮一峰–进程与线程的一个简单解释 多进程实质 现在,多核CPU已经非常普及了,但是,即使过去的单核CPU,也可以执行多任务。由于CPU执行代码都是顺序执行的,那么,单核CPU是怎么执行多任务的呢? 答案就是操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,再切换到任务...

  • redis 事物: Redis 事物的实现: 首先 wath监控键值 myKey开启批量执行 multi,执行命令入列,执行 exec 。如果监控的键值mykey 没有被修改过,则exec 中批量执行的命令成功,否则执行失败。无论执行成功与否,都会执行取消wath的执行  Redis multi 批量执行,是先把批量中的命令放入队列...

  • 一、准备工作: 1.登录服务器,切换到root用户(su - root,然后输入密码,按enter),进入根目录:cd / 2.进入要安装jdk的目录,自己可以创建一个java目录,执行命令如下: cd /usr/local/ mkdir java 二、下载安装包 1.打开官网下载界面:https://www.oracle.com/...

  • 【从零开始的ROS四轴机械臂控制(二)】四、urdf文件及gazebo仿真1.simple_arm示例(1)config文件夹(2)launch文件夹(3)meshes文件夹(4)urdf文件夹(5)worlds文件夹(6)文件间联系2.根据simple_arm示例改进arm0文件夹(1)urdf文件夹①arm1.gazebo.xac...

  •     1、创建一个新的项目文件夹,复制之前的项目文件夹里面除了node_modules文件夹以外的内容到新的项目文件夹   2、然后修改根目录下的package.json文件,把name修改成你的项目名称 3、修改根目录下面的index.html文件的title,改好之后,vue文件的title就改过来了 4、重新n...

  • 连接远程服务器CredSSP加密Oracle修正报错解决办法: 打开注册表,快捷输入 “regedit”(类似找命令提示符 输入 cmd 一样)找文件夹 路径:HKLM(缩写)SoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters,大...

  • CentOS虚拟机和物理机共享文件夹实现过程。 一、  安装VMware Tools VMwareTools的安装脚本是要使用到perl的,而CentOS 6自身不带perl,所以需要自己安装。可以自己下载源代码编译,也可以直接用yum来安装。 yum install perl   2、虚拟机工具栏-》虚拟机-》安装VMware To...

  • 电脑不知道怎么设置的根目录下看不到所有文件夹 而且打开一个新的文件夹显示 Forbidden You don't have permission to access /atina/ on this server. 最后没办法只能手动把文件夹加上权限 chmod -R 777 atina  //-R 递归修改,“/文件夹/“以下所有内容...