[lsmd] 回复: [lsmd]回复: multipkg问题

  • From: cmesoft <cmesoft@xxxxxxx>
  • To: lsmd <lsmd@xxxxxxxxxxxxx>
  • Date: Tue, 26 Nov 2013 07:39:08 +0800

建议:
建议一:希望能举一个比较复杂的例子,index.yaml 
怎么写,需要哪些脚本?比如编译php的rpm实例,因为依赖包较多,所有一个例子基本就熟悉怎么用multipkg了。
建议二:rpm卸载的时候是不是调用执行脚本preun.sh里面的内容,是不是需要在脚本里面写上 如
rm -f /usr/local/php  
rm -f /usr/lib/php.so等
建议三:依赖包这些如何做到标准化,如编译php,之前需要安装很多扩展包,这些扩展包就是依赖包?
您在书中说的文件包名不是文件名,文件包名指的是:{name}-{version}-{release} ?
(1)
rpm 在卸载时是会调用preun或者postun这两个脚本的,但是有一点必须明确,preun和postun并不是用来删除安装的文件,
rpm的文件列表在rpm被卸载时会自动删除掉,并不需要在hook脚本中做,一般来说,preun可以做一些停止服务,备份数据日志等操作。
postun在升级时最后执行,可以多一些新旧包对比相关的操作,而postun在卸载时,基本上不需要做任何事情。
(2)
依赖包需要自己心里明确,然后写到index.yaml中,php安装之前要安装的扩展包,指的就是依赖包。
(3)
文件名称不同于包名称,指的就是:"rpm文件的名称和rpm所包含的软件包的名称不一样"。
比如 “multipkg-1.2-1.noarch.rpm ”这个rpm文件,封装的rpm包是“multipkg-1.2-1.noarch ”,当把
multipkg-1.2-1.noarch.rpm 重命名成 123.rpm时,它封装的rpm包还是 “multipkg-1.2-1.noarch”
文件封装的包名,一般可以用 {name}-{version}-{release} 来标示。




cmesoft

发件人: duanjigang1983 
发送时间: 2013-11-25 23:29
收件人: lsmd
抄送: xjg2010go; lsmd
主题: [lsmd]回复: multipkg问题
@xjg2010go:
把你发的工程稍微修改下,就可以了:
(1): 删掉 scripts/build 
中第一行的创建目录的语句即可。添加了日志重定向功能,可以在 multipkg 编译RPM包时 tail -f /tmp/build.log
查看构建日志,也可以直接
multipkg /tmp/rpm/wgt -v 
就能看到日志。
(2):把source 中的压缩格式的源码直接提取到和index.yaml一级目录,无需放在source 目录中。

====================目录结构=========
tree rpm
rpm
└── wget
    ├── index.yaml
    ├── root
    │   └── etc
    │       └── wget.conf
    ├── scripts
    │   ├── build
    │   ├── post.sh.bak
    │   └── preun.sh.bak
    └── wget-1.14.tar.gz
===============build的内容===========
cat rpm/wget/scripts/build 
#!/bin/sh
#mkdir -p  /usr/local/bin/
exec 2>&1 >/tmp/build.log
./configure --prefix=/usr/local/wget --with-ssl=openssl
make
make install
=======================
制作好rpm文件后
rpm -qpl xxx.rpm 
就能看到信息了。




言行一致,知行合一 
<duanjigang1983@xxxxxxxxx,cmesoft@xxxxxxx>

发件人: xjg2010go
发送时间: 2013-11-25 17:13个,
收件人: duanjigang1983
主题: multipkg问题
这是我的目录
[root@localhost rpm]# pwd
/data1/source_create/rpm
.

大概意思是找不到解压目录!


建议:
建议一:希望能举一个比较复杂的例子,index.yaml 
怎么写,需要哪些脚本?比如编译php的rpm实例,因为依赖包较多,所有一个例子基本就熟悉怎么用multipkg了。
建议二:rpm卸载的时候是不是调用执行脚本preun.sh里面的内容,是不是需要在脚本里面写上 如
rm -f /usr/local/php  
rm -f /usr/lib/php.so等
建议三:依赖包这些如何做到标准化,如编译php,之前需要安装很多扩展包,这些扩展包就是依赖包?
您在书中说的文件包名不是文件名,文件包名指的是:{name}-{version}-{release} ?





xjg2010go

JPEG image

JPEG image

Other related posts:

  • » [lsmd] 回复: [lsmd]回复: multipkg问题 - cmesoft