LinuxForum.Fans
Тема

RPM из CPIO архива

Автор: surgutor 33 сообщений 4024 просмотров
#334519

День добрый, формучане

У кого нибудь попадалась такая задачка - создать rpm архив, содержащий cpio архив?
Если да, т оне подскажете, каким образом?

В ман, в гугль просьба не слать - оттуда пришел

#334522

Я пока знаю только один вариант - rpmbuild. Проблема в том, что у файла rpm свой собственный [url=rpm.org]формат[/url], но в разных дистрибутивах формат файла может изменяться путем наложения патчей. На практике я видел, что длины полей не всегда совпадают с описанием формата (хотя могу и ошибаться), и так просто распаковать и запаковать не получится. Где-то я находил простой скриптик, который извлекает содержимое пакета, опираясь на вычисление длины полей, но не уверен, что он сможет распаковать любой rpm.

#334659

Пишешь спек, в котором исходником является твой архив. И собираешь по этому спеку пакет. Соответственно файлы из архива распакуются при сборке в нужные места и запакуются в rpm.

#334839

Про spec файл я уже понял, только вот как его написать. Я пробовал создать такой вот:

text

Name: mms_relay_sdpcba_rpm
Version: 3.0.L19.R6D07.CUSTOM
Release: 1
Summary: Relay RPM/SDP
Group: mio
License: 
Source0: mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.cpio
BuildRoot: %{_tmppath}/%{name}-root

%description

%prep %setup -q

%build make

%install

%files %defattr(-,root,root)

%clean make clean rm -rf $RPM_BUILD_ROOT

%changelog * Tue Aug 27 2013 Bullshit Bullshitov - Initial build

Положил *cpio файл в директорию /usr/src/packages/SOURCES/ . Однако при попытке собрать его возникает такая ошибка:

text

rpmbuild -bp mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.97675
+ umask 022
+ cd /usr/src/packages/BUILD
+ cd /usr/src/packages/BUILD
+ rm -rf mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM
+ tar -xf /usr/src/packages/SOURCES/mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.cpio
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors
error: Bad exit status from /var/tmp/rpm-tmp.97675 (%prep)

Если же запихнуть мои директории в tar.gz файл, положить его в вышеупомянутую директорию и создать spec файл просто поменяв
Source0: mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.cpio
на
Source0: mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.tar.gz

то ошибка следующая

text

SC-2-1:/tmp/unzip/spec # rpmbuild -bp mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.spec Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.50125 + umask 022 + cd /usr/src/packages/BUILD + cd /usr/src/packages/BUILD + rm -rf mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM + /usr/bin/gzip -dc /usr/src/packages/SOURCES/mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.tar.gz + tar -xf - + STATUS=0 + '[' 0 -ne 0 ']' + cd mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM /var/tmp/rpm-tmp.50125: line 29: [b]cd: mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM: No such file or directory[/b] error: Bad exit status from /var/tmp/rpm-tmp.50125 (%prep)

Я посмотрел этот файл /var/tmp/rpm-tmp.50125:

text

#!/bin/sh

RPM_SOURCE_DIR="/usr/src/packages/SOURCES" RPM_BUILD_DIR="/usr/src/packages/BUILD" RPM_OPT_FLAGS="-O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables" RPM_ARCH="x86_64" RPM_OS="linux" export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS RPM_DOC_DIR="/usr/share/doc/packages" export RPM_DOC_DIR RPM_PACKAGE_NAME="mms_relay_sdpcba_rpm" RPM_PACKAGE_VERSION="3.0.L19.R6D07.CUSTOM" RPM_PACKAGE_RELEASE="1" export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE RPM_BUILD_ROOT="/var/tmp/mms_relay_sdpcba_rpm-root" export RPM_BUILD_ROOT

set -x umask 022 cd "/usr/src/packages/BUILD" cd '/usr/src/packages/BUILD' rm -rf 'mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM' /usr/bin/gzip -dc '/usr/src/packages/SOURCES/mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.tar.gz' | tar -xf - STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM' [ `/usr/bin/id -u` = '0' ] && /bin/chown -Rhf root . [ `/usr/bin/id -u` = '0' ] && /bin/chgrp -Rhf root . /bin/chmod -Rf a+rX,u+w,g-w,o-w . exit 0

29ая строка это
cd 'mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM'

Но я не понимаю, зачем он переходит в директорию которую недавно же и удалил???
И где я ошибаюсь?

