보통 작업디렉토리가 위치하는 곳은 /usr/src 이고, /etc/rpmrc 파일에서 바꿔줄수 있다고 한다.
> yum install rpm-build redhat-rpm-config unifdef
> cd
> mkdir -p rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
> echo '%_topdir %(echo $HOME)/rpmbuild' > .rpmmacros
- kernel download
find the kernel source rpm
* http://mirror.centos.org/centos/5/updates/SRPMS/ (Current Updates/SRPMS)
* http://mirror.centos.org/centos/5/os/SRPMS/ (Current OS/SRPMS)
- once you have located the source file, you caninstall int by running, for example:
* cent 5
> rpm -i http://mirror.centos.org/centos/5/updates/SRPMS/kernel-2.6.18-194.17.4.el5.src.rpm 2>&1 | grep -v mockb
* cent 4
> rpm -i http://mirror.centos.org/centos/4/updates/SRPMS/kernel-2.6.9-89.31.1.EL.src.rpm 2>&1 | grep -v mockb
- now that the cource rpm is installed, unpack and prepare the source files:
> cd ~/rpmbuild/SPECS
> rpmbuild -bp --target=`uname -m` kernel-2.6.spec
- the kernel source tree will now be found in the directory ~/rombuild/BUILD/
<vender_name_dir> : 각 벤더 마다 디렉토리가 다르다.
/usr/src/<vender_name_dir>/BUILD : rpm 파일을 만들기 위한 작업 디렉토리.
/usr/src/<vender_name_dir>/SOURCES : 소스 압축파일이나 패치파일을 위치시킨다.
/usr/src/<vender_name_dir>/SPECS : spec 파일을 위치시킨다.
/usr/src/<vender_name_dir>/RPMS : 만들어진 rpm 파일이 저장되는 곳.
/usr/src/<vender_name_dir>/SRPMS : 만들어진 src.rpm 파일이 저장되는 곳 .
#rpmbuild -bp <packge_name.SPCE>
: /usr/src/<vender_name_dir>/BUILD 디렉토리에 패치가 적용된 상태까지만 빌드 된다.
주로 diff를 이용하여 patch 파일 제작시 많이 이용되는 옵션.
#rpmbuild -ba <packge_name.SPCE>
: /usr/src/<vender_name_dir>/RPMS/<arch>/ 에 rpm 바이너리 생성.
/usr/src/<vender_name_dir>/SRPMS/ 에 source RPM 생성.
#rpmbuild -ba --rmspec <packge_name.SPCE>
: 빌드를 마치고 SPCE 파일을 제거 한다.
#rpmbuild -ba --rmsource <packge_name.SPCE>
: 빌드를 마치고 /usr/src/<vender_name_dir>/SOURCES/ 의 소스를 지운다.
#rpmbuild -ba --clean <packge_name.SPCE>
: 빌드는 마치고 /usr/src/<vender_name_dir>/BUILD/ 의 빌드과정중 생겨난 디렉토리를 지운다.
#rpmbuild -ba --rmspec --rmsource --clean <packge_name.SPCE>
: 빌드는 마치고 SPEC 파일과 소스, 빌드디렉토리를 비운다. RPM 과 SRPM 파일만 생성.
'IT > Tips' 카테고리의 다른 글
python 문자열 제어 (0) | 2010.11.23 |
---|---|
gdb 반복문 for while (0) | 2010.11.12 |
database 용어 (0) | 2010.09.29 |
Linux USB Guide (0) | 2010.06.16 |
linux 패키지 설명 (0) | 2010.06.10 |