Проблемы с rpmbuild в CentOS - Неверный статус выхода из /home/me/rpmbuild/tmp/rpm-tmp.58942

Я пытаюсь создать пакет, который обновляет только файлы в системе, но при запуске rpmbuild все время возникают ошибки. Ошибка указывает на отсутствие файла.

Я пробовал это на CentOS 5 и 6 с теми же результатами.

Я использовал rpmdev-setuptree для настройки файловой системы, которая также установила ~/.rpmmacros файл. Затем я использовал rpmdev-newspec для инициализации файла спецификации.

Я работаю как пользователь без полномочий root.

У меня есть файл спецификации в ~/rpmbuild/SPECS/test.spec, и мой источник: ~/rpmbuild/SOURCES/test-1.tar.gz. Извлечение этого файла создает каталог с именем test-1 с двумя файлами внутри него. Я подтвердил, что он действительно извлекается в ~/rpmbuild/BUILD/test-1, когда я пытаюсь собрать пакет.

Я бегу: rpmbuild -ba ~/rpmbuild/SPECS/test.spec

Затем я получаю такую ​​ошибку:

  • ./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: строка 37: ./configure: нет такой ошибки файла или каталога: неверный статус выхода из /home/me/rpmbuild/tmp/rpm-tmp.58942 (% build)

Ошибки сборки RPM: неверный статус выхода из /home/me/rpmbuild/tmp/rpm-tmp.58942 (% build)

Вот мой файл спецификации:

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

Есть идеи, что я делаю неправильно?


person Coder1    schedule 28.12.2012    source источник


Ответы (1)


Похоже, что стандартного сценария GNU "./configure" по умолчанию нет, поэтому вы не можете использовать макрос %setup по умолчанию в файле спецификации и вам понадобится настраиваемый раздел %prep ... (один источник) (зеркало)

person Aaron D. Marasco    schedule 28.12.2012
comment
Я не мог понять, как переопределить макрос, чтобы он не выполнял ./configure, но я поместил пустой файл конфигурации в корень источника, и это позволило мне завершить сборку. Спасибо, что направили меня на правильный путь. - person Coder1; 28.12.2012
comment
Извини - надо было присмотреться! Хорошо известной особенностью PITA RPM является то, что вы не можете закомментировать макрос, как это было сделано выше. Вы должны указать #%%configure, иначе он закомментирует только первую строку макроса! (Первый % ускользает от второго.) - person Aaron D. Marasco; 28.12.2012
comment
Подтверждено, что теперь я могу создать rpm без файла конфигурации с дополнительным % в комментарии или полностью удалив эту строку. Я думал, что мой комментарий сработал. Спасибо! - person Coder1; 28.12.2012
comment
Одна ссылка на источник не работает, вики-страницы Fedora содержат полезное содержимое, но, возможно, не применимо к вашей упаковке или целевая среда - person efx; 14.06.2017
comment
@efx Спасибо Я тоже добавил зеркальную ссылку. - person Aaron D. Marasco; 15.06.2017