#334846

Вместо %setup -q сделай %setup -q -c, при этом распаковываться твой cpio не будет.
Далее командой cpio распакуй свой архив, читай man cpio как это сделать.
После этого в секции %build убери команду make. Затем в секции %install скопируй твои распакованные файлы куда надо в %buildroot.
И перечисли эти файлы в секции %files.

#334892
Vascom написал:
Вместо %setup -q сделай %setup -q -c, при этом распаковываться твой cpio не будет.
Далее командой cpio распакуй свой архив, читай man cpio как это сделать.
После этого в секции %build убери команду make. Затем в секции %install скопируй твои распакованные файлы куда надо в %buildroot.
И перечисли эти файлы в секции %files.

Vascom, прогресс небольшой есть, но все же где то что то не так

text

Name: mms_relay_sdpcba_rpm
Version: 3.0.L19.R6D07.CUSTOM
Release: 1
Summary: Relay RPM/SDP
Group: mio
License: Ericsson
Source0: mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.tar.gz
BuildRoot: %{_tmppath}/%{name}-root

%description

%prep %setup -q -c

%build

%install ./etc/start.d/ordered/S50mms_relay ./opt/hello.txt ./opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war

%files ./etc/start.d/ordered/S50mms_relay ./opt/hello.txt ./opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war

%defattr(-,root,root)

%clean

%changelog * Tue Aug 27 2013 Bullshit Bullshitov - Initial build

В директории /var/tmp/mms_relay_sdpcba_rpm-root лежат папки etc/ и opt/ а в них файлы:

text

SC-2-1:/var/tmp/mms_relay_sdpcba_rpm-root # find . ./spec ./spec/mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.spec ./opt ./opt/tomcat ./opt/tomcat/webapps_from_rpm ./opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war ./opt/hello.txt ./etc ./etc/start.d ./etc/start.d/ordered ./etc/start.d/ordered/S50mms_relay

Однако когда я переходу в директорию spec/ и запускаю rpmbuild то:

text

SC-2-1:/var/tmp/mms_relay_sdpcba_rpm-root/spec # rpmbuild -ba mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.21282
+ umask 022
+ cd /usr/src/packages/BUILD
+ cd /usr/src/packages/BUILD
+ rm -rf mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM
+ /bin/mkdir -p mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM
+ cd mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM
+ /usr/bin/gzip -dc /usr/src/packages/SOURCES/mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.tar.gz
+ tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chown -Rhf root .
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chgrp -Rhf root .
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.21282
+ umask 022
+ cd /usr/src/packages/BUILD
+ /bin/rm -rf /var/tmp/mms_relay_sdpcba_rpm-root
++ dirname /var/tmp/mms_relay_sdpcba_rpm-root
+ /bin/mkdir -p /var/tmp
+ /bin/mkdir /var/tmp/mms_relay_sdpcba_rpm-root
+ cd mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.21282
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
+ umask 022
+ cd /usr/src/packages/BUILD
chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
+ cd mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM
+ /usr/lib/rpm/brp-lib64-linux
sf@suse.de: if you find problems with this script, drop me a note
+ RPM_BUILD_ROOT=/var/tmp/mms_relay_sdpcba_rpm-root
+ export RPM_BUILD_ROOT
+ test -x /usr/sbin/Check -a 0 = 0 -o -x /usr/sbin/Check -a '!' -z /var/tmp/mms_relay_sdpcba_rpm-root
+ echo 'I call /usr/sbin/Check...'
I call /usr/sbin/Check...
+ /usr/sbin/Check
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/brp-symlink
error: Bad file: /var/tmp/mms_relay_sdpcba_rpm-root/spec/mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.spec: No such file or directory

RPM build errors: Bad file: /var/tmp/mms_relay_sdpcba_rpm-root/spec/mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.spec: No such file or directory

При этом он удаляет все директории

#334895

Почему ты указываешь архив как tar.gz? Оставь как было.
Неправильная секция %install. Должно быть примерно так:

text
mkdir -p %{buildroot}/etc/start.d/ordered/
cp etc/start.d/ordered/S50mms_relay %{buildroot}/etc/start.d/ordered/S50mms_relay
mkdir %{buildroot}/opt
cp opt/hello.txt %{buildroot}/opt/hello.txt 
mkdir -p %{buildroot}/opt/tomcat/webapps_from_rpm/
cp opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war %{buildroot}/opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war

И в секции files тоже должно быть по другому:

