2012-12-28 10 views
5

Próbuję utworzyć pakiet, który aktualizuje tylko pliki w systemie, ale ciągle dostaję błędy, gdy rpmbuild jest biegać. Błąd wskazuje, że brakuje pliku.Problemy z rpmbuild na CentOS - Zły stan wyjścia z /home/me/rpmbuild/tmp/rpm-tmp.58942

Próbowałem tego na CentOS 5 i 6 z tymi samymi wynikami.

Użyłem rpmdev-setuptree do ustawienia systemu plików, który również ustawia plik ~/.rpmmacros. Następnie użyłem rpmdev-newspec, aby zainicjować plik spec.

Używam jako użytkownik inny niż root.

Mam plik spec w ~/rpmbuild/SPECS/test.spec, a moje źródło to: ~/rpmbuild/SOURCES/test-1.tar.gz. Wyodrębnienie tego pliku tworzy katalog o nazwie test-1 z 2 plikami wewnątrz niego. Potwierdziłem, że podczas próby zbudowania pakietu zostanie on wyodrębniony do ~/rpmbuild/BUILD/test-1.

biegnę: rpmbuild -ba ~/rpmbuild/SPECS/test.spec

Potem dostaję ten błąd:

  • ./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)

Oto mój plik spec:

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 

Wszelkie pomysły na to, co mogę robić źle?

Odpowiedz

4

Wygląda jak domyślnie GNU „./configure” skrypt nie istnieje, więc nie można użyć domyślnego %setup makro w pliku spec i będą musiały sekcję zwyczaj %prep ... (One source)(mirror)

+0

Nie mogłem t wymyślić, jak zastąpić makro, aby nie wykonywał './configure', ale umieściłem pusty plik konfiguracyjny w katalogu głównym źródła i pozwoliło mi dokończyć kompilację. Dzięki za postawienie mnie na właściwej drodze. – Coder1

+4

Przepraszam - powinienem był się bliżej przyjrzeć! Dobrze znaną "funkcją" PMP w RPM jest to, że nie możesz skomentować makra, tak jak powyżej. Musisz wstawić '# %% configure' lub tylko komentuje * pierwszą linię * makra! (Pierwsze '%' ucieka z drugiego). –

+1

Potwierdzone Mogę zbudować rpm bez pliku konfiguracyjnego teraz z dodatkowym '%' w komentarzu lub całkowicie usuwając ten wiersz. Myślałem, że mój komentarz skutecznie działa. Dzięki! – Coder1