【问题标题】:rpmbuild failing error: Installed (but unpackaged) file(s) found:rpmbuild 失败错误:找到已安装(但未打包)的文件:
【发布时间】:2013-05-10 15:39:36
【问题描述】:

我环顾四周,但在我的简单包中没有一个相同错误消息的答案...我在 Redhat ES 6 上使用 rpmbuild 构建 rpm,无论我在我的规范文件中做了什么,我都得到相同的结果结果。预先感谢您的帮助。

这是我的规范文件:

Name:  package
Version: 3.2.5
Release: redhat
Summary: Company package gateway pos server

Group:  Engineering
License: Company LLC - owned
URL:    http://www.company.com
Source: %{name}.tar.gz

%description
The Company package gateway server provides a key component in the Company system      architecture which passes information between the clients and the API.

%prep
%setup -n %{name}

%build

%define debug_package %{nil}

%install
mkdir -p $RPM_BUILD_ROOT/srv/package/gateways/config
mkdir -p $RPM_BUILD_ROOT/srv/package/gateways/logs

install -m 700 gateway $RPM_BUILD_ROOT/srv/package/
install -m 700 gatewayclient.conf $RPM_BUILD_ROOT/srv/package/
install -m 700 gateway.conf $RPM_BUILD_ROOT/srv/package/
install -m 700 rules.conf $RPM_BUILD_ROOT/srv/package/
install -m 700 gatewaytest.conf $RPM_BUILD_ROOT/srv/package/
install -m 700 gateways/bci.exe $RPM_BUILD_ROOT/srv/package/gateways/
install -m 700 gateways/config/bci_iso8583.conf $RPM_BUILD_ROOT/srv/package/gateways/config/

%post