text
%{_sysconfdir}/start.d/ordered/S50mms_relay
/opt/hello.txt 
/opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war

И удали это:

text
%defattr(-,root,root)

%clean

Ещё я немного не прав был. Чтобы не распаковывал автоматом там другая опция в %setup должна быть, поищи её сам.

#334896
Vascom написал:
Почему ты указываешь архив как tar.gz? Оставь как было.
Неправильная секция %install. Должно быть примерно так:
text
mkdir -p %{buildroot}/etc/start.d/ordered/
cp etc/start.d/ordered/S50mms_relay %{buildroot}/etc/start.d/ordered/S50mms_relay
mkdir %{buildroot}/opt
cp opt/hello.txt %{buildroot}/opt/hello.txt 
mkdir -p %{buildroot}/opt/tomcat/webapps_from_rpm/
cp opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war %{buildroot}/opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war

И в секции files тоже должно быть по другому:

text
%{_sysconfdir}/start.d/ordered/S50mms_relay
/opt/hello.txt 
/opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war

если я оставляю *cpio он ругается что типо неверный фаормат tar.gz

#334897

Ещё я немного не прав был. Чтобы не распаковывал автоматом там другая опция в %setup должна быть. Это опция -T.

#334915
Vascom написал:
Ещё я немного не прав был. Чтобы не распаковывал автоматом там другая опция в %setup должна быть. Это опция -T.

Сделал как ты и сказал, только пути пропсиал абсолютные

text

Name: mms_relay_sdpcba_rpm
Version: 3.0.L19.R6D07.CUSTOM
Release: 1
Summary: Relay RPM/SDP
Group: mio
License: Ericsson
Source0: mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.tar.gz
BuildRoot: %{_tmppath}/%{name}-root

%description

%prep %setup -q -T

%build

%install mkdir -p %{buildroot}/pkgCreate/etc/start.d/ordered/ cp etc/start.d/ordered/S50mms_relay %{buildroot}/pkgCreate/etc/start.d/ordered/S50mms_relay mkdir -p %{buildroot}/pkgCreate/opt/tomcat/webapps_from_rpm/ cp opt/hello.txt %{buildroot}/pkgCreate/opt/hello.txt cp opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war %{buildroot}/pkgCreate/opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war

%files

%{_sysconfdir}/start.d/ordered/S50mms_relay /opt/hello.txt /opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war

%changelog * Tue Aug 27 2013 Bullshit Bullshitov

Если использовать ключи -q -T то выхлоп такой

text

Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.97583
+ umask 022
+ cd /usr/src/packages/BUILD
+ cd /usr/src/packages/BUILD
+ rm -rf mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM
+ cd mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM
/var/tmp/rpm-tmp.97583: line 24: cd: mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.97583 (%prep)

RPM build errors: Bad exit status from /var/tmp/rpm-tmp.97583 (%prep)

если же -q -c то выхлоп такой:

text

SC-2-1:/var/tmp/mms_relay_sdpcba_rpm-root/spec # rpmbuild -ba mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.21282
+ umask 022
+ cd /usr/src/packages/BUILD
+ cd /usr/src/packages/BUILD
+ rm -rf mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM
+ /bin/mkdir -p mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM
+ cd mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM
+ /usr/bin/gzip -dc /usr/src/packages/SOURCES/mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.tar.gz
+ tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chown -Rhf root .
++ /usr/bin/id -u
+ '[' 0 = 0 ']'
+ /bin/chgrp -Rhf root .
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.21282
+ umask 022
+ cd /usr/src/packages/BUILD
+ /bin/rm -rf /var/tmp/mms_relay_sdpcba_rpm-root
++ dirname /var/tmp/mms_relay_sdpcba_rpm-root
+ /bin/mkdir -p /var/tmp
+ /bin/mkdir /var/tmp/mms_relay_sdpcba_rpm-root
+ cd mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.21282
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
+ umask 022
+ cd /usr/src/packages/BUILD
chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
+ cd mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM
+ /usr/lib/rpm/brp-lib64-linux
sf@suse.de: if you find problems with this script, drop me a note
+ RPM_BUILD_ROOT=/var/tmp/mms_relay_sdpcba_rpm-root
+ export RPM_BUILD_ROOT
+ test -x /usr/sbin/Check -a 0 = 0 -o -x /usr/sbin/Check -a '!' -z /var/tmp/mms_relay_sdpcba_rpm-root
+ echo 'I call /usr/sbin/Check...'
I call /usr/sbin/Check...
+ /usr/sbin/Check
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/brp-symlink
error: Bad file: /var/tmp/mms_relay_sdpcba_rpm-root/spec/mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.spec: No such file or directory

