2012-12-28 6 views
5

Ich versuche ein Paket zu erstellen, das nur Dateien auf dem System aktualisiert, aber ich erhalte immer Fehler, wenn rpmbuild ist Lauf. Der Fehler weist darauf hin, dass eine Datei fehlt.rpmbuild Probleme auf CentOS - Schlechter Ausgangsstatus von /home/me/rpmbuild/tmp/rpm-tmp.58942

Ich habe dies auf CentOS 5 und 6 mit den gleichen Ergebnissen versucht.

Ich verwendete rpmdev-setuptree, um das Dateisystem einzurichten, die auch ~/.rpmmacros Datei einrichten. Ich habe dann rpmdev-newspec verwendet, um die Spezifikationsdatei zu initialisieren.

Ich bin als nicht root-Benutzer ausgeführt.

Ich habe die Spezifikationsdatei in ~/rpmbuild/SPECS/test.spec und meine Quelle ist: ~/rpmbuild/SOURCES/test-1.tar.gz. Das Extrahieren dieser Datei erstellt ein Verzeichnis mit dem Namen test-1 mit 2 Dateien darin. Ich habe bestätigt, dass es zu ~/rpmbuild/BUILD/test-1 extrahiert wird, wenn ich versuche, das Paket zu erstellen.

Ich betreibe: rpmbuild -ba ~/rpmbuild/SPECS/test.spec

Dann habe ich diesen Fehler:

  • ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --target=x86_64-redhat-linux-gnu --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info /home/me/rpmbuild/tmp/rpm-tmp.58942: line 37: ./configure: No such file or directory error: Bad exit status from /home/me/rpmbuild/tmp/rpm-tmp.58942 (%build)

RPM build errors: Bad exit status from /home/me/rpmbuild/tmp/rpm-tmp.58942 (%build)

Hier ist meine Spec-Datei:

Name:   test 
Version:  1 
Release:  1%{?dist} 
Summary:  Test 

Group:   Test 
License:  GPL 
URL:   http://example.com 
Source0:  test-1.tar.gz 
BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 

#BuildRequires: 
#Requires:  

%description 
This is a test to push files. 

%prep 
%setup -q 

%build 
#%configure 
#make %{?_smp_mflags} 

%install 
rm -rf $RPM_BUILD_ROOT 
#make install DESTDIR=$RPM_BUILD_ROOT 
install -m 0755 -d $RPM_BUILD_ROOT/opt/test 

%clean 
rm -rf $RPM_BUILD_ROOT 

%files 
%dir /opt/test 
%defattr(-,root,root,-) 
%doc 

Alle Ideen, was ich tun könnte falsch?

Antwort

4

Sieht aus wie die Standard-GNU „./configure“ Skript nicht da ist, so dass Sie nicht den Standard-%setup Makro in der Spec-Datei verwenden können und werden einen benutzerdefinierte %prep Abschnitt benötigen ... (One source)(mirror)

+0

I couldn‘ Ich finde heraus, wie man das Makro überschreibt, um zu verhindern, dass es './configure' ausführt, aber ich habe eine leere Konfigurationsdatei in das Wurzelverzeichnis der Quelle geschrieben und es mir erlaubt, den Build zu vervollständigen. Danke, dass Sie mich auf den richtigen Weg gebracht haben. – Coder1

+4

Entschuldigung - ich hätte näher gucken sollen! Ein bekanntes PITA "Feature" von RPM ist, dass Sie ein Makro nicht wie oben auskommentieren können. Sie müssen '# %% configure' setzen oder nur die * erste Zeile * des Makros kommentieren! (Das erste '%' entkommt dem zweiten.) –

+1

Bestätigt Ich kann die rpm ohne die configure-Datei jetzt mit dem zusätzlichen '%' im Kommentar erstellen oder indem ich diese Zeile komplett entferne. Ich dachte, dass mein Kommentar effektiv funktioniert. Vielen Dank! – Coder1