使用spec与fpm 2种方式进行rpm打包

转载:http://dl528888.blog.51cto.com/2382721/1540312

最近分享zabbix与ansible好多,大家看烦了,我也没啥存货了,现在就介绍一下如何进行rpm打包吧。

rpm打包有2个,一个是自己写spec,另外要给是使用ruby的fpm,我个人比较倾向于第二种fpm,这个不需要写spec文件,特简单,不过为了让大家看明白,我分别介绍一下这2款软件是如何进行rpm打包的。

目录

一、使用spec构建rpm

二、使用fpm构建rpm

 

一、使用spec构建rpm

在构架rpm包的时候,需要经过3个过程

1、解压源码包

2、编译环境configure

3、make

然后再使用check install做rpm包

同时如果在安装rpm包的时候,你想查看安装过程可以使用,rpm -qi --scriptsname.rpm查看

如果在构架脚本或者其他非源码包安装的时候,可以使用rpmbild

1、把脚本目录给tar

2、构架spec

3、rpmbuild

注意的完成最终的工作了。请使用根目录用户身份安装rpmbuild命令。在Red Hat中,请用yum install rpm-build完成这项工作。接下来,请确保所有的文件都呆在正确的地方。Tar存档文件必须位于创建软件包的当前用户帐户的~/rpmbuild /SOURCES 目录下,demo.spec文件必须位于~/rpmbuild/SPECS目录下。现在你可以用rpmbuild -ba test.spec命令来创建软件包了。这会在~/rpmbuild/RPMS目录下创建你的RPM文件。

可以参考

http://www.linuxidc.com/Linux/2012-05/60278.htm

http://blog.csdn.net/cybertan/article/details/5972935

我做的测试是创建一个test-1.0目录,里有个test.txt文件,内容是this is test

A.创建rpm目录

1
mkdir  -p ~ /rpmbuild/ {RPMS,SOURCES,SPECS}

B.创建压缩文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16:02:25  # cd ~/rpmbuild/SOURCES/
root@ip-10-10-10-10:~ /rpmbuild/SOURCES
16:05:09  # mkdir test-1.0
root@ip-10-10-10-10:~ /rpmbuild/SOURCES
16:05:32  # echo "this is test">test-1.0/test.txt
root@ip-10-10-10-10:~ /rpmbuild/SOURCES
16:05:43  # tar zcvf test-1.0.tar.gz test-1.0
test -1.0/
test -1.0 /test .txt
root@ip-10-10-10-10:~ /rpmbuild/SOURCES
16:05:48  # rm -rf test-1.0
root@ip-10-10-10-10:~ /rpmbuild/SOURCES
16:05:52  # ll
total 4
-rw-r--r-- 1 root root 160 Aug 15 16:05  test -1.0. tar .gz

C.做spec文件内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
16:06:25  # cat test.spec 
Summary:  Test package  for  dl528888 blog
Name:      test
Version:  1.0
Release:  1
License:  GPL
Group:     test
Source:   %{name}-1.0. tar .gz
BuildRoot:%{_tmppath}/%{name}-%{version}-%{release}-root
Url:      http: //dl528888 .blog.51cto.com
Packager: dl528888
Prefix:   %{_prefix}
Prefix:   %{_sysconfdir}
%define   userpath  /tmp/demo
   
%description
Justa  test  rpm suite.
   
%prep
%setup -c
% install
install  -d $RPM_BUILD_ROOT%{userpath}
cp  -a %{name}* $RPM_BUILD_ROOT%{userpath}
   
%clean
rm  -rf $RPM_BUILD_ROOT
rm  -rf $RPM_BUILD_DIR/%{name}-%{version}
   
%files
%defattr(-,root,root)
%{userpath}

