rpmbuild: Намерени са инсталирани (но непакетирани) файл(ове) - изпробвани са множество опции

Това става доста влудяващо - опитвам се да създам RPM от някои BASH скриптове, които работят като добавки за Nagios. продължавам да получавам:

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

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

  • /usr/lib/nagios/plugins/*
  • /usr/lib/nagios/plugins/netappassigncheck
  • /usr/lib/nagios/plugins/netappassignprep
  • %dir /usr/lib/nagios/plugins/

И в момента съм на

%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} не се чете от .rpmmacros на този етап, въпреки че беше за всички останали етапи.

Преместих декларацията на %{buildroot} в моя основен .spec файл и компилацията вече работи!

person DJNrrd    schedule 07.12.2013
comment
опита ли $RPM_BUILD_ROOT вместо това? На каква операционна система се опитвате да изградите своя пакет? - person drahnr; 08.12.2013