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?
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
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). –
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