Server & OS

src.rpm build 하기

페이지 정보

본문

kernel-2.6.17-1.2462.fc6.src.rpm 은 fedora에서 패치들을 쉽게 설치할 수 있도록 rpm으로 패키징해서 제공하는 것이다.
다운 로드 받을 수 있는 곳은 
http://download.fedora.redhat.com/pub/fedora/linux/core/development/source/SRPMS/
에서 최신 버전을 받을 수 있고,
http://download.fedora.redhat.com/pub/fedora/linux/core/
에서 원하는 fedora 버전에 따라 디렉토리를 찾아가 받으면 된다.

xxx.src.rpm형태의 파일은 xxx.rpm 파일처럼  # rpm -ivh(또는 -Uvh) xxx.rpm  명령어로는 간단히 설치 할 수가 없다.
rpm 개발자가 사용자들이 자신의 시스템에 맞게 리빌드 해서  사용 할 수 있도록  rpm 파일을 만드는데 사용된 소스를
함께 제공하는 형태다.  따라서 xxx.src.rpm은  자신의 시스템에 맞게 리빌드 해서 xxx.rpm 형태로 바꾼 후 설치를 해주
면 된다. 리빌드 방법에는 두가지가 있는데

1. 소스를 수정하지 않고 리빌드 해서 설치하기
2. 소스를 수정한 후 리빌드 해서 설치하기

첫번째 방법은 아주 간단하다. spec 파일이나 rpm 빌드 방법에 대해서 몰라도 다음 명령어들만 쳐주면 된다.
먼저 kernel-2.6.17-1.2462.fc6.src.rpm을 다운로드 받은 디렉토리도 이동한 후

# rpmbuild --rebuild kernel-2.6.17-1.2462.fc.6.src.rpm --target=i686 

명령을 실행시키면 i686 시스템에 맞는 RPM을 Redhat 리눅스 일경우  /usr/src/redhat/RPMS/i686 디렉토리에
kernel-2.6.17-1.2462.i686.rpm 파일명으로 만들어 준다. 그리고 이 디렉토리로 이동해서

# rpm  -ivh kernel-2.6.17-1.2462.i686.rpm

을 실행해주면 설치가 된다.  재부팅을 해보면 커널 선택 매뉴에 추가된것을 확인 할 수 있을 것이다.

두번째 방법은 조금 복잡한데 자세한 내용은 참고 문서와 책을 참고하기 바란다.   먼저

# rpm -ivh  kernel-2.6.17-1.fc6.src.rpm


  명령을 실행해 압축을 풀면(설치한다고도 한다) Redhat 리눅스 일경우  /usr/src/redhat/ 아래 SPECS와 SOURCES
디렉토리에 kernel.2.6.spec 파일과 소스파일들이 생성된 것을 확인 할 수 있다.
이렇게 했는데.. 디렉토리가 없니 어쩌니 라고 나오면.. 패키지를 하나 더 설치해야 한다. 우선 src.rpm이 설치 되야 하는
디렉토리가 있어야 하는데 없을경우 다른 곳에서 찾아야 한다. 그 필요한 디렉토리를 만들어주는 패키지가 rpm-build
패키지이다.  가지고 있는 시디에서 rpm-build 로 시작하는 패키지를 찾아서 설치하거나 인터넷에서 찾아서 설치하면 된다.
그런 후에 다시 다운로드 받은 src.rpm 을 설치하고
/usr/src/redhat/ 아래 SPECS와 SOURCES에 가보면 파일들을 볼 수 있다.
자기가 필요한 패치를 추가하거나 필요없는 것은 뺀 다음  spec파일을 수정해주었으면 SPECS 디렉토리로 이동해 다음
명령어로  rpm을 빌드해준다.

# rmpbuild -ba  kernel-2.6.spec --target=i686

빌드가 정상적으로 끝나면 ./RPMS/i686/ 과  ./SRPMS 디렉토리에
kernel-2.6.17-1.2462.i686.rpm 파일과 kernel-2.6.17-1.2462.i686.src.rpm  파일이 만들어 진것을 볼 수 있을 것이다.
첫번째 방법과 같이 ./RPMS/i686/이동해서 설치해주면 된다. 끝.

출처 : Tong - mahyun님의 Redhat통

관련자료

등록된 댓글이 없습니다.
Today's proverb
네 마음 안에서 구하라. 마음 밖에서 구하면 천년을 구해도 허사이다. (부처)