rpm 打包图片、配置文件等无需编译的文件过程
2014-03-10 16:27
204 查看
theme-devel.tar.gz包中没有需要编译的东西,只是需要安装的一些图片和文件,如何打成RPM包
1.在/usr/src/rpmbuild/SOURCES/目录中建好文件目录的层次结构,再压缩成tar.gz文件,
2.进入/usr/src/rpmbuild/SPECS目录,创建spec文件,
%prep部分
解压缩,进入源代码目录
%build部分
为空什么都不做,因为没有源代码
%install部分
建立临时的安装目录
把解压缩后的图片和文件copy到安装目录中
%post
改变文件目录的owner 和 attributes
二进制文件的patch解决办法:
如果是需要改变第一次打的rpm包中的图片,但是由于diff不能生成二进制文件的patch,二进制文件不能被打补丁,
那么在原来tar.gz 包不能改变的情况下,可以在%install这步中,用copy新文件覆盖原来文件的办法
然后把覆盖以后的临时安装目录树再打成RPM包就可以了。
===================================================
Summary: theme devel
Name: theme-devel
Version: 2
Release: 1%{?dist}
License: GPL
Group: Applications/System
Source0: theme-devel.tar.gz
Source1: theme-devel-pictures.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}
%description
theme devel
%prep
%setup -q -n theme-devel
%build
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/share/themes/
mkdir -p $RPM_BUILD_ROOT/root
#mkdir -p $RPM_BUILD_ROOT/home/moblin/
cp -ra devel $RPM_BUILD_ROOT/usr/share/themes/
tar zxvf $RPM_SOURCE_DIR/theme-devel-pictures.tar.gz -C %{_builddir}
cp -ra %{_builddir}/theme-devel-pictures/images/ $RPM_BUILD_ROOT/usr/share/themes/devel/
cp -ra %{_builddir}/theme-devel-pictures/backgrounds/* $RPM_BUILD_ROOT/usr/share/themes/devel/backgrounds/
cp -ra %{_builddir}/theme-devel-pictures/gtk-2.0/ $RPM_BUILD_ROOT/usr/share/themes/devel/
#cp -ra %{_builddir}/theme-devel-pictures/.backgrounds $RPM_BUILD_ROOT/home/moblin/
cp -ra %{_builddir}/theme-devel-pictures/.backgrounds $RPM_BUILD_ROOT/root/
%post
cp -ra /root/.backgrounds /home/moblin/
cd /home/moblin
chown -R moblin.moblin .backgrounds
#chown moblin.moblin /home/moblin
#chmod 700 /home/moblin
chmod 750 /root
cd /usr/share/themes
rm -fr default
ln -s devel default
%postun
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-, root, root)
/*
%changelog
* Wed Apr 28 2010 shaoning <sing.fan@gmail.com>
- add %post scripts
* Thu Apr 27 2010 zhangze <zhe.linux@gmail.com>
- modify some theme pictures.
* Mon Feb 1 2010 wang baisheng <bai.wang.cn@gmail.com>
- first build.
===================================================
只有文本文件可以diff生成patch,二进制文件不可以,所以如果要改变文本文件的话,可以在src rpm包中加patch。
SPEC文件是控制RPM BUILD 过程的配置文件,虽然是文本文件,但是不能给它自己打patch,所以每次修改后要在
SPEC文件最后的%changelog中记录在SPEC文件中修改了哪些内容
从开源社区拿来的源码包被修改以后,提交到SVN上时,要提交
1. 原始的source.tar.gz;
2. 添加的patch,保留原始代码不变,采用patch的方式修改源代码,
可以清晰的记录各个版本之间都修改了哪些内容,记录各个版本的变化,
最好是分多个patch打进去,而不要做成一个很大的patch,在排除问题
的时候可以很容易的发现问题出在那里,快速排除问题;
3. 以及修改了以后的SPEC文件,SPECK是文本文件,可以在SVN中形成版本追溯。
===================================
spec文件主要的作用就是控制整个打包的流程,如何控制流程:
1. 先解压tar.gz,打上patch做好build准备;
2. 再编译,如果tar.gz中的源码包是用make来管理的,那么一个make命令就可以完成全部编译,
如果没有用make,那么就只能用手动编译的方式一步一步的来编译了;
3. 然后再安装到$RPM_BUILD_ROOT的目录下,同样如果有make的话一个make install就够了,
如果没有make, 那就自己cp, mv, install 吧
4. 检查打进rpm包中的文件列表
5. 生成binary rpm, source rpm;
1.在/usr/src/rpmbuild/SOURCES/目录中建好文件目录的层次结构,再压缩成tar.gz文件,
2.进入/usr/src/rpmbuild/SPECS目录,创建spec文件,
%prep部分
解压缩,进入源代码目录
%build部分
为空什么都不做,因为没有源代码
%install部分
建立临时的安装目录
把解压缩后的图片和文件copy到安装目录中
%post
改变文件目录的owner 和 attributes
二进制文件的patch解决办法:
如果是需要改变第一次打的rpm包中的图片,但是由于diff不能生成二进制文件的patch,二进制文件不能被打补丁,
那么在原来tar.gz 包不能改变的情况下,可以在%install这步中,用copy新文件覆盖原来文件的办法
然后把覆盖以后的临时安装目录树再打成RPM包就可以了。
===================================================
Summary: theme devel
Name: theme-devel
Version: 2
Release: 1%{?dist}
License: GPL
Group: Applications/System
Source0: theme-devel.tar.gz
Source1: theme-devel-pictures.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}
%description
theme devel
%prep
%setup -q -n theme-devel
%build
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/share/themes/
mkdir -p $RPM_BUILD_ROOT/root
#mkdir -p $RPM_BUILD_ROOT/home/moblin/
cp -ra devel $RPM_BUILD_ROOT/usr/share/themes/
tar zxvf $RPM_SOURCE_DIR/theme-devel-pictures.tar.gz -C %{_builddir}
cp -ra %{_builddir}/theme-devel-pictures/images/ $RPM_BUILD_ROOT/usr/share/themes/devel/
cp -ra %{_builddir}/theme-devel-pictures/backgrounds/* $RPM_BUILD_ROOT/usr/share/themes/devel/backgrounds/
cp -ra %{_builddir}/theme-devel-pictures/gtk-2.0/ $RPM_BUILD_ROOT/usr/share/themes/devel/
#cp -ra %{_builddir}/theme-devel-pictures/.backgrounds $RPM_BUILD_ROOT/home/moblin/
cp -ra %{_builddir}/theme-devel-pictures/.backgrounds $RPM_BUILD_ROOT/root/
%post
cp -ra /root/.backgrounds /home/moblin/
cd /home/moblin
chown -R moblin.moblin .backgrounds
#chown moblin.moblin /home/moblin
#chmod 700 /home/moblin
chmod 750 /root
cd /usr/share/themes
rm -fr default
ln -s devel default
%postun
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-, root, root)
/*
%changelog
* Wed Apr 28 2010 shaoning <sing.fan@gmail.com>
- add %post scripts
* Thu Apr 27 2010 zhangze <zhe.linux@gmail.com>
- modify some theme pictures.
* Mon Feb 1 2010 wang baisheng <bai.wang.cn@gmail.com>
- first build.
===================================================
只有文本文件可以diff生成patch,二进制文件不可以,所以如果要改变文本文件的话,可以在src rpm包中加patch。
SPEC文件是控制RPM BUILD 过程的配置文件,虽然是文本文件,但是不能给它自己打patch,所以每次修改后要在
SPEC文件最后的%changelog中记录在SPEC文件中修改了哪些内容
从开源社区拿来的源码包被修改以后,提交到SVN上时,要提交
1. 原始的source.tar.gz;
2. 添加的patch,保留原始代码不变,采用patch的方式修改源代码,
可以清晰的记录各个版本之间都修改了哪些内容,记录各个版本的变化,
最好是分多个patch打进去,而不要做成一个很大的patch,在排除问题
的时候可以很容易的发现问题出在那里,快速排除问题;
3. 以及修改了以后的SPEC文件,SPECK是文本文件,可以在SVN中形成版本追溯。
===================================
spec文件主要的作用就是控制整个打包的流程,如何控制流程:
1. 先解压tar.gz,打上patch做好build准备;
2. 再编译,如果tar.gz中的源码包是用make来管理的,那么一个make命令就可以完成全部编译,
如果没有用make,那么就只能用手动编译的方式一步一步的来编译了;
3. 然后再安装到$RPM_BUILD_ROOT的目录下,同样如果有make的话一个make install就够了,
如果没有make, 那就自己cp, mv, install 吧
4. 检查打进rpm包中的文件列表
5. 生成binary rpm, source rpm;
相关文章推荐
- 图片和配置文件的RPM包的打包过程
- linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生
- 静态库资源文件、xib、图片打包处理,编译生成的静态库.a包文件太大缩小解决方法
- windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
- 【转】maven打包时过滤无需编译的文件
- ueditor1.4.3配置过程(包含单独上传文件以及图片的使用)
- Android Studio Gradle多渠道打包(动态设定App名称,应用图标,背景图片,状态栏颜色)、配置签名文件
- linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
- Android Apk 文件反编译和重新打包的过程分析
- 【Android】打包过程:生成自动代码->编译->(混淆)->dex文件->生成资源文件->打apk包->(签名)->对齐
- build.xml配置编译打包过程(转)
- IDEA下maven编译打包Java项目成jar包但是resource下配置文件打包不成功
- eclipse配置NDK自动编译jni中C/C++文件,并打包的方法
- (一)webpack配置loader,打包js和sass以及图片文件
- 分享知识-快乐自己:IDEA下maven编译打包Java项目成jar包但是resource下配置文件无法编译
- java应用程序中处理配置文件和图片路径在打包后路径不对的问题
- windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
- ueditor1.4.3配置过程(包含单独上传文件以及图片的使用),ueditor1.4.3上传配置(转 http://www.bkjia.com/webzh/1001016.html)
- 安卓镜像文件编译打包过程
- EWARM IAR5.4编译链接过程, 程序运行阶段, ICF ilink配置文件