2009-05-28 9 views
2

rpmビルド手順の出力を最小限に抑えたいと考えています。 rpmbuild -ba --quiet "/tmp/yaneeve/kit/linux/rpm_spec"--quietオプションフラグを指定してrpmbuildコマンドを実行すると、広範囲なデバッグ情報が得られます

私のシステムでは、次のとおりです: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 specファイルの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は結果として次のスクリプトを作成します(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 

set -xが挿入されるのはなぜですか? それが、広範なデバッグ情報が印刷された理由だと思いますか? 私は何が間違っていますか? または、rpmbuildプログラムにバグがありますか?

お使いのディストリビューションに

+0

件名を少し小さくしてください。 – JesperE

+0

希望の主題は今より明確です... – Yaneeve

答えて

2

%プレップマクロが展開され、セット-xが含まれています(私の質問があまりにも記述ビットが...ある場合は申し訳ありません)。冗長
%{\

輸出CLASSPATH}::!-x設定}%{冗長します。exec>は/ devは/ usr/libに/回転数/マクロでの私のディストリビューションで
は、私は、次のを見つけました
のumask 022 \
CD \ \ /ヌル} "%{U2P:%{_ builddir}} \" \

あなたが取り除か '-xセット' を取得するには、unset verbose変数を必要としています。

+0

私はあなたと同じ定義を持っていることがわかります。 私は--quietフラグを使用することを選択すると、次のようになると思います:!詳細:exec>/dev/null どういうことを言いますか? – Yaneeve

+1

静かなフラグには、-qと--quietの2つがあります。 -q出力されたtar抽出をリストしません。 --quietは、rpmbuildによって生成されたメッセージの出力を制御します。 準備段階で移植された 'set -x'フラグは、rpmbuildマクロ環境内の 'verbose'変数によって制御されます。 – codeDr

関連する問題