Плохой статус выхода из /var/tmp / rpm-tmp.ajKra4 (%prep)

у меня странная проблема с RPM, я новичок в этом, поэтому терпите меня... У меня есть файл спецификации, созданный, и когда я запускаю сборку, я получаю сообщение об ошибке:

/var/tmp / rpm-tmp.ajKra4: строка 36: cd: hero-01: нет такого файла или каталога ошибка: плохое состояние выхода из /var/tmp / rpm-tmp.ajKra4 (%prep)

затем я проверяю, что временный файл и он пытается компакт-диск в каталог, который не существует.. Следует ли создавать это в файле spec? если да, то где?

вот мой файл спецификации:

    Summary: Install Hero
    Name: hero
    Version: 01 
    Release: 1
    Group: Billing reporting
    Source: %{name}-%{version}.tar.gz
    License: SLA

    %description
    Hero billing reports system

    %prep
    rm -rf %{_topdir}/BUILD/*

    %setup

    %install
    mkdir -p /opt/%{name}
    cp -r * /opt/%{name}

    %post
    find /opt/%{name} -type d -exec chmod 755 {} ;
    find /opt/%{name} -type f -exec chmod 644 {} ;
    chmod -R 755 /opt/%{name}/bin



    %files 
    /opt/%{name}
    %defattr(-,root,root,0755)

    %clean
    rm -rf $RPM_BUILD_ROOT

    %postun
    rm -rf /opt/%{name}

возможно, я что-то упускаю? Не будет первым lol, спасибо

вот также, что выводит этот файл tmp:

    #!/bin/sh

      RPM_SOURCE_DIR="/root/rpmbuild/SOURCES"
      RPM_BUILD_DIR="/root/rpmbuild/BUILD"
      RPM_OPT_FLAGS="-O2 -g"
      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"
      export RPM_DOC_DIR
      RPM_PACKAGE_NAME="hero"
      RPM_PACKAGE_VERSION="01"
      RPM_PACKAGE_RELEASE="1"
      export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE
      LANG=C
      export LANG
      unset CDPATH DISPLAY ||:
      RPM_BUILD_ROOT="/root/rpmbuild/BUILDROOT/hero-01-1.x86_64"
      export RPM_BUILD_ROOT

      PKG_CONFIG_PATH="/usr/lib64/pkgconfig:/usr/share/pkgconfig"
      export PKG_CONFIG_PATH

      set -x
      umask 022
      cd "/root/rpmbuild/BUILD"
    rm -rf /root/rpmbuild/BUILD/*

    cd '/root/rpmbuild/BUILD'
    rm -rf 'hero-01'
    /usr/bin/gzip -dc '/root/rpmbuild/SOURCES/hero-01.tar.gz' | /bin/tar -xvvf -
    STATUS=$?
    if [ $STATUS -ne 0 ]; then
      exit $STATUS
    fi
    cd 'hero-01'
    /bin/chmod -Rf a+rX,u+w,g-w,o-w .

    exit 0

2 ответов


проверить http://www.rpm.org/max-rpm/s1-rpm-inside-macros.html, в частности раздел" - N-Set Name of Build Directory".

к %настройки макроса ожидает, что после untaring тдо.gz, будет доступен каталог hero-01, но ваш герой-01.смола.gz, вероятно, создает какое-то другое имя каталога, возможно, без версии, включенной в имя.

Так, например, если есть каталог "hero" вместо каталога "hero-01" в / root/rpmbuild / BUILD после распаковки, затем обновите файл спецификации, чтобы использовать "%setup-N hero "вместо" %setup".


в папке rpmbuild перейдите в SOURCES и переименуйте исходную папку следующим образом:

mypackage-1.0

затем создайте tarball:

mypackage-1.0.tar.gz

и это должно сработать.

что происходит, так это то, что после распаковки архива rpmbuild ожидает папку с именем mypackage-1.0, а не mypackage или mypackage-что-то еще.

соблюдать соглашения об именах. Проверьте Рекомендации