DEV Community

Cover image for Yum Local Repository
Waji
Waji

Posted on • Updated on

Yum Local Repository

Yum Repository는 패키지를 모아놓은 저장소입니다. Yum을 통해 패키지를 설치 시,
활성화된 Yum 저장소에서 패키지를 다운로드하여 설치하기 때문에 패키지가 Yum 저장소에 없을 경우 설치할 수 없습니다. 이런 경우에는 사용자가 직접 리포지토리를 만들고 유지 관리해야 하며 수동으로 yum 패키지 관리자에 리포지토리 구성을 추가해야 합니다. 이러한 유형의 리포지토리는 종종 사용자 지정 패키지 또는 공식 리포지토리에서 사용할 수 없는 패키지에 사용됩니다.

👉 로컬 저장소를 자세히 살펴보기 전에 먼저 'yum' 명령어의 sytanx에 대해 설명드리겠습니다.

Yum 명령어

YUM 이란 Yellowdog Updater Modified 의 약자로, RPM 기반의 시스템을 위한 자동 업데이터이자 소프트웨어와 같은 패키지 설치/ 삭제 도구입니다.

  • 명령어 사용법

    명령어
    yum repolist yum 패키지를 설치하는 원격지 저장소 정보 확인 리눅스 경로에선
    /etc/yum.repos.d/ 하위에 원격지 저장소 정보들이 있음
    yum clean all 캐쉬된 데이터를 삭제
    yum install (패키지명) 패키지를 설치(의존성 있는 패키지까지 설치)
    yum update (패키지명) 해당 패키지의 새 버전이 있으면 update한다.
    yum remove (패키지명) 패키지를 삭제(의존성 있는 패키지까지 삭제)
    yum search (키워드) 키워드로 시작하는 패키지를 검색
    yum list 서버에 있는 패키지의 목록을 보여줌
    yum list updates 설치된 패키지 중 업데이트된 패키지만 확인
    yum list available 설치된 패키지 리스트를 확인

Local Repository Example

  • 수동 저장소 생성

다음은 수동으로 로컬 yum 저장소를 생성하고 구성하는 방법의 예입니다:

리포지토리의 디렉토리를 만듭니다:

mkdir /opt/myrepo
Enter fullscreen mode Exit fullscreen mode

리포지토리에 포함할 패키지를 새로 만든 디렉토리로 다운로드합니다:

wget http://example.com/mypackage-1.0.rpm -P /opt/myrepo
wget http://example.com/mypackage2-1.0.rpm -P /opt/myrepo
Enter fullscreen mode Exit fullscreen mode

*GNU Wget은 HTTP 통신 또는 FTP 통신을 사용해 서버에서 파일 또는 콘텐츠를 다운로드할 때 사용하는 소프트웨어입니다.

repodata 디렉토리를 생성합니다:

sudo createrepo /opt/myrepo
Enter fullscreen mode Exit fullscreen mode

*’yum’ 패키지를 오프라인에서 다운로드 해야할 때 dependency 문제를 방지하기 위해 ‘createrepo’ 를 사용하여 설치셋을 만듭니다.

/etc/yum.repos.d/ 디렉토리에 다음 내용을 포함하는 새 .repo 파일을 생성합니다:

[myrepo]
name=My Repository
baseurl=file:///opt/myrepo
enabled=1
gpgcheck=0
Enter fullscreen mode Exit fullscreen mode

yum 메타데이터를 업데이트합니다:

sudo yum clean metadata
sudo yum makecache
Enter fullscreen mode Exit fullscreen mode

이렇게 하면 yum 명령을 사용하여 새로 생성된 리포지토리에서 패키지를 설치, 업데이트 및 제거할 수 있습니다.

위의 예에서는 wget 명령을 사용하여 패키지를 다운로드하고 repo 명령을 사용하여 repodata 디렉토리를 생성했습니다. 패키지를 리포지토리 디렉토리에 복사하거나 rsync를 사용하는 등의 다른 방법을 사용하여 패키지를 리포지토리에 추가할 수 있습니다. 또한 보안 문제를 방지하기 위해 GPG 키로 패키지에 서명하는 것을 고려할 수 있습니다.

또한 이 예에서는 파일 프로토콜(file://)을 사용하여 저장소에 액세스했으며, http, https, ftp 등의 다른 프로토콜도 사용할 수 있습니다.

위의 내용은 예에 불과하며, 요구 사항 및 패키지 가용성에 따라 사용자 정의할 수 있습니다.

  • 자동 저장소 생성

다음은 자동 로컬 yum 저장소를 생성하고 구성하는 방법의 예입니다:

리포지토리의 디렉토리를 만듭니다:

mkdir /opt/localrepo
Enter fullscreen mode Exit fullscreen mode

리포지토리에 포함할 패키지를 새로 만든 디렉토리에 복사합니다:

cp /path/to/package1.rpm /opt/localrepo
cp /path/to/package2.rpm /opt/localrepo
Enter fullscreen mode Exit fullscreen mode

repodata 디렉토리를 생성합니다:

sudo createrepo /opt/localrepo
Enter fullscreen mode Exit fullscreen mode

/etc/yum.repos.d/ 디렉토리에 다음 내용을 포함하는 새 .repo 파일을 생성합니다:

[localrepo]
name=Local Repository
baseurl=file:///opt/localrepo
enabled=1
gpgcheck=0
Enter fullscreen mode Exit fullscreen mode

다음 내용을 사용하여 /etc/yum.repos.d/localrepo.repo라는 새 yum configuration 파일을 생성합니다:

[localrepo]
name=Local Repository
baseurl=file:///opt/localrepo
enabled=1
gpgcheck=0
Enter fullscreen mode Exit fullscreen mode

yum 메타데이터를 업데이트합니다:

sudo yum clean metadata
sudo yum makecache
Enter fullscreen mode Exit fullscreen mode

이제 yum install 명령을 실행하면 yum이 먼저 로컬 저장소에서 패키지를 검색합니다. 로컬 리포지토리에서 패키지를 찾을 수 없는 경우 구성된 다른 리포지토리에서 패키지를 검색합니다.

위의 예에서 저장소에 액세스하기 위해 파일 프로토콜(file://)을 사용했으며 http, https, ftp 등의 다른 프로토콜도 사용할 수 있습니다.

또한 보안 문제를 방지하기 위해 GPG 키로 패키지에 서명하는 것을 고려할 수 있습니다.
gpg 명령을 사용하여 패키지에 서명하고 .repo 파일의 gpgcheck 값을 1로 업데이트할 수 있습니다.

Latest comments (0)