LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 537|回复: 4

关于制作rpm包的问题?

[复制链接]
发表于 2005-7-5 11:15:09 | 显示全部楼层 |阅读模式
我制作一个rpm包需要做什么工作啊,请给详细的解说一下
另:我想把一个已经装好的rpm包装好后,做一下修改,然后修改的文件做成rpm包,怎么弄啊,希望有高手能解答这样的问题
发表于 2005-7-9 10:04:30 | 显示全部楼层
rpm2cpio xxx.src.rpm|cpio -idmv 解出src.rpm包含的文件,然后想怎么改就怎么改
回复 支持 反对

使用道具 举报

发表于 2005-7-9 11:44:27 | 显示全部楼层
那怎么把它打包回去呢?
回复 支持 反对

使用道具 举报

发表于 2005-7-9 12:41:55 | 显示全部楼层
楼主是想修改预编译的rpm,不是srpm,不建议你这么做。
回复 支持 反对

使用道具 举报

发表于 2005-7-9 22:58:41 | 显示全部楼层
这种问题实在不好回答啊
浅了没看头,想深入得写一打的东东

建议参考
http://www.rpm.org/RPM-HOWTO/

更多的是通过google package .spec来搜索相应的spec文件,学习别人的spec技巧,shell语法。确实多看看别人的spec写法,能学到不少的好东东。

看看下面2个简单的例子,过程当中更多的是解决所有文件的权限以及位置,以及相应的依赖关系

一个最最简单的,只完成常规的./configure make make install

Name: mp3blaster
Summary: Mp3blaster is a text console audio player with an interactive interface
Version: 3.1.3
Release: 1
Group: Applications/Multimedia
Copyright: GPL
Url: http://www.stack.nl/~brama/mp3blaster/
Packager: Bram Avontuur <bram@mp3blaster.avontuur.org>
Distribution: N/A
Source: http://www.stack.nl/~brama/mp3blaster/src/%{name}-%{version}.tar.gz
Buildroot: /var/tmp/%{name}-%{version}-%{release}-root

%description
Mp3blaster is an audio player with a user-friendly interface that will run
on any text console. The interface is built using ncurses, and features all
common audio player controls. The playlist editor is very flexible and allows
nested groups (albums). Supported audio media: mp3, ogg vorbis, wav, sid and
streaming mp3 over HTTP.

%prep
%setup

%build
%configure
make

%install
%makeinstall

%clean
rm -rf $RPM_BUILD_ROOT

%files
%doc AUTHORS COPYING ChangeLog INSTALL NEWS README TODO
%{_bindir}/mp3blaster
%{_bindir}/mp3tag
%{_bindir}/splay
%{_bindir}/nmixer
%{_datadir}/mp3blaster/*
%{_mandir}/man1/mp3blaster.1*
%{_mandir}/man1/nmixer.1*
%{_mandir}/man1/splay.1*


这个可以解决你的需求,

%define name       libqq
%define ver       0.0.3
%define rel        1

SummaryQ plugin 0.0.3 ft for Gaim
Name: %{name}
Version: %{ver}
Release: %{rel}
Copyrightistributable
Group:Applications/Internet
Source0:gaim.desktop
Source1:wry.dll
Source2:libqq-0.0.3-xfer-0.64-gcc32.so
Source3:qqfaces.tar.gz
Source4:qq_smiley.tar.gz
Source5:ChangeLog
Source6:libqq_about2.html


#Patch0:
URL:http://www.zoudan.com
#Serial:
BuildRoot: /var/tmp/%{name}-%{ver}-root
PreReq:                /sbin/ldconfig, /usr/bin/ldd
Conflicts: gaim < 0.64
BuildArch: noarch

%description
QQ plugin 0.0.3 ft for Gaim

%changelog
*Thu Feb 12 2004 dato <http://dato.minidns.net>
- initial build for turbolinux

#--------------------------------------------------
%prep
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT && %{__mkdir} -p $RPM_BUILD_ROOT/%{name}-%{ver}


%build


%install
install -d $RPM_BUILD_ROOT%{_libdir}/gaim/
install -d $RPM_BUILD_ROOT%{_datadir}/applnk/Internet
install -m 644 %{SOURCE0} $RPM_BUILD_ROOT%{_datadir}/applnk/Internet
install -d $RPM_BUILD_ROOT%{_datadir}/gnome/apps/Internet/
install -m 644 %{SOURCE0} $RPM_BUILD_ROOT%{_datadir}/gnome/apps/Internet
cp -a ]%{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/gaim
install -m 644 %{SOURCE2} \
$RPM_BUILD_ROOT%{_libdir}/gaim/libqq-0.0.3-xfer-0.64-gcc32.so
install -d $RPM_BUILD_ROOT/usr/local/share/pixmaps/gaim/status/default
( cd $RPM_BUILD_ROOT/usr/local/share/pixmaps/gaim/status/default
tar zvfx %{SOURCE3}
chmod -Rf a+rX,g-w,o-w .
rm -rf `find -type d -name CVS`
)
install -d $RPM_BUILD_ROOT/usr/local/share/pixmaps/gaim/smileys/default
( cd $RPM_BUILD_ROOT/usr/local/share/pixmaps/gaim/smileys/default
tar zvfx %{SOURCE4}
chmod -Rf a+rX,g-w,o-w .
rm -rf `find -type d -name CVS`
)
install -d $RPM_BUILD_ROOT%{_datadir}/doc/packages/%{name}-%{ver}
cp -a %{SOURCE5} %{SOURCE6} $RPM_BUILD_ROOT%{_datadir}/doc/packages/%{name}-%{ver}


%clean
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT


%files
%defattr(-,root,root)
%{_datadir}/doc/packages/%{name}-%{ver}/*
%dir /usr/local/share/pixmaps/gaim/status/default
/usr/local/share/pixmaps/gaim/status/default/*
%dir /usr/local/share/pixmaps/gaim/smileys/default
/usr/local/share/pixmaps/gaim/smileys/default/*
%{_datadir}/applnk/Internet/gaim.desktop
%{_datadir}/gnome/apps/Internet/gaim.desktop
%{_libdir}/gaim/wry.dll
%{_libdir}/gaim/libqq-0.0.3-xfer-0.64-gcc32.so
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表