질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

소스 컴파일 오류 좀 잡아 주세요 ㅡㅡ

작성자 정보

  • 배움이 작성
  • 작성일

컨텐츠 정보

본문

안녕하세요^^*

소스 컴파일 질문 좀 드립니다.

초보라서 아는게 별로 없습니다.

열심히 해보려는대 소스 컴파일이 발목을 붙잡네요

도와 주시면 감사하겠습니다.

[root@centos tmp]# uname -a
Linux centos 2.6.18-92.1.6.el5 #1 SMP Wed Jun 25 13:49:24 EDT 2008 i686 i686 i386 GNU/Linux


[root@centos tmp]# yumdownloader --source freeradius-1.1.3-1.2.el5.src.rpm
Loading "fastestmirror" plugin
Loading mirror speeds from cached hostfile
 * base: ftp.daum.net
 * updates: ftp.daum.net
 * addons: ftp.daum.net
 * extras: ftp.daum.net
No Match for argument freeradius-1.1.3-1.2.el5.src.rpm
Nothing to download


파일 다운로드 위치
http://oss.oracle.com/el5/SRPMS-updates/freeradius-1.1.3-1.2.el5.src.rpm

[root@centos freeradius]# rpm -Uvh freeradius-1.1.3-1.2.el5.src.rpm

warning: freeradius-1.1.3-1.2.el5.src.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
1:freeradius warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
########################################### [100%]
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root


오류가 발생했지만 freeradius.spec파일은 만들어 졌습니다.


[root@centos freeradius]# cd /usr/src/redhat/SPECS
[root@centos SPECS]# ls
freeradius.spec

rpmbuild시 의존성 파일은 모두 설치 했습니다.

파일 수정 없이 rpmbuild를 햇습니다.

[root@centos SPECS]#rpmbuild -bb freeradius.spec

mkdir: cannot create directory `/var/tmp/freeradius-1.1.3-1.2%{dist}-buildroot/usr/sbin': No such file or directory
make: *** [install] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.86486 (%install)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.86486 (%install)


===============================================================
/var/tmp/rpm-tmp.86486 내용입니다.
===============================================================

#!/bin/sh

  RPM_SOURCE_DIR="/usr/src/redhat/SOURCES"
  RPM_BUILD_DIR="/usr/src/redhat/BUILD"
  RPM_OPT_FLAGS="-O2 -g -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="freeradius"
  RPM_PACKAGE_VERSION="1.1.3"
  RPM_PACKAGE_RELEASE="1.2%{dist}"
  export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE
  RPM_BUILD_ROOT="/var/tmp/freeradius-1.1.3-1.2%{dist}-buildroot"
  export RPM_BUILD_ROOT


  set -x
  umask 022
  cd /usr/src/redhat/BUILD
cd freeradius-1.1.3
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/etc/{logrotate.d,pam.d,rc.d/init.d}

# fix for bad libtool bug - can not rebuild dependent libs and bins
export LD_LIBRARY_PATH=$RPM_BUILD_ROOT//usr/lib
make install R=$RPM_BUILD_ROOT

RADDB=$RPM_BUILD_ROOT/etc/raddb
# set radiusd as default user/group
perl -i -pe 's/^#user =.*$/user = radiusd/' $RADDB/radiusd.conf
perl -i -pe 's/^#group =.*$/group = radiusd/' $RADDB/radiusd.conf
# shadow password file MUST be defined on Linux
perl -i -pe 's/#        shadow =/shadow =/' $RADDB/radiusd.conf

install -m 755 redhat/rc.radiusd-redhat $RPM_BUILD_ROOT/etc/rc.d/init.d/radiusd
install -m 644 redhat/radiusd-logrotate $RPM_BUILD_ROOT/etc/logrotate.d/radiusd
install -m 644 redhat/radiusd-pam $RPM_BUILD_ROOT/etc/pam.d/radiusd

# remove unwanted rc.radiusd
rm -f $RPM_BUILD_ROOT/usr/sbin/rc.radiusd

find $RPM_BUILD_ROOT/usr/lib -name "*.la" -print | xargs rm -f
find $RPM_BUILD_ROOT/usr/lib -name "*.a" -print | xargs rm -f

mkdir -p $RPM_BUILD_ROOT/var/log/radius
touch $RPM_BUILD_ROOT/var/log/radius/{radutmp,radwtmp,radius.log}
mkdir -p $RPM_BUILD_ROOT/var/log/radius/radacct
mkdir -p $RPM_BUILD_ROOT/var/run/radiusd

# remove unsupported config files
rm -f $RPM_BUILD_ROOT/etc/raddb/oraclesql.conf
rm -f $RPM_BUILD_ROOT/etc/raddb/experimental.conf

 

원이 뭔지 좀 알려 주시면 감사하겠습니다. ㅡㅡ

날씨가 많이 덥습니다. 더위 조심하세요^^*


 

관련자료

댓글 2

도리님의 댓글

  • 도리
  • 작성일
어떻게 수정하신지는 모르겠으나,
 에러 메시지 내용은,
 /usr/sbin 없을 때가 고려되지 않은 듯 합니다.

그러니... 스크립트 속에 if [ ! -d /usr/sbin ] ; then mkdir /usr/sbin/ ; fi
와 같이 한 줄넣어 주면 해결되겠네요..
물론 build root는 고려하지 않았습니다. 위와 같이 너어주세요^^

배움이님의 댓글

  • 배움이
  • 작성일
감사합니다.
무작정 한번 해보겠습니다.^^*

공지사항


뉴스광장


  • 현재 회원수 :  60,300 명
  • 현재 강좌수 :  36,964 개
  • 현재 접속자 :  468 명