D.打成rpm包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
16:06:36  # rpmbuild -ba test.spec 
Executing(%prep):  /bin/sh  -e  /var/tmp/rpm-tmp .8B9UHi
umask  022
cd  /root/rpmbuild/BUILD
cd  /root/rpmbuild/BUILD
rm  -rf  test -1.0
/bin/mkdir  -p  test -1.0
cd  test -1.0
/usr/bin/gzip  - dc  /root/rpmbuild/SOURCES/test-1 .0. tar .gz
/bin/tar  -xvvf -
drwxr-xr-x root /root          0 2014-08-15 16:05  test -1.0/
-rw-r--r-- root /root         13 2014-08-15 16:05  test -1.0 /test .txt
+ STATUS=0
'['  0 - ne  ']'
/bin/chmod  -Rf a+rX,u+w,g-w,o-w .
exit  0
Executing(% install ):  /bin/sh  -e  /var/tmp/rpm-tmp .IwUiMh
umask  022
cd  /root/rpmbuild/BUILD
cd  test -1.0
install  -d  /root/rpmbuild/BUILDROOT/test-1 .0-1.x86_64 /tmp/demo
cp  -a  test -1.0  /root/rpmbuild/BUILDROOT/test-1 .0-1.x86_64 /tmp/demo
/usr/lib/rpm/brp-compress
/usr/lib/rpm/brp-strip
/usr/lib/rpm/brp-strip-static-archive
/usr/lib/rpm/brp-strip-comment-note
Processing files:  test -1.0-1.x86_64
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Checking  for  unpackaged  file (s):  /usr/lib/rpm/check-files  /root/rpmbuild/BUILDROOT/test-1 .0-1.x86_64
warning: Could not canonicalize  hostname : ip-10-10-10-10
Wrote:  /root/rpmbuild/SRPMS/test-1 .0-1.src.rpm
Wrote:  /root/rpmbuild/RPMS/x86_64/test-1 .0-1.x86_64.rpm
Executing(%clean):  /bin/sh  -e  /var/tmp/rpm-tmp .IoNP7f
umask  022
cd  /root/rpmbuild/BUILD
cd  test -1.0
rm  -rf  /root/rpmbuild/BUILDROOT/test-1 .0-1.x86_64
rm  -rf  /root/rpmbuild/BUILD/test-1 .0
exit  0

E.查看rpm包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
16:07:24  # cd ~/rpmbuild/RPMS/
root@ip-10-10-10-10:~ /rpmbuild/RPMS
16:07:54  # ll
total 4
drwxr-xr-x 2 root root 4096 Aug 15 16:07 x86_64
root@ip-10-10-10-10:~ /rpmbuild/RPMS
16:07:54  # cd x86_64/
root@ip-10-10-10-10:~ /rpmbuild/RPMS/x86_64
16:07:58  # ll
total 4
-rw-r--r-- 1 root root 2020 Aug 15 16:07  test -1.0-1.x86_64.rpm
root@ip-10-10-10-10:~ /rpmbuild/RPMS/x86_64
16:07:59  # rpm -qpi test-1.0-1.x86_64.rpm 
Name        :  test                          Relocations:  /usr  /etc 
Version     : 1.0                               Vendor: (none)
Release     : 1                             Build Date: Fri 15 Aug 2014 04:07:24 PM CST
Install Date: (not installed)               Build Host: ip-10-10-10-10
Group       :  test                           Source RPM:  test -1.0-1.src.rpm
Size        : 13                               License: GPL
Signature   : (none)
Packager    : dl528888
URL         : http: //dl528888 .blog.51cto.com
Summary     : Test package  for  dl528888 blog
Description :
Justa  test  rpm suite.

F.安装此rpm包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
16:08:03  # rpm -ivh test-1.0-1.x86_64.rpm 
Preparing...                 ########################################### [100%]
    1: test                    ########################################### [100%]
root@ip-10-10-10-10:~ /rpmbuild/RPMS/x86_64
16:08:49  # ll /tmp/demo/
total 4
drwxr-xr-x 2 root root 4096 Aug 15 16:08  test -1.0
root@ip-10-10-10-10:~ /rpmbuild/RPMS/x86_64
16:08:58  # ll /tmp/demo/test-1.0/
total 4
-rw-r--r-- 1 root root 13 Aug 15 16:05  test .txt
root@ip-10-10-10-10:~ /rpmbuild/RPMS/x86_64
16:09:00  # cat /tmp/demo/test-1.0/test.txt 
this is  test

可以看到安装完成,并在tmp的demo里解压了test-1.0.tar.gz压缩包。

二、使用ruby的fpm构建rpm包

1、centos安装

1
2
yum  install  rpm-build
gem  install  fpm

2、ubuntu安装

