DEV Community

Cover image for Yum Local Repository
Waji
Waji

Posted on • Edited 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로 업데이트할 수 있습니다.

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more