установка: не может быть `% {sourcedir} / инвентарь ': нет такого файла или каталога: сборка RPM через OpenBuildService - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь создать пакет с https://build.opensuse.org,, это мой первый раз, когда я собираю RPM, так что я не очень хорошо знаком с местным языком, поэтому поиск в Google того, что мне нужно сделать, немного затруднилдля меня.

У меня есть небольшой проект, в котором у меня есть скрипт Python и скрипт оболочки, который инициализирует указанный скрипт Python из /usr/bin.

Моя файловая структура выглядит так:

.
├── inventory
├── Inventory.py
├── inventory.spec
└── inventory.tar.xz

0 directories, 4 files

inventory - это исполняемый скрипт, Inventory.py - это файл, который запускается inventory.Мой файл спецификаций находится в том же каталоге, что и эти два других, и потому что я думал, что это будет полезно.

Мой файл спецификаций выглядит следующим образом:

#
# Spec file for the Inventory Script to be run for the lab
#
Summary: A script that will keep the inventory for the lab up-to-date
Name: inventory
Version: 1.0
Release: 1
License: ---
Group: Unspecified
Source: inventory.tar.xz
Requires: dmidecode, util-linux, ethtool, usbutils, gptfdisk, numactl

%description
This is a simple script that returns certain system values from host machine
as to more easily maintain the inventory in the lab.


%install
mkdir -p %{buildroot}%{_bindir}
install -m 755 inventory %{buildroot}%{_bindir}/inventory
mkdir -p %{_datadir}/inventory
install -m 755 Inventory.py %{_datadir}/inventory/Inventory.py

%files
%{_bindir}/inventory
%{_datadir}/inventory/Inventory.py

После запуска этого на нескольких платформах вОбс, я получаю эту ошибку в каждом журнале:

[  111s] -----------------------------------------------------------------
[  111s] ----- building inventory.spec (user abuild)
[  111s] -----------------------------------------------------------------
[  111s] -----------------------------------------------------------------
[  112s] + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' --nosignature --define 'disturl obs://build.opensuse.org/home:christopolise/SLE_11_SP4/a8f22f7f4c3b917b370ac5079138d983-inventory' /usr/src/packages/SOURCES/inventory.spec
[  112s] Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.6528
[  112s] + umask 022
[  112s] + cd /usr/src/packages/BUILD
[  112s] + mkdir -p '%{buildroot}/usr/bin'
[  112s] + install -m 755 '%{sourcedir}/inventory' '%{buildroot}/usr/bin/inventory'
[  112s] install: cannot stat `%{sourcedir}/inventory': No such file or directory
[  112s] error: Bad exit status from /var/tmp/rpm-tmp.6528 (%install)
[  112s] 
[  112s] 
[  112s] RPM build errors:
[  112s]     Bad exit status from /var/tmp/rpm-tmp.6528 (%install)
[  112s] 
[  112s] cloud115 failed "build inventory.spec" at Thu Oct  4 23:02:44 UTC 2018.
[  112s] 
[  112s] ### VM INTERACTION START ###
[  117s] [   91.042376] reboot: Power down
[  117s] [   91.042376] reboot: Power down
[  128s] ### VM INTERACTION END ###
[  128s] 
[  128s] cloud115 failed "build inventory.spec" at Thu Oct  4 23:03:01 UTC 2018.
[  128s] 
[  128s] ### VM INTERACTION END ###
[  128s] 
[  128s] cloud115 failed "build inventory.spec" at Thu Oct  4 23:03:01 UTC 2018.
[  128s] 

Я понятия не имею, почему это не находит исходные файлы.У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 06 октября 2018

Вам необходимо распаковать архив tar, упомянутый в директиве Source:

Обычно это делается в разделе% prep, часто с% setup.

...