1
2
apt-get  install  ruby ruby-dev rubygems
gem  install  fpm

在centos里安装如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
15:34:53  # yum install rpm-build    
Failed to  set  locale, defaulting to C
Loaded plugins: fastestmirror, keys, protectbase
Loading mirror speeds from cached hostfile
  * base: mirrors.btte.net
  * extras: mirrors.btte.net
  * updates: mirrors.btte.net
0 packages excluded due to repository protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package rpm-build.x86_64 0:4.8.0-37.el6 will be installed
--> Processing Dependency: elfutils >= 0.128  for  package: rpm-build-4.8.0-37.el6.x86_64
--> Processing Dependency: xz  for  package: rpm-build-4.8.0-37.el6.x86_64
--> Processing Dependency: unzip  for  package: rpm-build-4.8.0-37.el6.x86_64
--> Processing Dependency: lzma  for  package: rpm-build-4.8.0-37.el6.x86_64
--> Processing Dependency:  file  for  package: rpm-build-4.8.0-37.el6.x86_64
--> Processing Dependency:  /usr/bin/gdb-add-index  for  package: rpm-build-4.8.0-37.el6.x86_64
--> Running transaction check
---> Package elfutils.x86_64 0:0.152-1.el6 will be installed
--> Processing Dependency: elfutils-libs(x86-64) = 0.152-1.el6  for  package: elfutils-0.152-1.el6.x86_64
--> Processing Dependency: libdw.so.1(ELFUTILS_0.149)(64bit)  for  package: elfutils-0.152-1.el6.x86_64
--> Processing Dependency: libdw.so.1(ELFUTILS_0.148)(64bit)  for  package: elfutils-0.152-1.el6.x86_64
--> Processing Dependency: libdw.so.1(ELFUTILS_0.138)(64bit)  for  package: elfutils-0.152-1.el6.x86_64
--> Processing Dependency: libdw.so.1(ELFUTILS_0.127)(64bit)  for  package: elfutils-0.152-1.el6.x86_64
--> Processing Dependency: libdw.so.1(ELFUTILS_0.126)(64bit)  for  package: elfutils-0.152-1.el6.x86_64
--> Processing Dependency: libdw.so.1(ELFUTILS_0.122)(64bit)  for  package: elfutils-0.152-1.el6.x86_64
--> Processing Dependency: libasm.so.1(ELFUTILS_1.0)(64bit)  for  package: elfutils-0.152-1.el6.x86_64
--> Processing Dependency: libdw.so.1()(64bit)  for  package: elfutils-0.152-1.el6.x86_64
--> Processing Dependency: libasm.so.1()(64bit)  for  package: elfutils-0.152-1.el6.x86_64
---> Package  file .x86_64 0:5.04-15.el6 will be installed
---> Package gdb.x86_64 0:7.2-60.el6_4.1 will be installed
---> Package unzip.x86_64 0:6.0-1.el6 will be installed
---> Package xz.x86_64 0:4.999.9-0.3.beta.20091007git.el6 will be installed
---> Package xz-lzma-compat.x86_64 0:4.999.9-0.3.beta.20091007git.el6 will be installed
--> Running transaction check
---> Package elfutils-libs.x86_64 0:0.152-1.el6 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
===============================================================================================================================================================================================
  Package                                       Arch                                  Version                                                         Repository                           Size
===============================================================================================================================================================================================
Installing:
  rpm-build                                     x86_64                                4.8.0-37.el6                                                    base                                127 k
Installing  for  dependencies:
  elfutils                                      x86_64                                0.152-1.el6                                                     base                                201 k
  elfutils-libs                                 x86_64                                0.152-1.el6                                                     base                                181 k
  file                                           x86_64                                5.04-15.el6                                                     base                                 46 k
  gdb                                           x86_64                                7.2-60.el6_4.1                                                  base                                2.3 M
  unzip                                         x86_64                                6.0-1.el6                                                       base                                149 k
  xz                                            x86_64                                4.999.9-0.3.beta.20091007git.el6                                base                                137 k
  xz-lzma-compat                                x86_64                                4.999.9-0.3.beta.20091007git.el6                                base                                 16 k
 
Transaction Summary
===============================================================================================================================================================================================
Install       8 Package(s)
 
