2009-05-28 6 views
2

Je souhaite minimiser la sortie de ma procédure de construction rpm.L'exécution de la commande rpmbuild avec l'option --quiet donne des informations détaillées sur le débogage

J'exécutez la commande suivante: rpmbuild -ba --quiet "/tmp/yaneeve/kit/linux/rpm_spec"

Mon système est: 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

La version rpmbuild est: RPM version 4.2.3

La section% prep de mon régime fichier de spécification est:

%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 

Le fichier rpmbuild crée le script suivant (AVIS THE set -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 

Pourquoi l'ensemble -x est-il inséré? Je crois que c'est la raison pour laquelle les informations de débogage étendues sont imprimées? Qu'est-ce que je fais de mal? Ou, y a-t-il un bug avec mon programme rpmbuild?

(Désolé si ma question est un peu trop descriptif ...)

+0

Veuillez raccourcir un peu le sujet. – JesperE

+0

J'espère que le sujet est plus clair maintenant ... – Yaneeve

Répondre

2

La macro% de préparation de votre distribution est dilatée, et contient le -x ensemble.
Sur mon distro dans/usr/lib/rpm/macros je trouve ce qui suit:

export CLASSPATH} \
% {verbeux: set -x}% {verbeux: exec>/dev/null} \
umask 022 \
cd \ "% {U2P:% {_ builddir}} \" \

Vous devez unset la variable verbeux pour obtenir le enlevé 'set -x'.

+0

Je vois que j'ai les mêmes définitions que vous. Je pense que quand je choisis d'utiliser le drapeau --quiet il devrait aller avec:! Verbose: exec>/dev/null Que dites-vous? – Yaneeve

+1

Il y a deux drapeaux silencieux: -q et --quiet. -q ne tiendra pas compte des extractions de bit de sortie --quiet contrôle la sortie des messages produits par rpmbuild. L'indicateur 'set -x' implanté dans l'étape de préparation est contrôlé par la variable 'verbose' dans l'environnement de la macro rpmbuild. – codeDr

Questions connexes