티스토리 뷰

Cloud/Private Cloud

How to analysis for Soure Code

jacobbaek Jacob_baek 2018. 8. 30. 16:01

Red Hat Enterprise Linux Kernel Source Code 분석


Red Hat Enterprise Linux 7.4 에 base kernel인 3.10.0-693에 대해 source code를 다운로드 받고 package 상에 포함된 code를 확인하는 방법을 기술한다.


https://access.redhat.com/downloads로 접속하여 분석을 원하는 SRPM package를 다운로드 받는다.

앞서 이야기했듯이 우리는 kernel 3.10.0-693에 대한 source code를 보고자 하기에 아래 링크를 통해 다운로드를 받는다.

https://access.redhat.com/downloads/content/rhel---7/x86_64/2456/kernel/3.10.0-693.el7/x86_64/fd431d51/package

다운로드 받은 srpm 파일을 다음과 같이 Red Hat Enterprise Linux 혹은 fedore 서버에서 설치한다.

[root@localhost ~]# rpm -ivh kernel-3.10.0-693.el7.src.rpm


이후 해당 directory 혹은 /home/[user] directory에 보면 rpmbuild 라는 디렉토리가 생성된것을 확인할 수 있다.

여기서 알수 있듯이 rpmbuild package가 설치되어 있어야 한다.


[root@localhost ~]# cd rpmbuild

[root@localhost rpmbuild]# rpmbuild -bp SPECS/kernel.spec --nodeps


참고로 앞서 사용했던 -bp 및 다양한 옵션에 대하여 아래와같은 help message를 첨부한다.

  -bp               build through %prep (unpack sources and apply patches) from
                    <specfile>
  -bc               build through %build (%prep, then compile) from <specfile>
  -bi               build through %install (%prep, %build, then install) from
                    <specfile>
  -bl               verify %files section from <specfile>
  -ba               build source and binary packages from <specfile>
  -bb               build binary package only from <specfile>
  -bs               build source package only from <specfile>


동일한 환경의 서버일 경우 문제가되지는 않지만 일반적으로 동일한 환경을 가지기 쉽지 않으므로 --nodeps 옵션을 추가하여 source code를 뽑아낸다.


이후 아래와 같은 directory로 이동하여 source code를 확인한다.

[root@localhost rpmbuild]# cd BUILD/kernel-3.10.0-693.el7/linux-3.10.0-693.el7.x86_64/





'Cloud > Private Cloud' 카테고리의 다른 글

vagrant  (0) 2019.05.06
nested virtualization enable on Red Hat Virtualization  (0) 2018.10.31
How to analysis for Soure Code  (0) 2018.08.30
ansible set_fact  (0) 2018.06.07
rsyslog omsnmp  (0) 2018.05.30
impossible to access openstack horizon  (0) 2017.09.01
댓글
댓글쓰기 폼