RPM build errors: Bad file: /var/tmp/mms_relay_sdpcba_rpm-root/spec/mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.spec: No such file or directory

Он просто тупо удаляет спековский файл а потом же к нему обращается. ЧТо за бред?

#334916

Так, давай по порядку.
mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.tar.gz - это правда tar.gz архив?

Дай этот файл, так быстрее будет.

#334918
Vascom написал:
Так, давай по порядку.
mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.tar.gz - это правда tar.gz архив?

Дай этот файл, так быстрее будет.

Vascom, да, это тар

SC-2-1:/usr/src/packages/SOURCES # file mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.tar.gz
mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.tar.gz: gzip compressed data, was "mms_relay_sdpcba_rpm-3.0.L19.R6", from Unix, last modified: Tue Aug 27 13:24:57 2013, max compression

К сожалению, дать не могу, меня анально покарают за слив такого рода инфы

Был исходный rpm, содержащий cpio, я их распоковал, внес изменения (добавил простой файл), затарил содержащиеся директории и получил этот таргз

#334922

Хорошо. Запакованы у тебя просто файлы кучей или все файлы лежат в одной папке и она запакована в этот тар?

#334923
Vascom написал:
Хорошо. Запакованы у тебя просто файлы кучей или все файлы лежат в одной папке и она запакована в этот тар?

В директории
/var/tmp/mms_relay_sdpcba_rpm-root/pkgSrc
две папки
etc и opt

структура такая

.
./opt
./opt/tomcat
./opt/tomcat/webapps_from_rpm
./opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war
./opt/hello.txt
./etc
./etc/start.d
./etc/start.d/ordered
./etc/start.d/ordered/S50mms_relay

соотвественно в таре также 2 директории

#334953

Хорошо, тогда оставляй опцию -c без -T.
Теперь установи пакеты yum install yum-utils rpmdevtools если они ещё не установлены и выполни от пользователя rpmdev-setuptree.
Все дальнейшие действия делаем от пользователя.

Предыдущая команда создаст в домашнем каталоге пользователя директорию rpmbuild с поддиректориями. Положи архив в rpmbuild/SOURCES.
Из спека удали BuildRoot: %{_tmppath}/%{name}-root
Далее выполни rpmbuild mms_relay_sdpcba_rpm.spec. Выхлоп сюда.

#335048
Vascom написал:
Хорошо, тогда оставляй опцию -c без -T.
Теперь установи пакеты yum install yum-utils rpmdevtools если они ещё не установлены и выполни от пользователя rpmdev-setuptree.
Все дальнейшие действия делаем от пользователя.

Предыдущая команда создаст в домашнем каталоге пользователя директорию rpmbuild с поддиректориями. Положи архив в rpmbuild/SOURCES.
Из спека удали BuildRoot: %{_tmppath}/%{name}-root
Далее выполни rpmbuild mms_relay_sdpcba_rpm.spec. Выхлоп сюда.

Не поверишь, и тут засада полная, тк система предустановленная, без доступа во внешнюю сеть. yuma и yast-а нет, пакеты эти не установлены yum-utils rpmdevtools

Я могу по идее воссоздать такую же структуру директорий что и есть в орегинале у рута, и попробовать выполнить от какого либо пользователя

#335050

Хорошо, сделай так.

#335059

Вообщем, ситуация такая, создал такой spec файл

text

Name: mms_relay_sdpcba_rpm
Version: 3.0.L19.R6D07.CUSTOM
Release: 1
Summary: Relay RPM/SDP
Group: mio
License: Ericsson
Source0: /home/pkgdev/rpmbuild/SOURCES/mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.tar.gz
BuildRoot: /home/pkgdev/pkgtmp/pkgSrc/

%description

%prep %setup -q -c

%build mkdir -p /home/pkgdev/pkgtmp/pkgNew/etc/start.d/ordered/ mkdir -p /home/pkgdev/pkgtmp/pkgNew/opt/tomcat/webapps_from_rpm/ cp /home/pkgdev/pkgtmp/pkgSrc/etc/start.d/ordered/S50mms_relay /home/pkgdev/pkgtmp/pkgNew/etc/start.d/ordered/S50mms_relay cp /home/pkgdev/pkgtmp/pkgSrc/opt/hello.txt /home/pkgdev/pkgtmp/pkgNew/opt/hello.txt cp /home/pkgdev/pkgtmp/pkgSrc/opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war /home/pkgdev/pkgtmp/pkgNew/opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war