Total download size: 3.1 M
Installed size: 7.4 M
Is this ok [y /N ]: y
Downloading Packages:
(1 /8 ): elfutils-0.152-1.el6.x86_64.rpm                                                                                                                                  | 201 kB     00:00     
(2 /8 ): elfutils-libs-0.152-1.el6.x86_64.rpm                                                                                                                             | 181 kB     00:00     
(3 /8 ):  file -5.04-15.el6.x86_64.rpm                                                                                                                                      |  46 kB     00:00     
(4 /8 ): gdb-7.2-60.el6_4.1.x86_64.rpm                                                                                                                                    | 2.3 MB     00:06     
(5 /8 ): rpm-build-4.8.0-37.el6.x86_64.rpm                                                                                                                                | 127 kB     00:00     
(6 /8 ): unzip-6.0-1.el6.x86_64.rpm                                                                                                                                       | 149 kB     00:00     
(7 /8 ): xz-4.999.9-0.3.beta.20091007git.el6.x86_64.rpm                                                                                                                   | 137 kB     00:00     
(8 /8 ): xz-lzma-compat-4.999.9-0.3.beta.20091007git.el6.x86_64.rpm                                                                                                       |  16 kB     00:00     
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                          234 kB /s  | 3.1 MB     00:13     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
   Installing : xz-4.999.9-0.3.beta.20091007git.el6.x86_64                                                                                                                                  1 /8 
   Installing : xz-lzma-compat-4.999.9-0.3.beta.20091007git.el6.x86_64                                                                                                                      2 /8 
   Installing :  file -5.04-15.el6.x86_64                                                                                                                                                     3 /8 
   Installing : gdb-7.2-60.el6_4.1.x86_64                                                                                                                                                   4 /8 
   Installing : elfutils-libs-0.152-1.el6.x86_64                                                                                                                                            5 /8 
   Installing : elfutils-0.152-1.el6.x86_64                                                                                                                                                 6 /8 
   Installing : unzip-6.0-1.el6.x86_64                                                                                                                                                      7 /8 
   Installing : rpm-build-4.8.0-37.el6.x86_64                                                                                                                                               8 /8 
   Verifying  : unzip-6.0-1.el6.x86_64                                                                                                                                                      1 /8 
   Verifying  : xz-lzma-compat-4.999.9-0.3.beta.20091007git.el6.x86_64                                                                                                                      2 /8 
   Verifying  : elfutils-libs-0.152-1.el6.x86_64                                                                                                                                            3 /8 
   Verifying  : gdb-7.2-60.el6_4.1.x86_64                                                                                                                                                   4 /8 
   Verifying  : elfutils-0.152-1.el6.x86_64                                                                                                                                                 5 /8 
   Verifying  : rpm-build-4.8.0-37.el6.x86_64                                                                                                                                               6 /8 
   Verifying  :  file -5.04-15.el6.x86_64                                                                                                                                                     7 /8 
   Verifying  : xz-4.999.9-0.3.beta.20091007git.el6.x86_64                                                                                                                                  8 /8 
 
Installed:
   rpm-build.x86_64 0:4.8.0-37.el6                                                                                                                                                              
 
Dependency Installed:
   elfutils.x86_64 0:0.152-1.el6                 elfutils-libs.x86_64 0:0.152-1.el6                         file .x86_64 0:5.04-15.el6  gdb.x86_64 0:7.2-60.el6_4.1  unzip.x86_64 0:6.0-1.el6 
   xz.x86_64 0:4.999.9-0.3.beta.20091007git.el6  xz-lzma-compat.x86_64 0:4.999.9-0.3.beta.20091007git.el6 
 
Complete!
 
