Linux下RPM打包制作过程
<p>开始前的准备</p>
<p>
<strong>安装rpmbuild软件包</strong></p>
<p>
yum -y install rpm-build</p>
<p>
生成相关目录</p>
<p>
要生成rpm相关目录,可以手动创建,也可以通过rpmbuild命令创建。如:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterxml" id="highlighter_879691">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="xml plain"># rpmbuild zabbix_agentd_ops.spec </code>
</div>
<div class="line number2 index1 alt1">
<code class="xml plain">error: File /root/rpmbuild/SOURCES/zabbix-3.0.3.tar.gz: No such file or directory</code>
</div>
<div class="line number3 index2 alt2">
<code class="xml plain">有报错,无需理会,可以看到rpmbuild目录已经创建完成</code>
</div>
<div class="line number4 index3 alt1">
<code class="xml plain"># tree rpmbuild/</code>
</div>
<div class="line number5 index4 alt2">
<code class="xml plain">rpmbuild/</code>
</div>
<div class="line number6 index5 alt1">
<code class="xml plain">├── BUILD</code>
</div>
<div class="line number7 index6 alt2">
<code class="xml plain">├── BUILDROOT</code>
</div>
<div class="line number8 index7 alt1">
<code class="xml plain">├── RPMS</code>
</div>
<div class="line number9 index8 alt2">
<code class="xml plain">├── SOURCES</code>
</div>
<div class="line number10 index9 alt1">
<code class="xml plain">├── SPECS</code>
</div>
<div class="line number11 index10 alt2">
<code class="xml plain">└── SRPMS</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>编写SPEC文件</strong></p>
<p>
SPEC关键字</p>
<p>
Name: 软件包的名称,后面可使用%{name}的方式引用</p>
<p>
Summary: 软件包的内容概要</p>
<p>
Version: 软件的实际版本号,例如:1.0.1等,后面可使用%{version}引用</p>
<p>
Release: 发布序列号,例如:1linuxing等,标明第几次打包,后面可使用%{release}引用</p>
<p>
Group: 软件分组,建议使用标准分组</p>
<p>
License: 软件授权方式,通常就是GPL</p>
<p>
Source: 源代码包,可以带多个用Source1、Source2等源,后面也可以用%{source1}、%{source2}引用</p>
<p>
BuildRoot: 这个是安装或编译时使用的“虚拟目录”,考虑到多用户的环境,一般定义为:%{tmppath}/{name}-%{version}-%{release}-root或%{tmppath}/%{name}-%{version}-%{release}-buildroot-%%__id_u} -n}.该参数非常重要,因为在生成rpm的过程中,执行make install时就会把软件安装到上述的路径中,在打包的时候,同样依赖“虚拟目录”为“根目录”进行操作。后面可使用$RPM_BUILD_ROOT 方式引用。</p>
<p>
URL: 软件的主页</p>
<p>
Vendor: 发行商或打包组织的信息,例如RedFlag Co,Ltd</p>
<p>
Disstribution: 发行版标识</p>
<p>
Patch: 补丁源码,可使用Patch1、Patch2等标识多个补丁,使用%patch0或%{patch0}引用</p>
<p>
Prefix: %{_prefix} 这个主要是为了解决今后安装rpm包时,并不一定把软件安装到rpm中打包的目录的情况。这样,必须在这里定义该标识,并在编写%install脚本的时候引用,才能实现rpm安装时重新指定位置的功能</p>
<p>
Prefix: %{sysconfdir} 这个原因和上面的一样,但由于%{prefix}指/usr,而对于其他的文件,例如/etc下的配置文件,则需要用%{_sysconfdir}标识</p>
<p>
Build Arch: 指编译的目标处理器架构,noarch标识不指定,但通常都是以/usr/lib/rpm/marcros中的内容为默认值</p>
<p>
Requires: 该rpm包所依赖的软件包名称,可以用>=或<=表示大于或小于某一特定版本,例如:libpng-devel >= 1.0.20 zlib ※“>=”号两边需用空格隔开,而不同软件名称也用空格分开,还有例如PreReq、Requires(pre)、Requires(post)、Requires(preun)、Requires(postun)、BuildRequires等都是针对不同阶段的依赖指定</p>
<p>
Provides: 指明本软件一些特定的功能,以便其他rpm识别</p>
<p>
Packager: 打包者的信息</p>
<p>
%description 软件的详细说明</p>
<p>
SPEC脚本主体</p>
<p>
%prep 预处理脚本</p>
<p>
%setup -n %{name}-%{version}** 把源码包解压并放好通常是从/usr/src/asianux/SOURCES里的包解压到/usr/src/asianux/BUILD/%{name}-%{version}中。一般用%setup -c就可以了,但有两种情况:一就是同时编译多个源码包,二就是源码的tar包的名称与解压出来的目录不一致,此时,就需要使用-n参数指定一下了。</p>
<p>
%patch 打补丁通常补丁都会一起在源码tar.gz包中,或放到SOURCES目录下。一般参数为:</p>
<ul>
<li>
%patch -p1 使用前面定义的Patch补丁进行,-p1是忽略patch的第一层目</li>
<li>
%Patch2 -p1 -b xxx.patch 打上指定的补丁,-b是指生成备份文件</li>
</ul>
<p>
补充</p>
<ul>
<li>
%setup 不加任何选项,仅将软件包打开。</li>
<li>
%setup -n newdir 将软件包解压在newdir目录。</li>
<li>
%setup -c 解压缩之前先产生目录。</li>
<li>
%setup -b num 将第num个source文件解压缩。</li>
<li>
%setup -T 不使用default的解压缩操作。</li>
<li>
%setup -T -b 0 将第0个源代码文件解压缩。</li>
<li>
%setup -c -n newdir 指定目录名称newdir,并在此目录产生rpm套件。</li>
<li>
%patch 最简单的补丁方式,自动指定patch level。</li>
<li>
%patch 0 使用第0个补丁文件,相当于%patch ?p 0。</li>
<li>
%patch -s 不显示打补丁时的信息。</li>
<li>
%patch -T 将所有打补丁时产生的输出文件删除。</li>
</ul>
<p>
%configure 这个不是关键字,而是rpm定义的标准宏命令。意思是执行源代码的configure配置,在/usr/src/asianux/BUILD/%{name}-%{version}目录中进行 ,使用标准写法,会引用/usr/lib/rpm/marcros中定义的参数。另一种不标准的写法是,可参考源码中的参数自定义,例如:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterxml" id="highlighter_510869">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="xml plain">引用CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{_prefix}</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
%build 开始构建包,在/usr/src/asianux/BUILD/%{name}-%{version}目录中进行make的工作</p>
<p>
%install 开始把软件安装到虚拟的根目录中.在/usr/src/asianux/BUILD/%{name}-%{version}目录中进行make install的操作。这个很重要,因为如果这里的路径不对的话,则下面%file中寻找文件的时候就会失败。 常见内容有:</p>
<ul>
<li>
%makeinstall 这不是关键字,而是rpm定义的标准宏命令。也可以使用非标准写法:make DESTDIR=$RPM_BUILD_ROOT install或引用make prefix=$RPM_BUILD_ROOT install</li>
<li>
需要说明的是,这里的%install主要就是为了后面的%file服务的。所以,还可以使用常规的系统命令:引用install -d $RPM_BUILD_ROOT/和cp -a * $RPM_BUILD_ROOT/</li>
</ul>
<p>
%clean 清理临时文件</p>
<p>
%pre rpm安装前执行的脚本</p>
<p>
%post rpm安装后执行的脚本</p>
<p>
%preun rpm卸载前执行的脚本</p>
<p>
%postun rpm卸载后执行的脚本</p>
<p>
%files 定义那些文件或目录会放入rpm中</p>
<p>
%defattr (-,root,root)** 指定包装文件的属性,分别是(mode,owner,group),-表示默认值,对文本文件是0644,可执行文件是0755</p>
<p>
%changelog 变更日志</p>
<p>
实例:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterxml" id="highlighter_463820">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
<div class="line number20 index19 alt1">
20</div>
<div class="line number21 index20 alt2">
21</div>
<div class="line number22 index21 alt1">
22</div>
<div class="line number23 index22 alt2">
23</div>
<div class="line number24 index23 alt1">
24</div>
<div class="line number25 index24 alt2">
25</div>
<div class="line number26 index25 alt1">
26</div>
<div class="line number27 index26 alt2">
27</div>
<div class="line number28 index27 alt1">
28</div>
<div class="line number29 index28 alt2">
29</div>
<div class="line number30 index29 alt1">
30</div>
<div class="line number31 index30 alt2">
31</div>
<div class="line number32 index31 alt1">
32</div>
<div class="line number33 index32 alt2">
33</div>
<div class="line number34 index33 alt1">
34</div>
<div class="line number35 index34 alt2">
35</div>
<div class="line number36 index35 alt1">
36</div>
<div class="line number37 index36 alt2">
37</div>
<div class="line number38 index37 alt1">
38</div>
<div class="line number39 index38 alt2">
39</div>
<div class="line number40 index39 alt1">
40</div>
<div class="line number41 index40 alt2">
41</div>
<div class="line number42 index41 alt1">
42</div>
<div class="line number43 index42 alt2">
43</div>
<div class="line number44 index43 alt1">
44</div>
<div class="line number45 index44 alt2">
45</div>
<div class="line number46 index45 alt1">
46</div>
<div class="line number47 index46 alt2">
47</div>
<div class="line number48 index47 alt1">
48</div>
<div class="line number49 index48 alt2">
49</div>
<div class="line number50 index49 alt1">
50</div>
<div class="line number51 index50 alt2">
51</div>
<div class="line number52 index51 alt1">
52</div>
<div class="line number53 index52 alt2">
53</div>
<div class="line number54 index53 alt1">
54</div>
<div class="line number55 index54 alt2">
55</div>
<div class="line number56 index55 alt1">
56</div>
<div class="line number57 index56 alt2">
57</div>
<div class="line number58 index57 alt1">
58</div>
<div class="line number59 index58 alt2">
59</div>
<div class="line number60 index59 alt1">
60</div>
<div class="line number61 index60 alt2">
61</div>
<div class="line number62 index61 alt1">
62</div>
<div class="line number63 index62 alt2">
63</div>
<div class="line number64 index63 alt1">
64</div>
<div class="line number65 index64 alt2">
65</div>
<div class="line number66 index65 alt1">
66</div>
<div class="line number67 index66 alt2">
67</div>
<div class="line number68 index67 alt1">
68</div>
<div class="line number69 index68 alt2">
69</div>
<div class="line number70 index69 alt1">
70</div>
<div class="line number71 index70 alt2">
71</div>
<div class="line number72 index71 alt1">
72</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="xml plain">%define zabbix_user zabbix #自定义宏,名字为zabbix_user值为zabbix,%{zabbix_user}引用</code>
</div>
<div class="line number2 index1 alt1">
<code class="xml plain">Name: zabbix #软件包的名字,后面可用%{name}引用</code>
</div>
<div class="line number3 index2 alt2">
<code class="xml plain">Version: 3.0.3 #软件的实际版本号,可使用%{version}引用</code>
</div>
<div class="line number4 index3 alt1">
<code class="xml plain">Release: 1%{?dist} #发布序列号,标明第几次打包 </code>
</div>
<div class="line number5 index4 alt2">
<code class="xml plain">Summary: zabbix_agentd #软件包内容概要</code>
</div>
<div class="line number6 index5 alt1">
</div>
<div class="line number7 index6 alt2">
<code class="xml plain">Group: zabbix #软件包分组</code>
</div>
<div class="line number8 index7 alt1">
<code class="xml plain">License: GPL #授权许可方式</code>
</div>
<div class="line number9 index8 alt2">
<code class="xml plain">URL: www.yang.com #软件的主页</code>
</div>
<div class="line number10 index9 alt1">
<code class="xml plain">Source0: zabbix-3.0.3.tar.gz #源代码包,可以有Source0,Source1等源</code>
</div>
<div class="line number11 index10 alt2">
</div>
<div class="line number12 index11 alt1">
<code class="xml plain">BuildRequires: gcc, gcc-c++ #制作rpm包时,所依赖的基本库</code>
</div>
<div class="line number13 index12 alt2">
<code class="xml plain">Requires: gcc, gcc-c++, chkconfig #安装rpm包时,所依赖的软件包</code>
</div>
<div class="line number14 index13 alt1">
</div>
<div class="line number15 index14 alt2">
<code class="xml plain">%description #定义rpm包的描述信息</code>
</div>
<div class="line number16 index15 alt1">
<code class="xml plain">Zabbix agentd 3.0.3</code>
</div>
<div class="line number17 index16 alt2">
</div>
<div class="line number18 index17 alt1">
<code class="xml plain">%pre #rpm包安装前执行的脚本</code>
</div>
<div class="line number19 index18 alt2">
<code class="xml plain">grep zabbix /etc/passwd > /dev/null</code>
</div>
<div class="line number20 index19 alt1">
<code class="xml plain">if [ $? != 0 ] </code>
</div>
<div class="line number21 index20 alt2">
<code class="xml plain">then useradd zabbix -M -s /sbin/nologin</code>
</div>
<div class="line number22 index21 alt1">
<code class="xml plain">fi</code>
</div>
<div class="line number23 index22 alt2">
<code class="xml plain">[ -d /etc/zabbix ]||rm -rf /etc/zabbix*</code>
</div>
<div class="line number24 index23 alt1">
</div>
<div class="line number25 index24 alt2">
</div>
<div class="line number26 index25 alt1">
<code class="xml plain">%post #rpm包安装后执行的脚本</code>
</div>
<div class="line number27 index26 alt2">
<code class="xml plain">sed -i "/^ServerActive=/c\ServerActive=172.30.17.35" /etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number28 index27 alt1">
<code class="xml plain">sed -i "/^Server=/c\Server=172.30.17.35" /etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number29 index28 alt2">
<code class="xml plain">sed -i "/Timeout=3/c\Timeout=30" /etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number30 index29 alt1">
<code class="xml plain">sed -i "/HostMetadata=/c\HostMetadata=PostgreSQL" /etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number31 index30 alt2">
<code class="xml plain">sed -i "/^Hostname=/c\Hostname=PostgreSQL" /etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number32 index31 alt1">
<code class="xml plain">echo "UnsafeUserParameters=1" >>/etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number33 index32 alt2">
<code class="xml plain">echo "EnableRemoteCommands=1" >>/etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number34 index33 alt1">
<code class="xml plain">echo "Include=/etc/zabbix/etc/zabbix_agentd.conf.d/*.conf" >>/etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number35 index34 alt2">
<code class="xml plain">chkconfig zabbix_agentd on</code>
</div>
<div class="line number36 index35 alt1">
</div>
<div class="line number37 index36 alt2">
<code class="xml plain">%preun #rpm卸载前执行的脚本</code>
</div>
<div class="line number38 index37 alt1">
<code class="xml plain">systemctl stop zabbix_agentd</code>
</div>
<div class="line number39 index38 alt2">
<code class="xml plain">%postun #rpm卸载后执行的脚本</code>
</div>
<div class="line number40 index39 alt1">
<code class="xml plain">userdel zabbix</code>
</div>
<div class="line number41 index40 alt2">
<code class="xml plain">rm -rf /etc/zabbix*</code>
</div>
<div class="line number42 index41 alt1">
<code class="xml plain">%prep #这个宏开始</code>
</div>
<div class="line number43 index42 alt2">
<code class="xml plain">%setup -q #解压并cd到相关目录</code>
</div>
<div class="line number44 index43 alt1">
</div>
<div class="line number45 index44 alt2">
</div>
<div class="line number46 index45 alt1">
<code class="xml plain">%build #定义编译软件包时的操作</code>
</div>
<div class="line number47 index46 alt2">
<code class="xml plain">./configure --prefix=/etc/%{name}-%{version} --enable-agent</code>
</div>
<div class="line number48 index47 alt1">
<code class="xml plain">make -j16 %{?_smp_mflags}</code>
</div>
<div class="line number49 index48 alt2">
</div>
<div class="line number50 index49 alt1">
<code class="xml plain">%install #定义安装软件包,使用默认值即可</code>
</div>
<div class="line number51 index50 alt2">
<code class="xml plain">test -L %{buildroot}/etc/%{name} && rm -f %{buildroot}/etc/%{name}</code>
</div>
<div class="line number52 index51 alt1">
<code class="xml plain">install -d %{buildroot}/etc/profile.d</code>
</div>
<div class="line number53 index52 alt2">
<code class="xml plain">install -d %{buildroot}/etc/init.d</code>
</div>
<div class="line number54 index53 alt1">
<code class="xml plain">make install DESTDIR=%{buildroot}</code>
</div>
<div class="line number55 index54 alt2">
<code class="xml plain">echo 'export PATH=/etc/zabbix/bin:/etc/zabbix/sbin:$PATH' > %{buildroot}/etc/profile.d/%{name}.sh</code>
</div>
<div class="line number56 index55 alt1">
<code class="xml plain">ln -sf /etc/%{name}-%{version} %{buildroot}/etc/%{name}</code>
</div>
<div class="line number57 index56 alt2">
<code class="xml plain">cp %{_buildrootdir}/postgresql.conf %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/postgresql.conf</code>
</div>
<div class="line number58 index57 alt1">
<code class="xml plain">cp %{_buildrootdir}/tcp_connections.sh %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/tcp_connections.sh</code>
</div>
<div class="line number59 index58 alt2">
<code class="xml plain">cp %{_buildrootdir}/iostat-collect.sh %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-collect.sh </code>
</div>
<div class="line number60 index59 alt1">
<code class="xml plain">cp %{_buildrootdir}/iostat-parse.sh %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-parse.sh</code>
</div>
<div class="line number61 index60 alt2">
<code class="xml plain">cp %{_buildrootdir}/iostat-zabbix.conf %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-zabbix.conf </code>
</div>
<div class="line number62 index61 alt1">
<code class="xml plain">cp %{_buildrootdir}/zabbix_agentd %{buildroot}/etc/init.d/zabbix_agentd</code>
</div>
<div class="line number63 index62 alt2">
</div>
<div class="line number64 index63 alt1">
<code class="xml plain">%files #定义rpm包安装时创建的相关目录及文件。在该选项中%defattr (-,root,root)一定要注意。它是指定安装文件的属性,分别是(mode,owner,group),-表示默认值,对文本文件是0644,可执行文件是0755。</code>
</div>
<div class="line number65 index64 alt2">
<code class="xml plain">/etc/%{name}</code>
</div>
<div class="line number66 index65 alt1">
<code class="xml plain">/etc/%{name}-%{version}/*</code>
</div>
<div class="line number67 index66 alt2">
<code class="xml plain">/etc/init.d/zabbix_agentd</code>
</div>
<div class="line number68 index67 alt1">
<code class="xml plain">/etc/profile.d/%{name}.sh</code>
</div>
<div class="line number69 index68 alt2">
</div>
<div class="line number70 index69 alt1">
<code class="xml plain">%changelog #主要用于软件的变更日志。该选项可有可无</code>
</div>
<div class="line number71 index70 alt2">
<code class="xml plain">%clean </code>
</div>
<div class="line number72 index71 alt1">
<code class="xml plain">rm -rf %{buildroot} #清理临时文件</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>RPM包制作拓展</strong></p>
<p>
如果想为zabbix增加启动控制脚本或一些其他的配置文件,可以将其放在SOURCE下,然后复制过去</p>
<p>
将启动脚本放在SOURCE目录</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterxml" id="highlighter_805246">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="xml plain"># ll</code>
</div>
<div class="line number2 index1 alt1">
<code class="xml plain">total 15116</code>
</div>
<div class="line number3 index2 alt2">
<code class="xml plain">-rwxr-xr-x 1 root root 362 Aug 1 12:03 hostmonitor.conf</code>
</div>
<div class="line number4 index3 alt1">
<code class="xml plain">-rwxr-xr-x 1 root root 505 Aug 1 12:03 iostat-collect.sh</code>
</div>
<div class="line number5 index4 alt2">
<code class="xml plain">-rwxr-xr-x 1 root root 953 Aug 1 12:03 iostat-parse.sh</code>
</div>
<div class="line number6 index5 alt1">
<code class="xml plain">-rw-r--r-- 1 root root 772 Aug 1 12:03 iostat-zabbix.conf</code>
</div>
<div class="line number7 index6 alt2">
<code class="xml plain">-rwxr-xr-x 1 root root 813 Aug 1 12:03 nginx_monitor.sh</code>
</div>
<div class="line number8 index7 alt1">
<code class="xml plain">-rw-r--r-- 1 root root 14868 Aug 1 12:03 postgresql.conf</code>
</div>
<div class="line number9 index8 alt2">
<code class="xml plain">-rw-r--r-- 1 root root 77 Aug 1 12:03 process.discovery</code>
</div>
<div class="line number10 index9 alt1">
<code class="xml plain">-rw-r--r-- 1 root root 552 Aug 1 12:03 redis_check.conf</code>
</div>
<div class="line number11 index10 alt2">
<code class="xml plain">-rw-r--r-- 1 root root 356 Aug 1 12:03 redis_cluster_check.py</code>
</div>
<div class="line number12 index11 alt1">
<code class="xml plain">-rw-r--r-- 1 root root 363 Aug 1 12:03 redis_multiport_check.py</code>
</div>
<div class="line number13 index12 alt2">
<code class="xml plain">-rwxr-xr-x 1 root root 783 Aug 1 12:03 tcp_connections.sh</code>
</div>
<div class="line number14 index13 alt1">
<code class="xml plain">-rw-r--r-- 1 root root 852 Aug 1 12:03 userparameter_nginx.conf</code>
</div>
<div class="line number15 index14 alt2">
<code class="xml plain">-rw-r--r-- 1 root root 172 Aug 1 12:03 userparameter_process.conf</code>
</div>
<div class="line number16 index15 alt1">
<code class="xml plain">-rw-r--r-- 1 root root 15407273 Jul 20 10:53 zabbix-3.0.3.tar.gz</code>
</div>
<div class="line number17 index16 alt2">
<code class="xml plain">-rwxr-xr-x 1 root root 2182 Aug 1 12:03 zabbix_agentd</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>编辑 SPEC文件</strong></p>
<p>
Source0下增加如下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterxml" id="highlighter_401230">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="xml plain">Source0: zabbix-3.0.3.tar.gz</code>
</div>
<div class="line number2 index1 alt1">
<code class="xml plain">Source1: zabbix_agentd</code>
</div>
<div class="line number3 index2 alt2">
<code class="xml plain">Source2: nginx_monitor.sh</code>
</div>
<div class="line number4 index3 alt1">
<code class="xml plain">Source3: userparameter_nginx.conf</code>
</div>
<div class="line number5 index4 alt2">
<code class="xml plain">Source4: hostmonitor.conf</code>
</div>
<div class="line number6 index5 alt1">
<code class="xml plain">Source5: process.discovery</code>
</div>
<div class="line number7 index6 alt2">
<code class="xml plain">Source6: userparameter_process.conf</code>
</div>
<div class="line number8 index7 alt1">
<code class="xml plain">Source7: redis_check.conf</code>
</div>
<div class="line number9 index8 alt2">
<code class="xml plain">Source8: redis_cluster_check.py</code>
</div>
<div class="line number10 index9 alt1">
<code class="xml plain">Source9: redis_multiport_check.py</code>
</div>
<div class="line number11 index10 alt2">
<code class="xml plain">Source10: tcp_connections.sh</code>
</div>
<div class="line number12 index11 alt1">
<code class="xml plain">Source11: iostat-collect.sh</code>
</div>
<div class="line number13 index12 alt2">
<code class="xml plain">Source12: iostat-parse.sh</code>
</div>
<div class="line number14 index13 alt1">
<code class="xml plain">Source13: iostat-zabbix.conf</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
安装区域增加如下行:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterxml" id="highlighter_829621">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="xml plain">make install DESTDIR=%{buildroot}</code>
</div>
<div class="line number2 index1 alt1">
<code class="xml plain">install -p -D -m 0755 %{SOURCE1} %{buildroot}/etc/init.d/zabbix_agentd</code>
</div>
<div class="line number3 index2 alt2">
<code class="xml plain">install -p -D %{SOURCE2} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/nginx_monitor.sh</code>
</div>
<div class="line number4 index3 alt1">
<code class="xml plain">install -p -D %{SOURCE3} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/userparameter_nginx.conf</code>
</div>
<div class="line number5 index4 alt2">
<code class="xml plain">install -p -D %{SOURCE4} %{buildroot}/etc/nginx/conf.d/hostmonitor.conf</code>
</div>
<div class="line number6 index5 alt1">
<code class="xml plain">install -p -D %{SOURCE5} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/process.discovery</code>
</div>
<div class="line number7 index6 alt2">
<code class="xml plain">install -p -D %{SOURCE6} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/userparameter_process.conf</code>
</div>
<div class="line number8 index7 alt1">
<code class="xml plain">install -p -D %{SOURCE7} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/redis_check.conf</code>
</div>
<div class="line number9 index8 alt2">
<code class="xml plain">install -p -D %{SOURCE8} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/redis_cluster_check.py</code>
</div>
<div class="line number10 index9 alt1">
<code class="xml plain">install -p -D %{SOURCE9} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/redis_multiport_check.py</code>
</div>
<div class="line number11 index10 alt2">
<code class="xml plain">install -p -D %{SOURCE10} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/tcp_connections.sh</code>
</div>
<div class="line number12 index11 alt1">
<code class="xml plain">install -p -D %{SOURCE11} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-collect.sh</code>
</div>
<div class="line number13 index12 alt2">
<code class="xml plain">install -p -D %{SOURCE12} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-parse.sh</code>
</div>
<div class="line number14 index13 alt1">
<code class="xml plain">install -p -D %{SOURCE13} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-zabbix.conf</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
%file区域增加如下行:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterxml" id="highlighter_360374">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="xml plain">%files</code>
</div>
<div class="line number2 index1 alt1">
<code class="xml spaces"> </code><code class="xml plain">%defattr (-,root,root,0755)</code>
</div>
<div class="line number3 index2 alt2">
<code class="xml spaces"> </code><code class="xml plain">/etc/%{name}</code>
</div>
<div class="line number4 index3 alt1">
<code class="xml spaces"> </code><code class="xml plain">/etc/%{name}-%{version}/*</code>
</div>
<div class="line number5 index4 alt2">
<code class="xml spaces"> </code><code class="xml plain">/etc/profile.d/%{name}.sh</code>
</div>
<div class="line number6 index5 alt1">
<code class="xml spaces"> </code><code class="xml plain">/etc/nginx/conf.d/hostmonitor.conf</code>
</div>
<div class="line number7 index6 alt2">
<code class="xml spaces"> </code><code class="xml plain">%attr(0755,root,root) /etc/rc.d/init.d/zabbix_agentd</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
以下为完整的SPEC文件:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterxml" id="highlighter_94436">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
<div class="line number20 index19 alt1">
20</div>
<div class="line number21 index20 alt2">
21</div>
<div class="line number22 index21 alt1">
22</div>
<div class="line number23 index22 alt2">
23</div>
<div class="line number24 index23 alt1">
24</div>
<div class="line number25 index24 alt2">
25</div>
<div class="line number26 index25 alt1">
26</div>
<div class="line number27 index26 alt2">
27</div>
<div class="line number28 index27 alt1">
28</div>
<div class="line number29 index28 alt2">
29</div>
<div class="line number30 index29 alt1">
30</div>
<div class="line number31 index30 alt2">
31</div>
<div class="line number32 index31 alt1">
32</div>
<div class="line number33 index32 alt2">
33</div>
<div class="line number34 index33 alt1">
34</div>
<div class="line number35 index34 alt2">
35</div>
<div class="line number36 index35 alt1">
36</div>
<div class="line number37 index36 alt2">
37</div>
<div class="line number38 index37 alt1">
38</div>
<div class="line number39 index38 alt2">
39</div>
<div class="line number40 index39 alt1">
40</div>
<div class="line number41 index40 alt2">
41</div>
<div class="line number42 index41 alt1">
42</div>
<div class="line number43 index42 alt2">
43</div>
<div class="line number44 index43 alt1">
44</div>
<div class="line number45 index44 alt2">
45</div>
<div class="line number46 index45 alt1">
46</div>
<div class="line number47 index46 alt2">
47</div>
<div class="line number48 index47 alt1">
48</div>
<div class="line number49 index48 alt2">
49</div>
<div class="line number50 index49 alt1">
50</div>
<div class="line number51 index50 alt2">
51</div>
<div class="line number52 index51 alt1">
52</div>
<div class="line number53 index52 alt2">
53</div>
<div class="line number54 index53 alt1">
54</div>
<div class="line number55 index54 alt2">
55</div>
<div class="line number56 index55 alt1">
56</div>
<div class="line number57 index56 alt2">
57</div>
<div class="line number58 index57 alt1">
58</div>
<div class="line number59 index58 alt2">
59</div>
<div class="line number60 index59 alt1">
60</div>
<div class="line number61 index60 alt2">
61</div>
<div class="line number62 index61 alt1">
62</div>
<div class="line number63 index62 alt2">
63</div>
<div class="line number64 index63 alt1">
64</div>
<div class="line number65 index64 alt2">
65</div>
<div class="line number66 index65 alt1">
66</div>
<div class="line number67 index66 alt2">
67</div>
<div class="line number68 index67 alt1">
68</div>
<div class="line number69 index68 alt2">
69</div>
<div class="line number70 index69 alt1">
70</div>
<div class="line number71 index70 alt2">
71</div>
<div class="line number72 index71 alt1">
72</div>
<div class="line number73 index72 alt2">
73</div>
<div class="line number74 index73 alt1">
74</div>
<div class="line number75 index74 alt2">
75</div>
<div class="line number76 index75 alt1">
76</div>
<div class="line number77 index76 alt2">
77</div>
<div class="line number78 index77 alt1">
78</div>
<div class="line number79 index78 alt2">
79</div>
<div class="line number80 index79 alt1">
80</div>
<div class="line number81 index80 alt2">
81</div>
<div class="line number82 index81 alt1">
82</div>
<div class="line number83 index82 alt2">
83</div>
<div class="line number84 index83 alt1">
84</div>
<div class="line number85 index84 alt2">
85</div>
<div class="line number86 index85 alt1">
86</div>
<div class="line number87 index86 alt2">
87</div>
<div class="line number88 index87 alt1">
88</div>
<div class="line number89 index88 alt2">
89</div>
<div class="line number90 index89 alt1">
90</div>
<div class="line number91 index90 alt2">
91</div>
<div class="line number92 index91 alt1">
92</div>
<div class="line number93 index92 alt2">
93</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="xml plain">Name: zabbix </code>
</div>
<div class="line number2 index1 alt1">
<code class="xml plain">Version: 3.0.3 </code>
</div>
<div class="line number3 index2 alt2">
<code class="xml plain">Release: 1%{?dist}</code>
</div>
<div class="line number4 index3 alt1">
<code class="xml plain">Summary: zabbix_agentd</code>
</div>
<div class="line number5 index4 alt2">
</div>
<div class="line number6 index5 alt1">
<code class="xml plain">Group: zabbix</code>
</div>
<div class="line number7 index6 alt2">
<code class="xml plain">License: GPL</code>
</div>
<div class="line number8 index7 alt1">
<code class="xml plain">URL: www.yang.com</code>
</div>
<div class="line number9 index8 alt2">
<code class="xml plain">Source0: zabbix-3.0.3.tar.gz</code>
</div>
<div class="line number10 index9 alt1">
<code class="xml plain">Source1: zabbix_agentd</code>
</div>
<div class="line number11 index10 alt2">
<code class="xml plain">Source2: nginx_monitor.sh</code>
</div>
<div class="line number12 index11 alt1">
<code class="xml plain">Source3: userparameter_nginx.conf</code>
</div>
<div class="line number13 index12 alt2">
<code class="xml plain">Source4: hostmonitor.conf</code>
</div>
<div class="line number14 index13 alt1">
<code class="xml plain">Source5: process.discovery</code>
</div>
<div class="line number15 index14 alt2">
<code class="xml plain">Source6: userparameter_process.conf</code>
</div>
<div class="line number16 index15 alt1">
<code class="xml plain">Source7: redis_check.conf</code>
</div>
<div class="line number17 index16 alt2">
<code class="xml plain">Source8: redis_cluster_check.py</code>
</div>
<div class="line number18 index17 alt1">
<code class="xml plain">Source9: redis_multiport_check.py</code>
</div>
<div class="line number19 index18 alt2">
<code class="xml plain">Source10: tcp_connections.sh</code>
</div>
<div class="line number20 index19 alt1">
<code class="xml plain">Source11: iostat-collect.sh</code>
</div>
<div class="line number21 index20 alt2">
<code class="xml plain">Source12: iostat-parse.sh</code>
</div>
<div class="line number22 index21 alt1">
<code class="xml plain">Source13: iostat-zabbix.conf</code>
</div>
<div class="line number23 index22 alt2">
</div>
<div class="line number24 index23 alt1">
<code class="xml plain">BuildRequires: gcc, gcc-c++</code>
</div>
<div class="line number25 index24 alt2">
<code class="xml plain">Requires: gcc, gcc-c++, chkconfig</code>
</div>
<div class="line number26 index25 alt1">
</div>
<div class="line number27 index26 alt2">
<code class="xml plain">%description</code>
</div>
<div class="line number28 index27 alt1">
<code class="xml plain">Zabbix agentd 3.0.3</code>
</div>
<div class="line number29 index28 alt2">
</div>
<div class="line number30 index29 alt1">
<code class="xml plain">%pre</code>
</div>
<div class="line number31 index30 alt2">
<code class="xml plain">grep zabbix /etc/passwd > /dev/null</code>
</div>
<div class="line number32 index31 alt1">
<code class="xml plain">if [ $? != 0 ] </code>
</div>
<div class="line number33 index32 alt2">
<code class="xml plain">then useradd zabbix -M -s /sbin/nologin</code>
</div>
<div class="line number34 index33 alt1">
<code class="xml plain">fi</code>
</div>
<div class="line number35 index34 alt2">
<code class="xml plain">[ -d /etc/zabbix ]||rm -rf /etc/zabbix</code>
</div>
<div class="line number36 index35 alt1">
<code class="xml plain">[ -d /etc/zabbix ]||rm -rf /etc/zabbix-3.0.3</code>
</div>
<div class="line number37 index36 alt2">
</div>
<div class="line number38 index37 alt1">
</div>
<div class="line number39 index38 alt2">
<code class="xml plain">%post</code>
</div>
<div class="line number40 index39 alt1">
<code class="xml plain">sed -i "/^ServerActive=/c\ServerActive=172.30.17." /etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number41 index40 alt2">
<code class="xml plain">sed -i "/^Server=/c\Server=172.30.17." /etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number42 index41 alt1">
<code class="xml plain">sed -i "/Timeout=3/c\Timeout=30" /etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number43 index42 alt2">
<code class="xml plain">sed -i "/HostMetadata=/c\HostMetadata=OPS-TMP" /etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number44 index43 alt1">
<code class="xml plain">sed -i "/^Hostname=/c\Hostname=OPS-TMP" /etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number45 index44 alt2">
<code class="xml plain">echo "UnsafeUserParameters=1" >>/etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number46 index45 alt1">
<code class="xml plain">echo "EnableRemoteCommands=1" >>/etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number47 index46 alt2">
<code class="xml plain">echo "Include=/etc/zabbix/etc/zabbix_agentd.conf.d/*.conf" >>/etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
<div class="line number48 index47 alt1">
<code class="xml plain">chkconfig zabbix_agentd on</code>
</div>
<div class="line number49 index48 alt2">
</div>
<div class="line number50 index49 alt1">
<code class="xml plain">%preun</code>
</div>
<div class="line number51 index50 alt2">
<code class="xml plain">systemctl stop zabbix_agentd</code>
</div>
<div class="line number52 index51 alt1">
<code class="xml plain">%postun</code>
</div>
<div class="line number53 index52 alt2">
<code class="xml plain">userdel zabbix</code>
</div>
<div class="line number54 index53 alt1">
<code class="xml plain">rm -rf /etc/zabbix*</code>
</div>
<div class="line number55 index54 alt2">
<code class="xml plain">%prep</code>
</div>
<div class="line number56 index55 alt1">
<code class="xml plain">%setup -q</code>
</div>
<div class="line number57 index56 alt2">
</div>
<div class="line number58 index57 alt1">
</div>
<div class="line number59 index58 alt2">
<code class="xml plain">%build</code>
</div>
<div class="line number60 index59 alt1">
<code class="xml plain">./configure --prefix=/etc/%{name}-%{version} --enable-agent</code>
</div>
<div class="line number61 index60 alt2">
<code class="xml plain">make -j16 %{?_smp_mflags}</code>
</div>
<div class="line number62 index61 alt1">
</div>
<div class="line number63 index62 alt2">
<code class="xml plain">%install</code>
</div>
<div class="line number64 index63 alt1">
<code class="xml plain">test -L %{buildroot}/etc/%{name} && rm -f %{buildroot}/etc/%{name}</code>
</div>
<div class="line number65 index64 alt2">
<code class="xml plain">install -d %{buildroot}/etc/profile.d</code>
</div>
<div class="line number66 index65 alt1">
<code class="xml plain">make install DESTDIR=%{buildroot}</code>
</div>
<div class="line number67 index66 alt2">
<code class="xml plain">install -p -D -m 0755 %{SOURCE1} %{buildroot}/etc/init.d/zabbix_agentd</code>
</div>
<div class="line number68 index67 alt1">
<code class="xml plain">install -p -D %{SOURCE2} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/nginx_monitor.sh</code>
</div>
<div class="line number69 index68 alt2">
<code class="xml plain">install -p -D %{SOURCE3} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/userparameter_nginx.conf</code>
</div>
<div class="line number70 index69 alt1">
<code class="xml plain">install -p -D %{SOURCE4} %{buildroot}/etc/nginx/conf.d/hostmonitor.conf</code>
</div>
<div class="line number71 index70 alt2">
<code class="xml plain">install -p -D %{SOURCE5} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/process.discovery</code>
</div>
<div class="line number72 index71 alt1">
<code class="xml plain">install -p -D %{SOURCE6} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/userparameter_process.conf</code>
</div>
<div class="line number73 index72 alt2">
<code class="xml plain">install -p -D %{SOURCE7} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/redis_check.conf</code>
</div>
<div class="line number74 index73 alt1">
<code class="xml plain">install -p -D %{SOURCE8} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/redis_cluster_check.py</code>
</div>
<div class="line number75 index74 alt2">
<code class="xml plain">install -p -D %{SOURCE9} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/redis_multiport_check.py</code>
</div>
<div class="line number76 index75 alt1">
<code class="xml plain">install -p -D %{SOURCE10} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/tcp_connections.sh</code>
</div>
<div class="line number77 index76 alt2">
<code class="xml plain">install -p -D %{SOURCE11} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-collect.sh</code>
</div>
<div class="line number78 index77 alt1">
<code class="xml plain">install -p -D %{SOURCE12} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-parse.sh</code>
</div>
<div class="line number79 index78 alt2">
<code class="xml plain">install -p -D %{SOURCE13} %{buildroot}/etc/%{name}-%{version}/etc/zabbix_agentd.conf.d/iostat-zabbix.conf</code>
</div>
<div class="line number80 index79 alt1">
</div>
<div class="line number81 index80 alt2">
<code class="xml plain">echo 'export PATH=/etc/zabbix/bin:/etc/zabbix/sbin:$PATH' > %{buildroot}/etc/profile.d/%{name}.sh</code>
</div>
<div class="line number82 index81 alt1">
<code class="xml plain">ln -sf /etc/%{name}-%{version} %{buildroot}/etc/%{name}</code>
</div>
<div class="line number83 index82 alt2">
</div>
<div class="line number84 index83 alt1">
<code class="xml plain">%files</code>
</div>
<div class="line number85 index84 alt2">
<code class="xml plain">%defattr (-,root,root,0755)</code>
</div>
<div class="line number86 index85 alt1">
<code class="xml plain">/etc/%{name}</code>
</div>
<div class="line number87 index86 alt2">
<code class="xml plain">/etc/%{name}-%{version}/*</code>
</div>
<div class="line number88 index87 alt1">
<code class="xml plain">/etc/profile.d/%{name}.sh</code>
</div>
<div class="line number89 index88 alt2">
<code class="xml plain">/etc/nginx/conf.d/hostmonitor.conf</code>
</div>
<div class="line number90 index89 alt1">
<code class="xml plain">%attr(0755,root,root) /etc/rc.d/init.d/zabbix_agentd</code>
</div>
<div class="line number91 index90 alt2">
<code class="xml plain">%changelog</code>
</div>
<div class="line number92 index91 alt1">
<code class="xml plain">%clean </code>
</div>
<div class="line number93 index92 alt2">
<code class="xml plain">rm -rf %{buildroot}</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
頁:
[1]