%install /home/pkgdev/pkgtmp/pkgSrc/etc/start.d/ordered/ /home/pkgdev/pkgtmp/pkgSrc/opt/hello.txt /home/pkgdev/pkgtmp/pkgSrc/opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war %files

%changelog * Tue Aug 27 2013 Bullshit Bullshitov - Initial build

при запуске sudo rpmbuild -ba mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.spec

text

pkgdev@SC-2-1:~/rpmbuild> sudo rpmbuild -ba mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.spec pkgdev's password: Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.87614 + umask 022 + cd /usr/src/packages/BUILD + cd /usr/src/packages/BUILD + rm -rf mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM + /bin/mkdir -p mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM + cd mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM + /usr/bin/gzip -dc /usr/src/packages/SOURCES/mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.tar.gz + tar -xf - + STATUS=0 + '[' 0 -ne 0 ']' ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chown -Rhf root . ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chgrp -Rhf root . + /bin/chmod -Rf a+rX,u+w,g-w,o-w . + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.95066 + umask 022 + cd /usr/src/packages/BUILD + /bin/rm -rf /home/pkgdev/pkgtmp/pkgSrc ++ dirname /home/pkgdev/pkgtmp/pkgSrc + /bin/mkdir -p /home/pkgdev/pkgtmp + /bin/mkdir /home/pkgdev/pkgtmp/pkgSrc + cd mms_relay_sdpcba_rpm-3.0.L19.R6D07.CUSTOM + mkdir -p /home/pkgdev/pkgtmp/pkgNew/etc/start.d/ordered/ + mkdir -p /home/pkgdev/pkgtmp/pkgNew/opt/tomcat/webapps_from_rpm/ + cp /home/pkgdev/pkgtmp/pkgSrc/etc/start.d/ordered/S50mms_relay /home/pkgdev/pkgtmp/pkgNew/etc/start.d/ordered/S50mms_relay cp: cannot stat `/home/pkgdev/pkgtmp/pkgSrc/etc/start.d/ordered/S50mms_relay': No such file or directory error: Bad exit status from /var/tmp/rpm-tmp.95066 (%build)

RPM build errors: Bad exit status from /var/tmp/rpm-tmp.95066 (%build)

Общая идея такая, у меня есть две директории etc и opt
В них файлы. rpm должен содержать cpio, который в свою очередь содержит эти директории. При установке этого пакета на конечном хосте эти файлы должны копироваться и заменять собой орегинальные файлы
файлов и правда нет, не смотря на то что я ему /home/pkgdev/pkgtmp/pkgSrc/ указал... Или он не туда распаковывает архив? И соответственно не оттуда я копирую

#335095

НАконец то удалось собрать пакет с такой конфигурацией spec-а

text

Name: mms_relay_sdpcba_rpm
Version: 3.0.L19.R6D07.noarch.new
Release: 2
Summary: Relay RPM/SDP
Group: mio
License: Ericsson
Source: /usr/src/packages/SOURCES/mms_relay_sdpcba_rpm-3.0.L19.R6D07-1.noarch.new.tar.gz

%description

%prep

%setup -c

%build

%install

%files /usr/src/packages/BUILD/etc/start.d/ordered/S50mms_relay /usr/src/packages/BUILD/opt/hello.txt /usr/src/packages/BUILD/opt/tomcat/webapps_from_rpm/relay-war-3.0.L19.R6D07.war

%changelog * Tue Aug 27 2013 Bullshit Bullshitov - Initial build

Но вот вопрос,у меня получается rpm, в котором cpio, в котором директории
./home/pkgdev/pkgtmp/pkgSrc/etc
./home/pkgdev/pkgtmp/pkgSrc/opt

Но как избавиться ./home/pkgdev/pkgtmp/pkgSrc/ ???

МНе необходимо, чтобы в rpm, был cpio, а уже в нем
./etc
./opt

#335102

То есть ты хочешь просто файл архива в rpm поместить, не распаковывая этот cpio архив?
И спек у тебя совершенно неправильный. Секция %install должна быть не пустой, а такой как я писал, и секция %files тоже.

Войдите или зарегистрируйтесь, чтобы ответить.