注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

牧笔临风

己有能,勿自私!

 
 
 

日志

 
 
 
 

rpm的制作全过程  

2010-12-20 12:14:54|  分类: linux基础篇 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1、新建一个hellome-1.0的目录

[root@freepp kelivn]# mkdir hellome-1.0

2、在hellome-1.0目录下创建一个hellome.c源文件并保存

[root@freepp hellome-1.0]# vim hellome.c 
#include <stdio.h>

int main()
{
   printf("This is my first test for RPM");

return 0;

}

[root@freepp hellome-1.0]# ls
hellome.c 

3、在hellome-1.0目录下创建README帮助文档并保存

[root@freepp hellome-1.0]# vim README 
 This is just a test for RPM

[root@freepp hellome-1.0]# ls
hellome.c  README
4、在hellome-1.0目录下用autoscan产生一个configure.scan文档  

[root@freepp hellome-1.0]# autoscan
autom4te: configure.ac: no such file or directory
autoscan: /usr/bin/autom4te failed with exit status: 1
[root@freepp hellome-1.0]# ls
autoscan.log  configure.scan  hellome.c  README

5、修改configure.scan为configure.in

[root@freepp hellome-1.0]# mv configure.scan configure.in   
[root@freepp hellome-1.0]# ls
autoscan.log  configure.in  hellome.c  README

6、编辑configure.in

[root@freepp hellome-1.0-backup]# vim configure.in 

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ(2.59)

AC_INIT(hellome,1.0)

AM_INIT_AUTOMAKE(hellome,1.0)

AC_CONFIG_SRCDIR([hellome.c])
AC_CONFIG_HEADER([config.h])

# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

#The next one is added by kelivn
AC_CONFIG_FILES([Makefile])

AC_OUTPUT

7、执行aclocal,建立acolocal.m4

[root@freepp hellome-1.0]# aclocal
[root@freepp hellome-1.0]# ls
aclocal.m4  autom4te.cache  autoscan.log  configure.in  hellome.c  README
8、执行autoconf,建立 configure

[root@freepp hellome-1.0]# autoconf
[root@freepp hellome-1.0]# ls
aclocal.m4  autom4te.cache  autoscan.log  configure  configure.in  hellome.c  README

9、编写一个Makefile.am并保存
[root@freepp hellome-1.0]# vim Makefile.am 
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=hellome
hellome_SOURCES=hellome.c

[root@freepp hellome-1.0]# ls
aclocal.m4  autom4te.cache  autoscan.log  configure  configure.in  hellome.c  Makefile.am  README

10、执行autoheader,建立config.h.in

[root@freepp hellome-1.0]# autoheader
[root@freepp hellome-1.0]# ls
aclocal.m4  autom4te.cache  autoscan.log  config.h.in  configure  configure.in  hellome.c  Makefile.am  README
11、执行automake   --add-missing,建立Makefile.in

[root@freepp hellome-1.0]# automake --add-missing
configure.in: installing `./install-sh'
configure.in: installing `./missing'
Makefile.am: installing `./depcomp'
[root@freepp hellome-1.0]# ls
aclocal.m4      autoscan.log  configure     depcomp    install-sh   Makefile.in  README
autom4te.cache  config.h.in   configure.in  hellome.c  Makefile.am  missing
12、执行./configure ,建立Makefile

[root@freepp hellome-1.0]# ./configure 
.......................
[root@freepp hellome-1.0]# ls 
aclocal.m4      autoscan.log  config.h.in  config.status  configure.in  hellome.c   Makefile     Makefile.in  README
autom4te.cache  config.h      config.log   configure      depcomp       install-sh  Makefile.am  missing      stamp-h1

13、在hellome-1.0的父目录下制造tar包

  [root@freepp hellome-1.0]# cd ..
[root@freepp kelivn]# tar zcvf hellome-1.0.tar.gz hellome-1.0

.......

[root@freepp kelivn]# ls
hellome-1.0         hellome-1.0.tar.gz 

14、将生成的tar包复制到/usr/src/redhat/SOURCES

[root@freepp kelivn]# cp hellome-1.0.tar.gz /usr/src/redhat/SOURCES
[root@freepp kelivn]# cd /usr/src/redhat/SOURCES
[root@freepp SOURCES]# ls
hellome-1.0.tar.gz
15、在/usr/src/redhat/SPECS 中建立 hellome-1.0.spec
[root@freepp SPECS]# vi hellome-1.0.spec 

Name: hellome
Version: 1.0
Release: 1
License: GPL
Group: Applications/System
Source: %{name}-%{version}.tar.gz
Summary:My first example for RPM Building.

BuildRoot: %{_tmppath}/%{name}-%{version}-root

%description
 This package is my first example for RPM build.

%prep
%setup -q
%build
%configure
make
%install

rm -rf $RPM_BUILD_ROOT

make DESTDIR=$RPM_BUILD_ROOT install
install -m 755 hellome /usr/local/bin/hellome
%files
%doc README
/usr/local/bin/hellome

%changelog

Mon Dec 20 2010 compile

%clean

rm -rf $RPM_BUILD_ROOT

make clean

16、在 /usr/src/redhat/SPEC目录中执行 rpmbuild -ba 建立source   及  binary   RPM

[root@freepp SPECS]# rpmbuild -ba hellome-1.0.spec
..........................

17、安装这个RPM

[root@freepp SPECS]# cd /usr/src/redhat/SRPMS/
[root@freepp SRPMS]# ls
hellome-1.0-1.src.rpm
[root@freepp SRPMS]# cd /usr/src/redhat/RPMS/i386/
[root@freepp i386]# ls
hellome-1.0-1.i386.rpm
[root@freepp i386]# rpm -ivh hellome-1.0-1.i386.rpm
hellome

 ########################################### 
[root@freepp i386]# hellome
This is my first test for RPM

[root@freepp i386]# rpm -qa hellome
hellome-1.0-1

本文转自 http://blog.163.com/renjianqin_1984/blog/static/13288215420106216421717/

  评论这张
 
阅读(209)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017