CentOS 6 개발용 chroot 시스템 만들기

시스템을 개발하다보면 시스템이 무척이나 지저분해진다.
또한 개발 시스템을 서비스에 투입하기에는 보안이 꺼려질 경우
아래와 같은 방법으로 기존 시스템에 영향을 주지 않는 방식으로
개발용 chroot 시스템을 구성할 수 있다.

일단 설치하려는 CentOS의 Release 파일을 다운로드 받아야한다.
내가 설치한 시스템은 CentOS 6.8 x86_64이므로 아래 URL에서
centos-release 파일을 다운받는다.
http://centos.mirror.cdnetworks.com/6.8/os/x86_64/Packages/

# wget http://centos.mirror.cdnetworks.com/6.8/os/x86_64/Packages/centos-release-6-8.el6.centos.12.3.x86_64.rpm

 

만약 chroot를 설치할 디렉토리 위치가 "/root/chroot"라고 한다면, 다운로드 받은 RPM을 설치할 디렉토리를 생성해준다.

# mkdir -p /root/chroot/var/lib/rpm

 

다운 받은 RPM 파일을 아래와 같이 설치할 root를 변경후, rpm을 설치한다.

# rpm --root /root/chroot/ 
# rpm --root /root/chroot/ -ivh --nodeps ./centos-release-6-8.el6.centos.12.3.x86_64.rpm

 

이러면 아래와 같은 파일들이 설치된다.

# find /root/chroot/
/root/chroot/
/root/chroot/var
/root/chroot/var/lib
/root/chroot/var/lib/rpm
/root/chroot/var/lib/rpm/.rpm.lock
...
/root/chroot/etc
/root/chroot/etc/pki
/root/chroot/etc/pki/rpm-gpg
/root/chroot/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-6
/root/chroot/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
/root/chroot/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Security-6
/root/chroot/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Testing-6
/root/chroot/etc/rpm
...
/root/chroot/etc/yum.repos.d/CentOS-Vault.repo
/root/chroot/etc/yum
/root/chroot/etc/yum/vars
/root/chroot/etc/yum/vars/infra
/root/chroot/etc/system-release-cpe
...
/root/chroot/usr/share/doc/redhat-release

 

그 이후, yum 명령어를 통해서 일괄적으로 파일들을 설치할 수 있다.

# yum --installroot=/root/chroot/ -y groupinstall "Development tools"

 

위와 같이 명령어를 실행하면, 개발관련된 패키지들이 "/root/chroot" 디렉토리 이하에 일괄적으로 설치된다.

이후, resolv.conf을 복사해서 chroot 환경에서도 네트워크가 되도록 기존 파일을 복사한다.

# cp /etc/resolv.conf /root/chroot/etc/

 

chroot 시스템을  사용하려면 아래와 같이 2개의 디렉토리를 Mount해준다.

# mount -o bind /dev /root/dev
# mount -o bind /proc /root/proc

 

위 작업이 끝났다면 아래 "chroot" 명령어를 통해 설치된 시스템에 접근해서 개발을 진행하면 된다.

# chroot /root/chroot

 

개발 후, 더 이상 필요가 없다면, 아래 명령어를 통해서 디렉토리를 삭제하면 깨끗한 시스템이 된다.
(단 삭제 전, mount된 것들은 해제해준다.)

# rm -rf /root/chroot