15:35:21  # gem install fpm
/usr/local/ruby-1 .9.3 /lib/ruby/1 .9.1 /yaml .rb:56: in  `< top  (required)>':
It seems your ruby installation is missing psych ( for  YAML output).
To eliminate this warning, please  install  libyaml and reinstall your ruby.
Fetching: json-1.8.1.gem (100%)
Building native extensions.  This could take a  while ...
Fetching: cabin-0.6.1.gem (100%)
Fetching: backports-3.6.0.gem (100%)
Fetching: arr-pm-0.0.9.gem (100%)
Fetching: clamp-0.6.3.gem (100%)
Fetching: ffi-1.9.3.gem (100%)
Building native extensions.  This could take a  while ...
Fetching: childprocess-0.5.3.gem (100%)
Fetching: fpm-1.1.0.gem (100%)
Successfully installed json-1.8.1
Successfully installed cabin-0.6.1
Successfully installed backports-3.6.0
Successfully installed arr-pm-0.0.9
Successfully installed clamp-0.6.3
Successfully installed ffi-1.9.3
Successfully installed childprocess-0.5.3
Successfully installed fpm-1.1.0
8 gems installed
Installing ri documentation  for  json-1.8.1...
Installing ri documentation  for  cabin-0.6.1...
Installing ri documentation  for  backports-3.6.0...
unable to convert U+00E9 from UTF-8 to US-ASCII  for  lib /backports/force/string_length .rb, skipping
unable to convert U+00E9 from UTF-8 to US-ASCII  for  lib /backports/1 .9.2 /stdlib/matrix .rb, skipping
Installing ri documentation  for  arr-pm-0.0.9...
Installing ri documentation  for  clamp-0.6.3...
Installing ri documentation  for  ffi-1.9.3...
unable to convert  "\xE2"  to UTF-8  in  conversion from ASCII-8BIT to UTF-8 to US-ASCII  for  lib /ffi/library .rb, skipping
Enclosing class /module  'moduleFFI'  for  class StructByValue not known
Enclosing class /module  'moduleFFI'  for  class StructLayout not known
Enclosing class /module  'rbffi_StructLayoutClass'  for  class Field not known
Enclosing class /module  'rbffi_StructLayoutClass'  for  class Number not known
Enclosing class /module  'rbffi_StructLayoutClass'  for  class String not known
Enclosing class /module  'rbffi_StructLayoutClass'  for  class Pointer not known
Enclosing class /module  'rbffi_StructLayoutClass'  for  class Function not known
Enclosing class /module  'rbffi_StructLayoutClass'  for  class Array not known
Enclosing class /module  'moduleFFI'  for  module LastError not known
Enclosing class /module  'moduleFFI'  for  class MemoryPointer not known
Enclosing class /module  'rbffi_StructLayoutClass'  for  class CharArray not known
Enclosing class /module  "rbffi_StructLayoutCharArrayClass"  for  alias  to_str to_s not known
unable to convert  "\xC3"  to UTF-8  in  conversion from ASCII-8BIT to UTF-8 to US-ASCII  for  ext /ffi_c/libffi/ChangeLog , skipping
unable to convert  "\xC3"  to UTF-8  in  conversion from ASCII-8BIT to UTF-8 to US-ASCII  for  ext /ffi_c/libffi/README , skipping
Installing ri documentation  for  childprocess-0.5.3...
Installing ri documentation  for  fpm-1.1.0...
Installing RDoc documentation  for  json-1.8.1...
Installing RDoc documentation  for  cabin-0.6.1...
Installing RDoc documentation  for  backports-3.6.0...
unable to convert U+00E9 from UTF-8 to US-ASCII  for  lib /backports/force/string_length .rb, skipping
unable to convert U+00E9 from UTF-8 to US-ASCII  for  lib /backports/1 .9.2 /stdlib/matrix .rb, skipping
Installing RDoc documentation  for  arr-pm-0.0.9...
Installing RDoc documentation  for  clamp-0.6.3...
Installing RDoc documentation  for  ffi-1.9.3...
unable to convert  "\xE2"  to UTF-8  in  conversion from ASCII-8BIT to UTF-8 to US-ASCII  for  lib /ffi/library .rb, skipping
Enclosing class /module  'moduleFFI'  for  class StructByValue not known
Enclosing class /module  'moduleFFI'  for  class StructLayout not known
Enclosing class /module  'rbffi_StructLayoutClass'  for  class Field not known
Enclosing class /module  'rbffi_StructLayoutClass'  for  class Number not known
Enclosing class /module  'rbffi_StructLayoutClass'  for  class String not known
Enclosing class /module  'rbffi_StructLayoutClass'  for  class Pointer not known
Enclosing class /module  'rbffi_StructLayoutClass'  for  class Function not known
Enclosing class /module  'rbffi_StructLayoutClass'  for  class Array not known
Enclosing class /module  'moduleFFI'  for  module LastError not known
Enclosing class /module  'moduleFFI'  for  class MemoryPointer not known
Enclosing class /module  'rbffi_StructLayoutClass'  for  class CharArray not known
Enclosing class /module  "rbffi_StructLayoutCharArrayClass"  for  alias  to_str to_s not known
unable to convert  "\xC3"  to UTF-8  in  conversion from ASCII-8BIT to UTF-8 to US-ASCII  for  ext /ffi_c/libffi/ChangeLog , skipping
unable to convert  "\xC3"  to UTF-8  in  conversion from ASCII-8BIT to UTF-8 to US-ASCII  for  ext /ffi_c/libffi/README , skipping
Installing RDoc documentation  for  childprocess-0.5.3...
Installing RDoc documentation  for  fpm-1.1.0...
15:45:31  # find / -name "fpm"
/usr/local/ruby-1 .9.3 /lib/ruby/gems/1 .9.1 /doc/fpm-1 .1.0 /rdoc/lib/fpm
/usr/local/ruby-1 .9.3 /lib/ruby/gems/1 .9.1 /gems/fpm-1 .1.0 /lib/fpm
/usr/local/ruby-1 .9.3 /lib/ruby/gems/1 .9.1 /gems/fpm-1 .1.0 /bin/fpm
/usr/local/ruby-1 .9.3 /bin/fpm
/usr/local/php-5 .3.10 /share/php/fpm
root@e3d3e87fbfd7:~
15:45:46  # ln  /usr/local/ruby-1.9.3/bin/fpm /usr/bin/fpm

下面是安装脚本内容

1
2
3
4
16:10:45 # cat install_for_rpm.sh 
#!/bin/bash
mkdir /tmp/fpm
echo "this is test for rpm"  > /tmp/fpm/test .txt

下面是在进行rpm安装的时候,安装后运行的脚本

1
2
3
4
root@e3d3e87fbfd7:~
16:10:48 # cat run_rpm.sh 
#!/bin/bash
/bin/bash/tmp/install_for_rpm .sh

也就是说,rpm包安装后,会运行我这个run_rpm.sh脚本,然后这个脚本会运行install_for_fpm.sh脚本

下面是打包过程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
root@e3d3e87fbfd7:~
16:13:21  # fpm -s dir --prefix /tmp/ -t rpm -n test_rpm --verbose --version '2014'  --iteration '1.0'   --vendor '244979152@qq.com' --category 'Development/test'   --description 'Rpm  Install' --url 'qq.com' --license 'BSD' -m 'denglei' --after-install run_rpm.sh install_for_rpm.sh              
/usr/local/ruby-1 .9.3 /lib/ruby/1 .9.1 /yaml .rb:56: in  `< top  (required)>':
It seems your ruby installation is missing psych ( for  YAML output).
To eliminate this warning, please  install  libyaml and reinstall your ruby.
Setting from flags: category=Development /test  {:level=>:info}
Setting from flags: description=Rpm  Install {:level=>:info}
Setting from flags: epoch= {:level=>:info}
Setting from flags: iteration=1.0 {:level=>:info}
Setting from flags: license=BSD {:level=>:info}
Setting from flags: maintainer=denglei {:level=>:info}
Setting from flags: name=test_rpm {:level=>:info}
Setting from flags: url=qq.com {:level=>:info}
Setting from flags: vendor=244979152@qq.com {:level=>:info}
Setting from flags: version=2014 {:level=>:info}
Converting  dir  to rpm {:level=>:info}
no value  for  epoch is  set , defaulting to nil {:level=>:warn}
Reading template {:path=> "/usr/local/ruby-1.9.3/lib/ruby/gems/1.9.1/gems/fpm-1.1.0/templates/rpm.erb" , :level=>:info}
no value  for  epoch is  set , defaulting to nil {:level=>:warn}
Running rpmbuild {:args=>[ "rpmbuild" "-bb" "--define" "buildroot /tmp/package-rpm-build20140704-5378-1sbkpgd/BUILD" "--define" "_topdir /tmp/package-rpm-build20140704-5378-1sbkpgd" "--define" "_sourcedir /tmp/package-rpm-build20140704-5378-1sbkpgd" "--define" "_rpmdir /tmp/package-rpm-build20140704-5378-1sbkpgd/RPMS" "/tmp/package-rpm-build20140704-5378-1sbkpgd/SPECS/test_rpm.spec" ], :level=>:info}
Executing(%prep):  /bin/sh  -e  /var/tmp/rpm-tmp .w21bbk {:level=>:info}
Executing(%build):  /bin/sh  -e  /var/tmp/rpm-tmp .FNduT3 {:level=>:info}
Executing(% install ):  /bin/sh  -e  /var/tmp/rpm-tmp .Cdf5BN {:level=>:info}
Processing files: test_rpm-2014-1.0.x86_64 {:level=>:info}
Wrote:  /tmp/package-rpm-build20140704-5378-1sbkpgd/RPMS/x86_64/test_rpm-2014-1 .0.x86_64.rpm {:level=>:info}
Executing(%clean):  /bin/sh  -e  /var/tmp/rpm-tmp .mv993g {:level=>:info}
Created package {:path=> "test_rpm-2014-1.0.x86_64.rpm" }
16:05:47 # ll /root/
total8
-rw-r--r--1 root root   74 Jul  4 16:02 install_for_rpm.sh
-rw-r--r--1 root root 1709 Jul  4 16:05 test_rpm-2014-1.0.x86_64.rpm

