最近项目发布包要求用
rpm
制作,为了适应马上要执行的自动化部署要求。
RPM build
是专门为了制作
rpm
的工具,使用也很简单,基本上按要求写好
spec
,然后运行
rpmbuild �Cbb *.spec
即可制作好
rpm,
存放在
/usr/src/redhat/RPMS/$platform/packagename-$version-$release.$platform.rpm
。
spec
文件举例如下:
Summary:
Name: slimg2jc
Version: 1.2
Release: 2011
License:
Group:
BuildRoot: /tmp/slimbuild/rpmsrc
%define slimversion_previous 6.16
%description
%prep
%build
%install
%check
%files
/a/b
/c/d
…
%defattr(-,root,root)
%doc %attr(0444,root,root)
%pre
%post
%postun
简单介绍这些参数:
Summary:
包的简介
Name:
包名
Version:
包版本号
Release:
发布号
License:
许可类型
Group:
发布组
BuildRoot:
包文件目录的虚拟根目录对应目录,在
build
服务器可以基于此目录布局包目录
%define var1 val1
定义变量
var1
值为
val1
。并且此变量和
Name
,
Version, Release
等一样是用
%{var1}
来引用。而
shell
里的变量还是
${var2}
来引用。
%description
:包说明
%prep
:准备配置,跟
autoconf/make
结合使用。
%build
:编译包应用程序,跟
autoconf/make
结合使用。
%install
:生成包应用程序到对应目录,跟
autoconf/make
结合使用。
%check
:测试应用程序,跟
autoconf/make
结合使用。
%files
:包目录结果,目录代表其下所有文件,可以包含
%doc, %attr, %conf
,
%exclude
来灵活定义包目录结构
%defattr(-,root,root)
:定义包默认宿主为
root
组,
root
用户,权限模式为
umask
定义(也可以用
0777
等模式值显式指定)。
%pre:
安装前运行的脚本
%post
:安装后运行的脚本
%postun
:卸载后运行的脚本
%preun:
卸载前运行的脚本
另外,所有
4
种
shell
里可以获得
$1
系统变量,该值在安装时为
0
,卸载时为
1
,升级时为
2
。
网络上说
preun
会在升级安装时得到执行,
postun
在升级安装不会执行。根据个人实践,
postun
会在升级安装时执行,比如
1.1
升级到
1.2
,
1.1
的
postun
定义会得到执行。并且升级的执行顺序还是
1.2
的安装
,1.1
的卸载。所以
1.1
的
postun
最后执行。记住:
$1
和
un/ins
都是相对的。比如
1.1
升级到
1.2,
对于
1.1
的
rpm shell
来说就是卸载。
补充几个有用的命令来实现包的管理:
#rpm �Cev �Crepackage Package1(
卸载包并且备份包到
/var/spool/repackage/package1.rpm,
更改的配置还得到保留
)
#rpm �Civh �Cnomd5 �Cnodigest Repakcage1 (
重装备份
rpm
包,因为备份包包含更新的配置,所以校验通不过,加参数忽略
)
Jmeter
是测试
SOAP web
服务的好工具,不过如果测试基于
HTTPS
的站点时,你要注意一个问题,如果你的站点
SSL
证书是没有
CA
认证,而是自己用
jdk keytool
生成的,那就需要加配置来读取证书了。方法是找到
Jmeter
启动文件比如
jmeter.bat
,定位到
JAVA
启动命令行,加如下宏参数
,
证书库文件路径,
库文件密码(同证书密码)。
-Djavax.net.ssl.trustStore=d:\ Path1\tclient.keystore -Djavx.net.ssl.trustStorePassword=changeit