리눅스 패키지 관리에서 yum(Yellowdog Updater, Modified)은 CentOS 및 Red Hat Enterprise Linux 시스템에서 소프트웨어 패키지를 관리하는 데 사용되는 주요 도구입니다. yum을 효과적으로 사용하려면 적절한 저장소를 가리키도록 구성하는 것이 중요합니다. CentOS 7 저장소를 사용하도록 yum을 구성하는 방법을 안내합니다.
리눅스 CentOS yum 구성
- 저장소 추가 시작: 다음 명령을 사용하여 시스템에 CentOS 7 저장소를 추가합니다.
yum-config-manager –add-repo=”http://mirror.centos.org/centos/7/os/x86_64/”
- 저장소 디렉토리로 이동: 저장소 구성 디렉토리로 작업 디렉토리를 변경합니다.
cd /etc/yum.repos.d/
- 저장소 구성 파일 편집:
base.repo라는 저장소 구성 파일을 편집합니다.
vi base.repo
- 저장소 구성 수정:
base.repo파일의 내용을 다음과 같이 수정합니다.
[base]
name=base
baseurl=http://mirror.centos.org/centos/7/os/x86_64/
enabled=1
gpgcheck=0
yum 캐시 새로 고치기 및 저장소 나열
- yum 캐시 지우기: 새로 추가된 저장소를 반영하도록 Yum 캐시를 지웁니다.
yum clean all
- 사용 가능한 저장소 나열: 사용 가능한 모든 저장소의 목록을 표시합니다.
yum repolist
폐쇄망 yum 레드햇 레파지토리 서버 구성
폐쇄망에서는 외부와 통신이 어렵기 때문에 RPM 패키지를 개별로 받아서 설치해야 하는 번거로움이 있습니다. 이 경우 레파지토리 서버를 DMZ 망에 구성 후 내부망에 서버들을 레파지토리 서버를 바라보게 하여 yum을 사용 가능하게 할 수 있습니다.
구성 목적
- 폐쇄망에서 yum을 사용하여 패키지를 설치, 업데이트 및 제거 가능
구성 준비사항
- DMZ 망에 레파지토리 서버를 구성할 수 있는 서버
- Red Hat Subscription이 활성화된 계정
레파지토리 서버 사전 설정
- DNS 설정
Redhat 과 통신이 ip가 아닌 URL 통신이라 DNS 설정이 필요합니다.
vi /etc/resolv.conf
nameserver 168.126.63.1
- 통신 테스트
ping rhn.redhat.com
레파지토리 서버 구성
- 패키지 (rpm) 다운
apache 웹서버의 폴더인 /var/www/html 경로에 Redhat 서버로부터 패키지를 다운 받습니다.
reposync -l --download_path=/var/www/html
- repository 생성
Redhat 서버로부터 패키지를 받으면 각 repoid 폴더 별로 받아집니다.
repoid 폴더 하위에 Packages라는 폴더가 있지만, repoid 별로 xml 형식의 repo matadata가 생성되어 있어야 repository 정보를 가져올 수 있습니다.
createrepo /var/www/html/rhel-7-server-rpms(repoid)/
- apache 서버 시작 및 접속
systemctl start httpd
systemctl enable httpd
apache 서버 시작 후 웹브라우저로 http://127.0.0.1/rhel-7-server-rpms 접속하면 Packages와 repodata 가 보이면 서버 구성은 완료가 되었습니다.
클라이언트 레파지토리 설정
- repository config 설정
vi /etc/yum.repos.d/repo.repo
[myrepo]
name=My Repository
baseurl=http://<repo_server_ip>/rhel-7-server-rpms
enabled=1
gpgcheck=0
- repository matadata를 받아오기
yum clean all
yum repolist
- repository 정보 확인
yum list
위 과정을 완료하면 폐쇄망 내부 서버에서 레파지토리 서버를 통해 yum을 사용하여 패키지를 설치, 업데이트 및 제거할 수 있습니다.
리눅스 OS 설치 ISO 이용하여 yum 구성하기
리눅스 OS 설치 ISO를 사용하여 로컬 레파지토리를 구성하여 yum을 사용할 수 있습니다. 이 방법을 사용하면 인터넷에 연결되어 있지 않은 리눅스 시스템에서도 yum을 사용하여 패키지를 설치, 업데이트 및 제거할 수 있습니다.
준비사항
- 리눅스 OS 설치 ISO
- 리눅스 시스템
설치 ISO 마운트
설치 ISO를 리눅스 시스템에 마운트합니다.
mount -o loop <ISO 파일 이름> /mnt/iso
레파지토리 구성
cd /mnt/iso/
yum-config-manager --add-repo=file:///mnt/iso/
레파지토리 캐시 새로 고침
yum clean all
yum repolist
패키지 설치
yum install <패키지 이름>
설명
yum-config-manager --add-repo=file:///mnt/iso/명령을 사용하여 설치 ISO를 레파지토리로 추가합니다.yum clean all명령을 사용하여 기존 레파지토리 정보를 삭제합니다.yum repolist명령을 사용하여 새로 추가된 레파지토리를 확인합니다.yum install <패키지 이름>명령을 사용하여 패키지를 설치합니다.
예제
CentOS 7 설치 ISO를 사용하여 레파지토리를 구성하는 예입니다.
mount -o loop CentOS-7-x86_64-DVD-1611.iso /mnt/iso
yum-config-manager --add-repo=file:///mnt/iso/
yum clean all
yum repolist
yum install wget
이 예를 실행하면 CentOS 7 설치 ISO에 있는 모든 패키지를 사용할 수 있는 레파지토리가 구성됩니다.
주의사항
- 설치 ISO를 사용하여 구성한 레파지토리는 ISO에 포함된 패키지만 사용할 수 있습니다.
- ISO에 포함된 패키지가 최신 버전이 아닐 수 있습니다.
패키지 관리를 위한 필수 yum 명령어
- 패키지 목록: 사용 가능한 모든 패키지를 나열합니다.
yum list
- 설치된 패키지 목록: 설치된 모든 패키지를 나열합니다.
yum list installed
- 패키지 그룹 목록: 사용 가능한 모든 패키지 그룹을 나열합니다.
yum grouplist
- 패키지 검색: 특정 용어를 기반으로 패키지를 검색합니다.
yum search "용어"
- 패키지 정보 표시: 특정 패키지에 대한 자세한 정보를 표시합니다.
yum info 패키지_이름
- 특정 파일을 제공하는 패키지 식별: 특정 파일을 제공하는 패키지를 확인합니다.
yum provides 파일_경로
- 패키지 설치: 하나 이상의 패키지를 설치합니다.
yum install 패키지_이름1 패키지_이름2 ...
- 패키지 업데이트: 설치된 모든 패키지를 업데이트합니다.
yum update
- 패키지 제거: 하나 이상의 패키지를 제거합니다.
yum remove 패키지_이름1 패키지_이름2 ...
결론
CentOS 7 저장소를 사용하도록 yum을 성공적으로 구성하고 CentOS 시스템에서 패키지를 관리하는 데 필요한 필수 yum 명령을 습득할 수 있습니다. Linux yum을 사용하여 패키지를 원활하게 설치, 업데이트 및 제거할 수 있어 시스템이 최신 상태로 유지되고 요구 사항에 맞게 최적화됩니다.
