学习r p m 打包,出错!
rocessing files: fltk-1.0.11-1mgcProvides: libfltk.so.1
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: libX11.so.6 libXext.so.6 libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.1.3) libc.so.6(GLIBC_2.3) libm.so.6 libm.so.6(GLIBC_2.0)
Processing files: fltk-devel-1.0.11-1mgc
error: File not found: /var/tmp/fltk-1.0.11-1mgc-root/usr/bin/fluid
error: File not found by glob: /var/tmp/fltk-1.0.11-1mgc-root/usr/man/*
Processing files: fltk-debuginfo-1.0.11-1mgc
Provides: libfltk.so.1.debug
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
RPM build errors:
File not found: /var/tmp/fltk-1.0.11-1mgc-root/usr/bin/fluid
File not found by glob: /var/tmp/fltk-1.0.11-1mgc-root/usr/man/*
s pe c 文件从源码包修改而来,如下:
%define version 1.0.11
%define release 1mgc
%define prefix /usr
Summary: Fast Light Tool Kit (FLTK)
Name: fltk
Version: %{version}
Release: %{release}
Copyright: LGPL
Group: System Environment/Libraries
Source: ftp://ftp.fltk.org/pub/fltk/%{version}/fltk-%{version}-source.tar.gz
URL: http://www.fltk.org
Packager: ygw_ycf<[email protected]>
# use BuildRoot so as not to disturb the version already installed
BuildRoot:%{_tmppath}/%{name}-%{version}-%{release}-root
%description
The Fast Light Tool Kit ("FLTK", pronounced "fulltick") is a LGPL'd
C++ graphical user interface toolkit for X (UNIX(r)), OpenGL(r),
and Microsoft(r) Windows(r) NT 4.0, 95, or 98. It was originally
developed by Mr. Bill Spitzak and is currently maintained by a
small group of developers across the world with a central
repository in the US.
%package devel
Summary: FLTK - development environment
Group: Development/Libraries
%description devel
Install fltk-devel if you need to develop FLTK applications.You'll
need to install the fltk package if you plan to run dynamically linked
applications.
%prep
%setup
%build
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix} --enable-shared
# If we got this far, all prerequisite libraries must be here.
make
%install
# these lines just make sure the directory structure in the
# RPM_BUILD_ROOT exists
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT
make -e prefix=$RPM_BUILD_ROOT/%{prefix} install
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%{prefix}/lib/libfltk*.so.*
%files devel
%defattr(-,root,root)
%{prefix}/bin/fluid
%{prefix}/include/FL
%{prefix}/include/Fl
%{prefix}/lib/libfltk*.so
%{prefix}/lib/libfltk*.a
%{prefix}/man/*
%{prefix}/share/doc/fltk/*
哪儿还有错误?恳请指教!!! File not found: /var/tmp/fltk-1.0.11-1mgc-root/usr/bin/fluid
File not found by glob: /var/tmp/fltk-1.0.11-1mgc-root/usr/man/* 你首先需要了解软件到底向那个虚拟根目录里安装了什么。如果你在任何 %files 字段指定了虚拟根目录里并不存在的东西,系统就会报错,包括用 %exclude 排除的东西也是这样。显然,系统已经指明,下列箭头指示的文件或目录并不存在:
%files devel
%defattr(-,root,root)
%{prefix}/bin/fluid <--------
%{prefix}/include/FL
%{prefix}/include/Fl
%{prefix}/lib/libfltk*.so
%{prefix}/lib/libfltk*.a
%{prefix}/man/* <--------
%{prefix}/share/doc/fltk/*
去掉这两行可以解决问题,但要注意可能确实有文件或目录叫做 fluid 和 man/* 只是路径写错了,简单去掉它们可能造成数据损失,打包不完整。 是的,我去掉了
%{prefix}/lib/libfltk*.so.*
%{prefix}/bin/fluid
打包成功,
但是这个spec文件,是源码包自带的,去掉是否就意味安装时,不会安装
/bin/fluid,或/lib/libltk*.so呢 yes! 去掉 %{prefix}/lib/libfltk*.so.*干什么?你再仔细看看系统的出错提示。
凡是不列在 %files字段的东西,都不会自动打进包里。
另一些文件可以是由 spec 作者指定打包的,并没有列在这里。 谢谢,这个问题,基本弄懂。用的 源码包属于be ta ,换成re a l se ,不存在这问题 In file included from options.cpp:29:
main.h:11:1: warning: "_" redefined
In file included from ../libprozilla/src/netrc.h:26,
from ../libprozilla/src/prozilla.h:31,
from main.h:7,
from options.cpp:29:
../libprozilla/src/common.h:162:1: warning: this is the location of the previous definition
options.cpp: In function `int pref_panel_set_values()':
options.cpp:194: error: using typedef-name `proxy_type' after `enum'
make: *** Error 1
make: Leaving directory `/usr/src/redhat/BUILD/prozgui-2.0.5beta/src'
make: *** Error 1
make: Leaving directory `/usr/src/redhat/BUILD/prozgui-2.0.5beta'
make: *** Error 2
error: Bad exit status from /var/tmp/rpm-tmp.50523 (%build)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.50523 (%build)
这样的错误意味要修改 源码吗? 软件自己的错误,是常有的事。
页:
[1]