%clean
rm -rf %{buildroot}
rm -rf $RPM_BUILD_ROOT
rm -rf %{_tmppath/%{name}
rm -rf %{_topdir}/BUILD%{name}

%files -f %{name}.lang
%defattr(-,root,root,-)

/srv/
/srv/package/
/srv/package/gateways/
/srv/package/gateways/logs/
/srv/package/gateways/config/
/srv/package/gateway
/srv/package/gatewayclient.conf
/srv/package/gateway.conf
/srv/package/gatewaytest.conf
/srv/package/rules.conf
/srv/package/gateways/bci.exe
/srv/package/gateways/config/bci_iso8583.conf

%changelog
* Thurs May 09 2013 Owner
- 1.0 r1 First release

错误信息在这里:

Checking for unpackaged file(s): /usr/lib/rpm/check-files     /home/rpmbuild/rpmbuild/BUILDROOT/package-3.2.5-redhat.x86_64
error: Installed (but unpackaged) file(s) found:
   /srv/package/gateways/bci.exe
   /srv/package/gateways/config/bci_iso8583.conf
   /srv/package/gateway
   /srv/package/gateway.conf
   /srv/package/gatewayclient.conf
   /srv/package/gatewaytest.conf
   /srv/package/rules.conf


RPM build errors:
   Installed (but unpackaged) file(s) found:
   /srv/package/gateways/bci.exe
   /srv/package/gateways/config/bci_iso8583.conf
   /srv/package/gateway
   /srv/package/gateway.conf
   /srv/package/gatewayclient.conf
   /srv/package/gatewaytest.conf
   /srv/package/rules.conf

Edition - Reran 并提出以下建议并得到以下结果:

Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/rpmbuild/rpmbuild/BUILDROOT/package-3.2.5-redhat.x86_64
error: Installed (but unpackaged) file(s) found:
   /srv/package/gateways/bci.exe
   /srv/package/gateways/config/bci_iso8583.conf
   /srv/package/gateway
   /srv/package/gateway.conf
   /srv/package/gatewayclient.conf
   /srv/package/gatewaytest.conf
   /srv/package/rules.conf


RPM build errors:
    Installed (but unpackaged) file(s) found:
   /srv/package/gateways/bci.exe
   /srv/package/gateways/config/bci_iso8583.conf
   /srv/package/gateway
   /srv/package/gateway.conf
   /srv/package/gatewayclient.conf
   /srv/package/gatewaytest.conf
   /srv/package/rules.conf

【问题讨论】:

  • 文件 %{name}.lang 中有什么?这是您的文件列表。
  • 如果您想列出您的文件(这是 IMO 的良好做法),请不要将目录添加到 %files 部分 - 除非您使用 %dir
  • 我正在用 %{name}.lang 东西向星星射击橡皮筋 - 没有解释为什么应该使用它,所以我只是使用它。如果我删除它,它不会改变任何东西。
  • 顺便说一句,打算包含在发行版中的软件包不应该触及/srv 中的任何内容。此规范文件中的许可证暗示它不会,但实现它仍然很重要。
  • 你能在更改后发布你的规范吗?

标签: linux package redhat rpm rpmbuild


【解决方案1】:

我最新的 SPEC 文件:

Name:  package
Version: 3.2.5
Release: redhat
Summary: company package gateway pos server

Group:  Engineering
License: company LLC - owned
URL:    http://www.company.com
Source: %{name}.tar.gz

%description
The company package gateway server provides a key component in the company system architecture which passes information between the clients and the API.

%prep
%setup -n %{name}

%build

%define debug_package %{nil}

%install
mkdir -p $RPM_BUILD_ROOT/srv/package/gateways/config
mkdir -p $RPM_BUILD_ROOT/srv/package/gateways/logs

install -m 700 package $RPM_BUILD_ROOT/srv/package/
install -m 700 packageclient.conf $RPM_BUILD_ROOT/srv/package/
install -m 700 package.conf $RPM_BUILD_ROOT/srv/package/
install -m 700 rules.conf $RPM_BUILD_ROOT/srv/package/
install -m 700 packagetest.conf $RPM_BUILD_ROOT/srv/package/
install -m 700 gateways/bci.exe $RPM_BUILD_ROOT/srv/package/gateways/
install -m 700 gateways/config/bci_iso8583.conf $RPM_BUILD_ROOT/srv/package/gateways/config/

%post

%clean
rm -rf %{buildroot}
rm -rf $RPM_BUILD_ROOT
rm -rf %{_tmppath/%{name}
rm -rf %{_topdir}/BUILD%{name}

%files
%defattr(-,root,root,-)

%dir /srv/package/
%dir /srv/package/gateways/
%dir /srv/package/gateways/logs/
%dir /srv/package/gateways/config/
bci.exe
bci_iso8583.conf
package
package.conf
packageclient.conf
packagetest.conf
rules.conf

%changelog
* Thurs May 09 2013 Todd McGuinness
- 1.0 r1 First release

【讨论】:

    【解决方案2】:

    您正在传递的-f %{name}.lang参数%files,但你似乎不叫%find_lang或船舶在/ usr / share / locale所的任何文件。如果你不叫%find_lang,RPM不翻译的文件列表中创建一个%{name}.lang文件。该-f参数%files只是让RPM该文件的内容,在生成时添加到%files;如果该文件不存在,这是完全不必要的。不幸的是,它似乎也打破RPM如果该文件不存在。 P>

    所以,单纯从%files删除-f说法,它应该工作。 P>

    【讨论】:

      【解决方案3】:

      尝试更改您的 %files 部分:

      %defattr(-,root,root,-)
      # Don't own /srv/, but own directories:
      %dir /srv/package/
      %dir /srv/package/gateways/
      %dir /srv/package/gateways/logs/
      %dir /srv/package/gateways/config/
      # Everything in those directories:
      # (lazy way instead of specifying each file)
      /srv/package
      

      如上所述,您不想自己拥有“/srv/”。如果这不起作用,我无法解释为什么有些与您列出的相同,但是您的脚本需要从目标根目录中包含或删除“gatewaygw*”。

      【讨论】:

      • 按照您的建议做了,尽管目录已从列表中删除,但文件仍然错误?我想要包中的那些文件?
      • 像这样:/srv/package/gateways/bci.exe /srv/package/gateways/config/bci_iso8583.conf /srv/package/gatewaygw /srv/package/gatewaygw.conf /srv/package/gatewaygwclient.conf /srv/package/gatewaygwtest.conf /srv/package/rules.conf RPM 构建错误:找到已安装(但未打包)的文件:/srv/package/gateways/bci.exe /srv/package/gateways/config/bci_iso8583。 conf /srv/package/gatewaygw /srv/package/gatewaygw.conf /srv/package/gatewaygwclient.conf /srv/package/gatewaygwtest.conf /srv/package/rules.conf
      • 啊 - 我在错误列表中的 %s//g 中犯了一个错误 --- 当它不应该存在时,我留下了多余的字符 gw。 SPEC 文件是正确的。
      猜你喜欢
      • 2011-11-03
      • 2017-06-20
      • 2023-03-15
      • 2013-12-21
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2020-07-28
      • 1970-01-01
      相关资源
      最近更新 更多