设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站将关闭,不再开放。由于PC时代已远逝 。在这个后移动互联网时代,我们继续携手前行,保持对技术的热情。共同构建linuxtone知识星球欢迎加入,一起讨论技术、招聘人才、分享资源。请新老linuxtone人 扫码移步到 知识星球:linuxtone

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 8519|回复: 5

分析制作rpm包必备工具rpmdevtools [复制链接]

LT管理团队

社区首席勤杂工

Rank: 9Rank: 9Rank: 9

签到
474
注册时间
2008-5-19
最后登录
2019-10-28
在线时间
1946 小时
阅读权限
200
积分
59273
帖子
2551
主题
1209
精华
25
UID
1

LT总司令

发表于 2009-12-13 14:17:08 |显示全部楼层
How to build an RPM package (on CentOS) ?

install "epel" package, see Fedora Project Wiki
# rpm -Uvh http://download.fedora.redhat.co ... ease-5-3.noarch.rpm# rpm -ivh epel-release-5-3.noarch.rpm


As root user Install rpmdevtools :
# yum install rpmdevtools
$ cd ~/
$ rpmdev-setuptree

To create a new package :
$ rpmdev-newspec mypackage
$ rpmbuild -ba rpmbuild/SPECS/mypackage.spec



rpmdev-setuptreeCreate RPM build tree within user's home directory
rpmdev-diffDiff contents of two archives
rpmdev-newspecCreates new .spec from template
rpmdev-rmdevelrpmsFind (and optionally remove) "development" RPMs
rpmdev-checksigCheck package signatures using alternate RPM keyring
rpminfoPrint information about executables and libraries
rpmdev-md5Display the md5sum of all files in an RPM
rpmdev-vercmpRPM version comparison checker
spectoolExpand and download sources and patches in specfiles
rpmdev-wipetreeErase all files within dirs created by rpmdev-setuptree
rpmdev-extractExtract various archives, "tar xvf" style
<-sina_sign,1762622645,2a5b1a59,10->感谢大家对linuxtone的支持!</strong>

Rank: 6Rank: 6

注册时间
2008-6-13
最后登录
2014-8-6
在线时间
219 小时
阅读权限
70
积分
8688
帖子
971
主题
181
精华
0
UID
74

LT粉丝

发表于 2010-4-6 21:36:29 |显示全部楼层
补充:
查看rpm包安装时执行的脚本:
rpm -qp --scripts filename.rpm

示例:
$ rpm -qp --scripts memcached-1.2.8-1.el5.x86_64.rpm

preinstall scriptlet (using /bin/sh):
getent group memcached >/dev/null || groupadd -r memcached
getent passwd memcached >/dev/null || \
useradd -r -g memcached -d /var/run/memcached \
    -s /sbin/nologin -c "Memcached daemon" memcached
exit 0
postinstall scriptlet (using /bin/sh):
/sbin/chkconfig --add memcached
preuninstall scriptlet (using /bin/sh):
if [ "$1" = 0 ] ; then
    /sbin/service memcached stop > /dev/null 2>&1
    /sbin/chkconfig --del memcached
fi
exit 0
postuninstall scriptlet (using /bin/sh):
if [ "$1" -ge 1 ]; then
    /sbin/service memcached condrestart > /dev/null 2>&1
fi
exit 0


# rpm -q --scripts packageName
# rpm -q --scripts httpd

preinstall scriptlet (using /bin/sh):
getent group memcached >/dev/null || groupadd -r memcached
getent passwd memcached >/dev/null || \
useradd -r -g memcached -d /var/run/memcached \
    -s /sbin/nologin -c "Memcached daemon" memcached
exit 0
postinstall scriptlet (using /bin/sh):
/sbin/chkconfig --add memcached
preuninstall scriptlet (using /bin/sh):
if [ "$1" = 0 ] ; then
    /sbin/service memcached stop > /dev/null 2>&1
    /sbin/chkconfig --del memcached
fi
exit 0
postuninstall scriptlet (using /bin/sh):
if [ "$1" -ge 1 ]; then
    /sbin/service memcached condrestart > /dev/null 2>&1
fi
exit 0
[root@txvip1 tmp]# rpm -q --scripts httpd
preinstall scriptlet (using /bin/sh):
# Add the "apache" user
/usr/sbin/useradd -c "Apache" -u 48 \
        -s /sbin/nologin -r -d /var/www apache 2> /dev/null || :
postinstall scriptlet (using /bin/sh):
# Register the httpd service
/sbin/chkconfig --add httpd
preuninstall scriptlet (using /bin/sh):
if [ $1 = 0 ]; then
        /sbin/service httpd stop > /dev/null 2>&1
        /sbin/chkconfig --del httpd
fi

使用道具 举报

Rank: 3Rank: 3

注册时间
2010-7-14
最后登录
2019-7-22
在线时间
61 小时
阅读权限
30
积分
477
帖子
3
主题
0
精华
0
UID
9805
发表于 2010-8-25 11:57:05 |显示全部楼层
rpm -qp --scripts ,cool

使用道具 举报

Rank: 8Rank: 8

注册时间
2011-3-29
最后登录
2014-8-28
在线时间
148 小时
阅读权限
90
积分
28036
帖子
68
主题
7
精华
0
UID
12603
发表于 2011-6-7 21:03:10 |显示全部楼层
回复 dgww 的帖子

最近正在搞这个rpm封包,谢谢

使用道具 举报

Rank: 6Rank: 6

注册时间
2011-10-20
最后登录
2014-2-20
在线时间
36 小时
阅读权限
70
积分
9699
帖子
130
主题
2
精华
0
UID
15807
发表于 2012-3-20 16:18:45 |显示全部楼层
谢谢楼主,  如果能够用实例来演示一下构建rpm包的全过程就好了.例如做个全新的nginx的rpm包,或者nagios的rpm包.演示整个过程.呵呵
好久木有回来了,感觉真亲切!

使用道具 举报

Rank: 3Rank: 3

注册时间
2013-12-26
最后登录
2014-1-6
在线时间
2 小时
阅读权限
30
积分
360
帖子
80
主题
0
精华
0
UID
40702
发表于 2013-12-30 17:12:24 |显示全部楼层
Keycer是一家位于荷兰的基础网络服务提供商,全球IP单一架构,在客户单台服务器,提供任意国家的IP
全能独立IP空间,支持IP访问网站,独立IP更利于SEO,让您选择更专业,海外免备案空间,海外服务器,稳定高速。
新品发布
全球最低价 限量50台供应
每人限购3台
•        6核心CPU
•        12GB 内存
•        2TB硬盘
•        1TB流量
•        256个C段不连续IP
•        大机房质量保障/全球IP

更多请点击: http://www.keycer.org/support/cart/cloud-promotion/&step=0
详情咨询QQ:800066022

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2019-11-12 19:12 , Processed in 0.024347 second(s), 14 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部