2009-05-28 1 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 사양 파일의 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 설정} % {자세한 정보 : 간부>는/dev/usr/lib/rpm/macros를 내 배포판에
나는 다음과 같은 발견
umask를 022 \
CD의 \ "% {u2p : % {_ builddir}} \"\/널} \

당신은 '-x 세트'제거 얻을 수있는 자세한 변수를 해제해야합니다.

+0

나는 당신과 같은 정의를 가지고 있음을 알았습니다. --quiet 플래그를 사용하기로 결정하면 다음과 같이 처리해야합니다 :! 자세한 정보 : exec>/dev/null 뭐라고 말합니까? – Yaneeve

+1

두 개의 조용한 플래그가 있습니다 : -q와 --quiet. -q 출력 tar 추출을 나열하지 않습니다. --quiet는 rpmbuild에서 생성 된 메시지의 출력을 제어합니다. 'pre-stage'에 삽입 된 'set -x'플래그는 rpmbuild 매크로 환경에서 'verbose'변수에 의해 제어됩니다. – codeDr

관련 문제