我想爲我在Qt中編寫的庫創建一個rpm包。這裏是我的規格文件:rpmbuilder創建只有源rpm不是二進制rpm
Name: blabla
Version: 1.3.2
Release: 0.1
License: GPL
Summary: my awsome lib
Url: http://me.home.mrz.net
Group: Core Applictaion
Source: http://svn.me.home.mrz.net/svn/Core/blabla-1.3.2.tar
Vendor: mrz Inc.
BuildArch: x86_64
Packager: mrz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
%prep
%setup
%build
qmake
%install
make install
%clean
%{?buildroot:%__rm -rf "%{buildroot}"}
%files:
%defattr(-,root,root)
/home/mrz/local/lib/libBlabla.so
/home/mrz/local/lib/libBlabla.so.%{version}
運行
rpmbuild -ba blabla.spec
的後的rpmbuild正常完指示其又寫道的的src.rpm(退出0),隻字不提的.rpm文件。我可以看到布拉布拉-1.3.2-01.src.rpm在SRPMS文件夾,但RMPS文件夾爲空,這裏是輸出的某些部分,我得到:
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.WwW6ps
+ unmask 022
+ cd /home/mrz/rpmbuild/BUILD
+ rm -rf blabla-1.3.2
+ /usr/bin/gzip -dc /home/mrz/rpmbuild/SOURCES/blabla-1.3.2.tar
+ /bin/tar -xvvf -
.
.
.
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd blabla-1.3.2
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.sNb2WS
+ umask 022
+ cd /home/mrz/rpmbuild/BUILD
+ /bin/rm -rf /home/mrz/rpmbuild/BUILDROOT/blabla-1.3.2-0.1.x86_64
++ dirname /home/mrz/rpmbuild/BUILDROOT/blabla-1.3.2-0.1.x86_64
+ /bin/mkdir -p /home/mrz/rpmbuild/BUILDROOT
+ /bin/mkdir /home/mrz/rpmbuild/BUILDROOT/blabla-1.3.2-0.1.x86_64
+ cd blabla-1.3.2
+ qmake
Project MESSAGE: ******************************************************************
Project MESSAGE: * Building blabla
Project MESSAGE: * project default message
Project MESSAGE: ******************************************************************
.
.
.
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.qVk8KW
+ umask 022
+ cd /home/mrz/rpmbuild/BUILD
+ cd blabla-1.3.2
+ make install
cd src/ && /usr/bin/qmake /home/mrz/rpmbuild/BUILD/blabla-1.3.2/src/src.pro -o
Makefile
Project MESSAGE: ******************************************************************
Project MESSAGE: * Building blabla
Project MESSAGE: * project default message
Project MESSAGE: ******************************************************************
cd src/ && make -f Makefile install
make[1]: Entering directory `/home/mrz/rpmbuild/BUILD/blabla-1.3.2/src'
g++ -c -m64 -pipe -O2 -fPIC -Wall -W
.
.
.
+ /usr/lib/rpm/brp-lib64-linux
[email protected]: if you find problems with this script, drop me a note
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/brp-symlink
Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/mrz/rpmbuild/BUILDROOT/blabla-1.3.2-0.1.x86_64
warning: Could not canonicalize hostname: linux-x1rh
Wrote: /home/mrz/rpmbuild/SRPMS/blabla-1.3.2-0.1.src.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.M4rJDm
+ umask 022
+ cd /home/mrz/rpmbuild/BUILD
+ cd blabla-1.3.2
+ /bin/rm -rf /home/mrz/rpmbuild/BUILDROOT/blabla-1.3.2-0.1.x86_64
+ exit 0
任何人都知道我在做什麼錯...
難道你沒有得到任何輸出?它說什麼?另外,你的spec文件不能工作:1.你在'%files'之後有一個':',2.你不告訴'make install'關於你的編譯根目錄。 – glglgl
和3.,RPM文件不應包含'/ home'的任何文件。 – glglgl
@glglgl:我得到一個輸出,正如我提到的,它說一切正常(退出0),並且源rpm已經寫入其相關文件夾中,沒有提及任何有關二進制rpm的內容。那麼,spec文件的工作原理(你可以在我更新後的文章中看到輸出結果),但我認爲它並不像它應該那樣。有沒有足夠的空間來評論這3個問題,所以我會創建新的評論。 – mrz