2009-05-28 4 views
2

Я хочу свести к минимуму вывод моей процедуры сборки rpm.Выполнение команды rpmbuild с флагом опции --quiet приводит к обширной информации об отладке

я запускаю следующую команду: rpmbuild -ba --quiet "/tmp/yaneeve/kit/linux/rpm_spec"

Моя система: Linux yaneeve-lnx-82-5 2.4.21-47.ELsmp #1 SMP Wed Jul 5 20:38:41 EDT 2006 i686 i686 i386 GNU/Linux

версия rpmbuild является: RPM version 4.2.3

% приготовительный часть моего файла спецификации Обороты:

%prep 

. $LOGGER_FUNC_FILE_LOCATION/logger.sh 

SCRIPT_NAME='rpm_spec-prep' 
SOURCE_DIR=`readlink -f -n %{_sourcedir}` 
PACKAGE_DIR=`readlink -f -n %{_pkg_script_dir}` 
BUILD_PRODUCT_DIR=`readlink -f -n %{_build_product_dir}` 
RESOURCE_DIR=`readlink -f -n %{_resource_dir}` 

log $SCRIPT_NAME INFO "In the prep stage of the rpm spec file..." 

if [[ -d $SOURCE_DIR && `ls -a $SOURCE_DIR | wc -w` -gt 2 ]] ; then 
    log $SCRIPT_NAME INFO "Source directory exists and is not empty - deleting content." 
    rm -rf $SOURCE_DIR//* 
    if [ $? -ne 0 ]; then 
     log $SCRIPT_NAME ERROR "Unable to remove $SOURCE_DIR/* - exiting." 
     exit 1 
    fi 
fi 

if [ ! -f $PACKAGE_DIR/include_src_files.sh ]; then 
    log $SCRIPT_NAME ERROR "File list does not exist - aborting." 
    exit 1 
else 
    $PACKAGE_DIR/include_src_files.sh $BUILD_PRODUCT_DIR $RESOURCE_DIR $SOURCE_DIR 
    if [ $? -ne 0 ]; then 
     log $SCRIPT_NAME ERROR "Unable to run include_src_files.sh script - exiting." 
     exit 1 
    fi 
fi 

В результате rpmbuild создает следующий скрипт (УВЕДОМЛЕНИЕ Набор -x):

#!/bin/sh 

    RPM_SOURCE_DIR="/tmp/yaneeve/output/kit/SOURCES" 
    RPM_BUILD_DIR="/tmp/yaneeve/output/kit/BUILD" 
    RPM_OPT_FLAGS="-O2 -g -pipe -march=i386 -mcpu=i686" 
    RPM_ARCH="i386" 
    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="YANEEVE-APP" 
    RPM_PACKAGE_VERSION="4.2.2.0" 
    RPM_PACKAGE_RELEASE="01.0" 
    export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE 
    RPM_BUILD_ROOT="/tmp/yaneeve/output/kit/SOURCES" 
    export RPM_BUILD_ROOT 


    set -x 
    umask 022 
    cd /tmp/yaneeve/output/kit/BUILD 
LANG=C 
export LANG 
unset DISPLAY 


. $LOGGER_FUNC_FILE_LOCATION/logger.sh 

SCRIPT_NAME='rpm_spec-prep' 
SOURCE_DIR=`readlink -f -n /tmp/yaneeve/output/kit/SOURCES` 
PACKAGE_DIR=`readlink -f -n /tmp/yaneeve/output/kit/../../kit/linux` 
BUILD_PRODUCT_DIR=`readlink -f -n /tmp/yaneeve/output/kit/..` 
RESOURCE_DIR=`readlink -f -n /tmp/yaneeve/output/kit/../../conf` 

log $SCRIPT_NAME INFO "In the prep stage of the rpm spec file..." 

if [[ -d $SOURCE_DIR && `ls -a $SOURCE_DIR | wc -w` -gt 2 ]] ; then 
    log $SCRIPT_NAME INFO "Source directory exists and is not empty - deleting content." 
     rm -rf $SOURCE_DIR//* 
     if [ $? -ne 0 ]; then 
     log $SCRIPT_NAME ERROR "Unable to remove $SOURCE_DIR/* - exiting." 
     exit 1 
    fi 
fi 

if [ ! -f $PACKAGE_DIR/include_src_files.sh ]; then 
     log $SCRIPT_NAME ERROR "File list does not exist - aborting." 
     exit 1 
else 
    $PACKAGE_DIR/include_src_files.sh $BUILD_PRODUCT_DIR $RESOURCE_DIR $SOURCE_DIR 
     if [ $? -ne 0 ]; then 
     log $SCRIPT_NAME ERROR "Unable to run include_src_files.sh script - exiting." 
     exit 1 
    fi 
fi 

Почему установка -x вставлена? Я считаю, что это является причиной обширной отладочной информации, напечатанной? Что я делаю неправильно? Или, есть ли ошибка с моей программой rpmbuild?

(Извините, если мой вопрос немного слишком описательным ...)

+0

Пожалуйста, немного сократите тему. – JesperE

+0

Надеюсь, что тема теперь понятна ... – Yaneeve

ответ

2

% приготовительный макрос на вашем дистрибутиве расширяется, и содержит множество -x.
На моем дистрибутиве в/USR/Lib/об/макросах я нашел следующий:

экспорта CLASSPATH} \
% {многословной: набор -x}% {многословный: EXEC>/Dev/нуль} \
UMASK 022 \
кд \ "% {U2p:% {_ builddir}} \" \

Вам необходимо незаданы многословные переменный, чтобы получить 'набор -x' удален.

+0

Я вижу, что у меня те же определения, что и у вас. Я думаю, что когда я выбираю использовать флаг --quiet, он должен идти с:! Verbose: exec>/dev/null Что вы скажете? – Yaneeve

+1

Есть два спокойных флага: -q и --quiet. -q не будет перечислять выходные выдержки из смолы --quiet контролирует вывод сообщений, созданных rpmbuild. Флаг 'set -x' имплантируется на этапе подготовки, управляется переменной 'verbose' в среде макросов rpmbuild. – codeDr

 Смежные вопросы

  • Нет связанных вопросов^_^