余浠 發表於 2023-7-12 00:00:00

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包所依赖的软件包名称,可以用&gt;=或&lt;=表示大于或小于某一特定版本,例如:libpng-devel &gt;= 1.0.20 zlib ※“&gt;=”号两边需用空格隔开,而不同软件名称也用空格分开,还有例如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 &gt; /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" &gt;&gt;/etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
                                                                <div class="line number33 index32 alt2">
                                                                        <code class="xml plain">echo "EnableRemoteCommands=1" &gt;&gt;/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" &gt;&gt;/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} &amp;&amp; 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' &gt; %{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 &gt; /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" &gt;&gt;/etc/zabbix/etc/zabbix_agentd.conf</code>
</div>
                                                                <div class="line number46 index45 alt1">
                                                                        <code class="xml plain">echo "EnableRemoteCommands=1" &gt;&gt;/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" &gt;&gt;/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} &amp;&amp; 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' &gt; %{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]
查看完整版本: Linux下RPM打包制作过程