rpmbuild:找到已安装(但未打包)的文件 - 尝试了多个选项

时间:2013-12-04 18:01:11

标签: packaging rpm rpmbuild

这变得非常令人抓狂 - 我正在尝试使用一些作为Nagios插件的BASH脚本构建RPM。我一直在说:

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

在我的spec文件的%files指令中,我尝试过在这里和其他各种互联网论坛上建议的大多数组合:

  • / usr / lib中/的nagios /插件/ *
  • / usr / lib中/的nagios /插件/ netappassigncheck
  • / usr / lib中/的nagios /插件/ 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

编辑 - 已解决

我不确定这是一个错误还是想要的行为,但似乎在构建选项期间没有从.rpmmacros读入%{buildroot}变量已将此变量移入主spec文件中RPM现已建成。

1 个答案:

答案 0 :(得分:0)

我不确定这是否是一个错误或所需的行为,但似乎在文件验证部分,它正在读取根文件系统下的所有当前活动插件而不是%{buildroot}。

我怀疑在这个阶段没有从.rpmmacros读取%{buildroot}变量,尽管它适用于所有其他阶段。

我将%{buildroot}的声明移动到我的主.spec文件中,并且构建现在正在运行!