rpmbuild: найдены установленные (но неупакованные) файлы - испробовано несколько вариантов

Это становится довольно безумным - я пытаюсь создать RPM из некоторых сценариев BASH, которые работают как плагины Nagios. Я продолжаю получать:

error: Installed (but unpackaged) file(s) found:
    /usr/lib64/nagios/plugins/netappassigncheck
    /usr/lib64/nagios/plugins/netappassignprep

В директиве %files моего spec-файла я испробовал большинство комбинаций, предложенных здесь и на различных других интернет-форумах:

  • /usr/lib/нагиос/плагины/*
  • /usr/lib/nagios/plugins/netappassigncheck
  • /usr/lib/nagios/plugins/netappassignprep
  • %dir /usr/lib/nagios/плагины/

И в настоящее время я на

%dir %{_libdir}/nagios/plugins/ 

Вот почему мой последний вывод об ошибке - lib64, предыдущие ошибки при цитировании полного пути были /usr/lib/...

Это единственные 2 файла, которые также должны составлять пакет.

Вот мой файл .spec

Name: netappautoassign
Summary: A set of Nagios Plugins for automatically assigning disks to a Netapp
Version: 1.0
Release: 1
License: %{license}
Group: Applications/System
Source: %{source}
URL: Reserved
Vendor: %{vendor}
Packager: %{packager}
BuildArch: noarch
Requires: bash, grep, util-linux, coreutils, expect, openssh-clients, bc, sed
Provides: netappassignprep, netappassigncheck
%description
Since Netapp's autoassign function may lead to disks being assigned to the
wrong head these NAGIOS plugins will ensure disks are added to the correct
head when replaced.

%prep
%setup -q

%build

%install
rm -rf %{buildroot}
install -d %{buildroot}%{_libdir}/nagios/plugins
cp netappassigncheck %{buildroot}%{_libdir}/nagios/plugins/
cp netappassignprep %{buildroot}%{_libdir}/nagios/plugins/

%files
%defattr(755,root,root,755)
%dir %{_libdir}/nagios/plugins/

%clean
rm -rf %{buildroot}

%post

А вот мой ~/.rpmmacros

%_topdir %(echo $HOME)/rpmbuild
%_tmppath %{_topdir}/tmp
%buildroot %{_tmppath}/%{name}-%{version}

%license RESERVED
%source %{name}-%{version}.tar.gz
%vendor REDACTED
%packager REDACTED

ИЗМЕНИТЬ – РЕШЕНО

Я не уверен, является ли это ошибкой или желаемым поведением, но оказалось, что во время сборки переменная %{buildroot} не читалась из .rpmmacros. Переместив эту переменную в основной файл спецификации, RPM теперь построен.


person DJNrrd    schedule 04.12.2013    source источник
comment
Как вы уже заметили, должна быть разница между тем, что вы скопировали в buildroot, и выражениями в разделе %files. Проверьте свои файлы в 'buildroot' (удалите часть %clean)   -  person tue    schedule 06.12.2013
comment
Я только что попытался удалить раздел %clean и строку rm -rf из %install. Все та же ошибка. [user@stor-wb-d1 plugins]$ pwd /home/user/rpmbuild/tmp/netappautoassign-1.0/usr/lib64/nagios/plugins [user@stor-wb-d1 plugins]$ ls -al total 16 drwxr-xr-x 2 user user 4096 Dec 7 13:02 . drwxr-xr-x 3 user user 4096 Dec 7 13:02 .. -rwxr-xr-x 1 user user 1902 Dec 7 13:03 netappassigncheck -rwxr-xr-x 1 user user 2170 Dec 7 13:03 netappassignprep   -  person DJNrrd    schedule 07.12.2013


Ответы (1)


Я не уверен, является ли это ошибкой или желаемым поведением, но оказалось, что во время раздела проверки файлов он читал все текущие активные плагины в корневой файловой системе, а не в %{buildroot}.

Я подозревал, что переменная %{buildroot} не читалась из .rpmacros на этом этапе, хотя это было на всех остальных этапах.

Я переместил объявление %{buildroot} в свой основной файл .spec, и теперь сборка работает!

person DJNrrd    schedule 07.12.2013
comment
вы пробовали $RPM_BUILD_ROOT вместо этого? На какой ОС вы пытаетесь собрать свой пакет? - person drahnr; 08.12.2013