最近项目发布包要求用
rpm
制作,为了适应马上要执行的自动化部署要求。
RPM build
是专门为了制作
rpm
的工具,使用也很简单,基本上按要求写好
spec
,然后运行
rpmbuild –bb *.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
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

%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 –ev –repackage Package1(
卸载包并且备份包到
/var/spool/repackage/package1.rpm,
更改的配置还得到保留
)
#rpm –ivh –nomd5 –nodigest 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