레드햇 최신 패키지 정보는 어떻게 업데이트 하나요 ?
* CentOS 최신 패키지 정보는 어디에서 가져와서 업데이트 할까 ?
Redhat 리눅스 배포판은 대표적으로 CentOS, Rocky, Fedora, RHEL 등이 있습니다.
그중에서 CentOS 7 환경을 기준으로 최신 패키지 정보가 어떻게 업데이트 되는지 알아봅니다.
CentOS 배포판 소프트웨어 패키지 저장소 (Repository) 서버로 부터 최신 패키지 정보들을
업데이트 할 수 있습니다. 이때 해당 패키지 저장소 서버의 URL 주소는
/etc/yum.repos.d/*.repo 파일에 적혀있고 해당 주소를 통해서 서버에 최신 패키지 정보를 받아오게됩니다.
아래와 같이 패키지 저장소 서버 URL 주소값이 적혀있는 /etc/yum.repos.d/*.repo 파일을 확인한다면 다양한 서버 URL 들을 볼 수 있습니다.
예를 들어서 CentOS-Base.repo 파일을 열어본다면 패키지 저장소 서버 URL 주소를 확인할 수 있습니다.
# CentOS 배포판 소프트웨어 패키지 저장소 (Repository) URL 확인 $ cat /etc/yum.repos.d/CentOS-Base.repo # CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ ...
CentOS 같은 경우는 공식적인 패키지 저장소 Repository 서버의 운영 중단으로 인해 mirror 서버들을 대체 서버로 사용하게 됩니다. 따라서 위의 base URL 주소가 mirror.centos.org 와 같이 되어있는것을 확인 할 수 있습니다.
추가 패키지 저장소 repository 서버 정보를 등록하기 위해서 EPEL(Extra Packages for Enterprise Linux) 저장소를 추가할 수 있습니다.
아래와 같이 yum install 명령어 통해서 설치하면 예를 들어 nginx 와 같은 패키지도 설치가 가능해 집니다.
$ sudo yum install epel-release $ sudo yum check-update
* CentOS 배포판 소프트웨어 패키지 저장소 (Repository) 웹 페이지로 확인
http://mirror.centos.org 웹 페이지에 접속하게 되면 위와 같은 페이지를 확인할 수 있습니다.
CentOS 소프트웨어 패키지 저장소 서버의 역할은 CentOS 운영 체제 및 응용 프로그램의 소프트웨어 패키지를 호스팅하고 배포하는 것입니다. 이를 통해 사용자는 쉽게 소프트웨어를 설치하고 업데이트할 수 있습니다.
(1) 소프트웨어 패키지 배포: CentOS 및 관련 소프트웨어의 최신 버전과 안정된 버전을 사용자에게 제공합니다.
(2) 패키지 업데이트: 사용자들이 최신 보안 업데이트 및 버그 수정 사항을 받을 수 있도록 최신 패키지 버전을 제공합니다.
(3) 다양한 버전 지원: 여러 CentOS 버전에 대한 패키지를 유지하며, 특정 릴리스의 지원 종료 후에도 여전히 사용 가능하도록 합니다.
(4) 의존성 관리: 소프트웨어 패키지 간의 의존성을 관리하여 사용자들이 특정 소프트웨어를 설치할 때 필요한 모든 구성 요소가 자동으로 설치되도록 합니다.
* 레드햇 패키지 정보가 저장되는 위치
레드햇(CentOS) 배포판 소프트웨어 패키지 저장소 (Repository) 서버로 부터 가져온 최신 패키지 정보는
아래와 같이 /var/cache/yum 폴더 또는 /var/cache/dnf/*/repodata/ 폴더 안에 저장됩니다.
레드햇 계열 리눅스에서 yum 또는 dnf 패키지 관리자를 사용할 수 있고 사용법은 거의 동일하지만 좀더 업그레이드 되고 개선된 버전이 dnf 입니다.
패키지 관리자로 yum 을 사용할때와 dnf 를 사용할때 서로 다른 폴더에 최신 패키지 정보가 저장되는것을 확인할 수 있습니다
# CentOS 소프트웨어 패키지 저장소(Repository) 로 부터 최신 패키지 정보 업데이트 $ sudo yum check-update # 폴더 내부를 tree 구조로 확인하는 명령어 설치 $ sudo yum install -y tree # 패키지 정보가 저장되는 폴더 확인 $ tree /var/cache/yum/ /var/cache/yum/ `-- x86_64 `-- 7 |-- base | |-- 6d0c3a488c282fe537794b5946b01e28c7f44db79097bb06826e1c0c88bad5ef-primary.sqlite.bz2 | |-- a4e2b46586aa556c3b6f814dad5b16db5a669984d66b68e873586cd7c7253301-c7-x86_64-comps.xml.gz | |-- cachecookie | |-- gen | | `-- primary_db.sqlite | |-- mirrorlist.txt | |-- packages | `-- repomd.xml ...
/var/cache/yum 폴더 또는 /var/cache/dnf/*/repodata/ 폴더안에 있는 파일들은 결국 캐시(미리 읽어 놓은 데이터) 이기 때문에 삭제를 하더라도 다시 yum check-update 명령어를 통해서 채워넣을 수 있습니다.
경우에 따라서 패키지 정보가 손상이 되었거나 문제가 발생했을때 /var/cache/yum 폴더 또는 /var/cache/dnf/*/repodata/ 폴더 안에 있는 파일들을 삭제하고 yum check-update 명령어를 통해서 새롭게 최신 패키지 정보를 업데이트 할 수 있습니다.
패키지 정보와 캐시파일들을 삭제할때 yum clean all 명령어를 통해서 삭제할 수 도 있습니다.
이상 레드햇 리눅스 CentOS에서 소프트웨어 패키지 정보를 업데이트 하는 과정을 알아봤고
해당 정보를 기반으로 패키지 파일을 다운받고 설치(install) 하는 과정은 다음 글에서 알아보겠습니다.
자세한 패키지 관련 명령어 실습과 다양한 리눅스 실무사례 패키지 문제해결 실습을 재연하고 해결해보고 싶다면 https://reallinux.co.kr/course/linux_zerobase
리얼리눅스 강의중 "리눅스 Zero 베이스 초보자 트러블 슈팅까지" 를 참고해주세요!