可以看到,有个rpm文件生产,名字是test_rpm-2014-1.0.x86_64.rpm

下面安装rpm的过程

1
2
3
4
5
6
7
8
16:14:21 # ll /tmp/
total96
lrwxrwxrwx1 root root    30 Jul  3 13:29 mysql.sock -> /data/mysql/datadir/mysql .sock
drwxr-xr-x2 root root  4096 Jul  4 16:12 root
-rw-------1 root root   256 Jun  5 10:17 tmp.GbE4cEGjO7
-rw-------1 root root 32379 Jul  3 17:27 yum_save_tx-2014-07-03-17-27UiVNzL.yumtx
-rw-------1 root root 27578 Jul  3 17:29 yum_save_tx-2014-07-03-17-29nffpfF.yumtx
-rw-------1 root root 27578 Jul  3 17:41 yum_save_tx-2014-07-03-17-41S1tFIE.yumtx

可以看到tmp目录里没有fpm目录,现在开始安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
root@e3d3e87fbfd7:~
16:14:24  # rpm -ivh test_rpm-2014-1.0.x86_64.rpm 
Preparing...                 ########################################### [100%]
    1:test_rpm                ########################################### [100%]
root@e3d3e87fbfd7:~
16:14:27  # ll /tmp/
total 104
drwxr-xr-x 2 root root  4096 Jul  4 16:14 fpm
-rw-r--r-- 1 root root    74 Jul  4 16:14 install_for_rpm.sh
lrwxrwxrwx 1 root root    30 Jul  3 13:29 mysql.sock ->  /data/mysql/datadir/mysql .sock
drwxr-xr-x 2 root root  4096 Jul  4 16:12 root
-rw------- 1 root root   256 Jun  5 10:17 tmp.GbE4cEGjO7
-rw------- 1 root root 32379 Jul  3 17:27 yum_save_tx-2014-07-03-17-27UiVNzL.yumtx
-rw------- 1 root root 27578 Jul  3 17:29 yum_save_tx-2014-07-03-17-29nffpfF.yumtx
-rw------- 1 root root 27578 Jul  3 17:41 yum_save_tx-2014-07-03-17-41S1tFIE.yumtx
root@e3d3e87fbfd7:~
16:14:29  # ll /tmp/fpm/
total 4
-rw-r--r-- 1 root root 21 Jul  4 16:14  test .txt
root@e3d3e87fbfd7:~
16:15:00  # cat /tmp/fpm/test.txt 
this is  test  for  rpm

可以看到安装后,tmp目录有了fpm目录,并且这个目录里有了test.txt文件。

rpm打包完成后,你可以使用ansible或者salt等软件来进行配置管理,或者你可以自己弄个本地yum源,rpm包放到yum源里让其他人下载也行,本文没有介绍太深入知识,只是个普及,所以有那块不懂的可以自行网上寻找。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值