리눅스 Yum 명령어 사용이 필요한 상황이지만 폐쇄망 환경인 경우 매우 난감하다. ㅋㅋ
이럴 땐 Local Repository 구성이 필요하다.
이번에 새로 구성하고 새로 포스팅 !
1. 해당 운영체제의 ISO 파일 마운트
※ 같은 버전의 운영체제 이미지의 디스크를 물리적으로 탑재하거나, VM이면 ISO 파일 마운트해야 합니다.
# cat /etc/redhat-release
-- 현재 리눅스 운영체제 버전 확인
# lsblk -f
-- 운영체제 상에서 이미지가 잘 삽입되었는지 확인
# mkdir /cdrom
-- 마운트할 디렉토리 생성
# mount -o rw -t iso9660 /dev/sr0 /cdrom
-- 생성한 cdrom 디렉토리에 이미지 마운트
-- 이미지를 마운트 했으므로, read-only 상태로 마운트 된다고 뜹니다.
# df -h
-- /cdrom 경로가 잘 마운트된 것 확인
# cd /cdrom/Packages
-- 경로에 패키지 파일들 확인 가능
2. Local Repository 구성에 필요한 패키지 설치
Local Repository 구성에는 createrepo 패키지가 필요
createrepo의 의존성 패키지인 deltarpm, python-deltarpm 패키지도 같이 설치해야 합니다.
rpm 파일은 외부망에서 다운로드 받거나,
외부 구간에 위치한 서버에서 yum으로 설치한 후 파일 넘겨주면 됩니다.(scp나 filezila 등 활용)
yum 가능한 다른 서버에서 작업할 경우, 아래 명령어로 파일 넘기기
# yum install <패키지> --downloadonly --downloaddir=<다운로드할 경로>
# scp <대상 파일> root@<목적지 IP>:<목적지 경로>
파일을 잘 받았다면,
해당 파일은 아래와 같이 rpm 설치하면 됩니다.
# rpm -ivh createrepo* deltarpm* python*
※ 외부망 통신이 가능하다면, 애초부터 yum 으로 간편하게 설치 됩니다 !
# yum install createrepo
# cd /etc/yum.repos.d/
# ls -l
-- 기존에 구성된 yum repository 파일을 제거해야 함(혹은 다른 경로로 이동)
# mkdir backup
# mv *.repo /etc/yum.repos.d/backup
# ls -l
-- 백업 경로로 이동시킨 후, /etc/yum.repos.d/ 경로에 repo 파일이 없는 것 확인
3. Yum Local Repository 구성
필요한 패키지를 설치하고 준비했으니
이제 실제 Yum Local Repository를 구성해야 합니다.
# mkdir /local-repo/Redhat7
# cp -rf /cdrom/Packages /local-repo/Redhat7
# du -sh ./*
-- cdrom으로 마운트한 패키지를 로컬 영역으로 복사
-- 잘 복사 되었는지 용량 확인 등으로 체크해두기 !
# cd /local-repo/Redhat7
# createrepo /local-repo/Redhat7/
(2)번에서 패키지로 createrepo를 설치한 이유 !
createrepo 명령어로 Yum Local Repository 구성이 간편하게 됩니다ㅎㅎ
# ls -l /local-repo/Redhat7/
-- createrepo로 구성이 완료되었다면, 해당 경로에 'repodata' 디렉토리가 생성되어 있어야 합니다 !
# cd /etc/yum.repos.d/
# vi local-RHEL7.repo
-- Yum Local Repository 설정 파일을 생성해주면 됩니다.
[RedhatOS7-local-repo]
name=RHEL7.2 Local Repository
baseurl=file:///local-repo/Redhat7
gpgcheck=0
enabled=1
-- baseurl로 위에서 repodat를 생성한 경로를 지정해줍니다.
-- gpgcheck는 gpg 서명을 통해 yum 사용 시 신뢰할 수 있는 출처인지 확인하는 옵션(1=활성화, 0=비활성화, gpgkey 필요)
-- enabled는 지금 이 Repository를 활성화하는 옵션(1=활성화, 0=비활성화)
ㅋㅋㅋ 테스트 VM이라 OS 버전이 낮은데.. 네이밍은 자기 OS 환경에 맞게 지어주면 됩니다 !
외부 통신이 가능하다면, 해당 파일의 URL 부분을 통해 카카오, 네이버처럼 퍼블릭하게 제공되는 Repository 설정도 가능합니다ㅎ
# yum clean all
# yum repolist
-- 기존 yum 캐시를 초기화한 후, 현재 repolist를 확인
-- 위에 작성한 [RedhatOS7-local-repo] repository가 목록에 보여야 합니다 !
# yum install vsftpd
# yum install telnet
# yum install epel-release
-- yum이 잘 구성되었는지, 설치되지 않은 패키지들을 다운받아 수행해보면 정상 완료 ㅎㅎ
# umount /cdrom
다 되었다면 이제 (1)번에서 Repository 구성을 위해 마운트해둔 이미지를 umount 해주면 됩니다.
Local Repository 구성 완료 !