|
|
发表于 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
Summary Q plugin 0.0.3 ft for Gaim
Name: %{name}
Version: %{ver}
Release: %{rel}
Copyright istributable
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 |
|