yum이란? / yum 로컬 리포지토리 설정

NANA·2024년 6월 14일
0

LinuxStudy

목록 보기
4/5


얘는 유미 ㅋ

예전에도 두어 번 저장해둔 내용이지만 걍 링크 긁어온 수준이라 다시 씀

출처 : https://myminju.tistory.com/21
https://boring-notes.tistory.com/entry/CentOS-local-YUM-Repository-%EB%A7%8C%EB%93%A4%EA%B8%B0

yum?

  • Yellowdog Update Modified의 약자로 레드햇 계열의 리눅스에서 사용하는 패키지 설치 관리 도구다.
  • 패키지 의존성 문제를 자동으로 처리 : 설치, 업데이트, 삭제를 진행 → Spring(=rpm)에서 안되던 dependency 주입을 Springboot(=yum)에서 해주는 것과 유사(설명이 너무 찰떡이다 원글님 너무 감사합니다 감사합니다)

yum 로컬 리포지토리 설정

  • 기본적으로 yum은 인터넷 상의 패키지 저장소 서버로부터 패키지를 다운 받아온다.(/etc/yum.conf와 /etc/yum.repos.d/에 패키지 저장소 서버 정보가 있음)
  • 폐쇄망의 경우 인터넷이 되지 않기 때문에 서버의 로컬 환경에 저장소(리포지토리)를 구성할 필요가 있다.
  • 기본적으로 linux 배포판에는 yum 저장소가 포함돼있다. 다만 인터넷 연결이 안된 상황에서는 저장소 내부의 패키지를 최신 버전으로 업데이트 하기 힘들다.(인터넷 되는 환경에서 최신 패키지를 가져와서 로컬 저장소에 복사하는 식으로 관리를 해야하는 듯..)
  1. local repository가 위치할 폴더 만들기
    나는 /opt 디렉토리 아래에 localrepo라는 이름의 디렉토리를 생성했다.
    왜 opt였냐 하면.. 추가 응용프로그램 패키지 설치 장소라 그래서.. /usr와 고민을 많이했다. 리눅스 디렉토리에 대한 감각도 더 키워야할 듯.
    https://inpa.tistory.com/entry/LINUX-%F0%9F%93%9A-%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EA%B5%AC%EC%A1%B0
  1. OS iso 파일을 마운트
  • 마운트 ? 마운트는 파일 시스템을 특정 디렉토리에 연결하는 과정을 의미합니다. 예를 들어, 외장 하드 드라이브나 USB 드라이브를 시스템에 연결하여 그 안의 파일에 접근할 수 있도록 하는 것입니다.

  • 서버를 처음 구성하고 centOS를 설치할 때 iso 이미지 파일을 사용했다. 그럼 서버 내에 이미 iso가 있는거 아냐?? 하고 챗사수께 여쭤봤더니 그게 아니란다. 윈도우 설치할 때 cd를 사용하고 설치 완료 후에 도로 뺀 것과 비슷한듯? 이제 나는 윈도우 cd 내에 있는 다른 것들을 다시 받고 싶으니 cd를 다시 넣어야 한다. 그게 지금의 마운트 과정이다.

  • 마운트 포인트로 사용하는 디렉토리는 /media와 /mnt가 있다. media는 OS에서 자동으로 마운팅해주는 포인트고 mnt는 사용자가 직접 마운트 하는 경로로 사용된다고 한다. 예를 들어 컴퓨터에 usb를 꽂아서 os에 자동으로 마운트 한다면 media 폴더에 위치.. 출처는 위에 있는 링크. 나는 내가 직접 마운트를 해야하므로 mnt 디렉토리에 iso 파일을 옮겨뒀다.

mount -o loop /mnt/CentOS-7-x86_64-DVD-2009.iso /mnt/iso
  • 다음과 같이 입력.루프백 장치(loopback device)를 사용하여 파일을 마운트하겠다는 뜻. (-o 옵션)
    - 루프백 장치(loopback device)는 리눅스에서 일반 파일을 블록 장치처럼 취급하여 마운트할 수 있게 해주는 가상 장치입니다. 이를 통해 ISO 파일과 같은 디스크 이미지 파일을 실제 디스크처럼 시스템에 마운트하고, 그 내용을 탐색할 수 있습니다.
    -> 하드웨어가 필요 없고 다양한 파일 형식을 블록 장치처럼 마운트할 수 있다.
  1. package 복사 + 붙여넣기
    마운트를 완료하면 iso 안에 있던 파일들이 보임. 이 중에 Packages 폴더를 내가 로컬 리포지토리로 사용할 경로에 복사 + 붙여넣기.
  1. yum 리포지토리 지정
    packages를 붙여넣기한 경로를 yum 리포지토리라고 지정을 해야한다. 이 때 createrepo 명령어를 사용해야하는데..
root@localhost localrepo]# createrepo /opt/localrepo
-bash: createrepo: command not found

ㅋ createrepo command를 모른대ㅋ 당연함.
createrepo도 설치해서 써야하는 도구임.

그래서 packages 안에 있는 createrepo.rpm을 먼저 설치 해보기로 한다.

ㅋ..
createrepo를 설치하려면 의존성 패키지들이 설치가 안돼있어서 설치 못한다고 나옴.. 그래서 또 필요한 의존성들을 다 설치해주고 createrepo 패키지까지 설치함.

이젠 createrepo 명령이 된다!

rpm -Uvh(upgrade, verbose, hash --> 이미 설치된 패키지가 있으면 업그레이드, 없으면 새로 설치 / 자세한 정보 출력 / 설치 진행 상황을 '#' 해시 마크로 표시)

worker들아 열심히 일했구나..

  • Worker(작업자 프로세스) : 컴퓨팅에서 여러 작업을 병렬로 수행하기 위해 사용되는 개념

명령어 하나 칠 때마다 모르는 개념이 7억 개씩 나와서 당황스럽다..^^

  1. /etc/yum.repos.d 에 local.repo설정
    이제 /etc/yum.repos.d 위의 경로를 로컬 리포지토리로 설정하는 파일을 만들어야하는데.. /etc/yum.repos.d가 없다;;
    yum이 제대로 설치되지 않았다면 저게 없다는데, 아무래도 OS를 min 버전으로 설치해서 정말 최소한의 패키지만 들어있었던 듯.. 다음부턴 절대로 min을 쓰지 않으리..

다시 packages에서 yum 관련 rpm들을 전부 설치했다. 그랬더니 /etc/yum.repos.d 경로와 repo 설정 파일들이 생성됨!

vi local-CentOS-7.repo

파일을 생성한다.

[CentOS7-local-repo] 
name=CentOS Local Repository // 리포지토리 ID를 설정한다. YUM 설정 파일에서 리포지토리를 식별하는데 사용된다.

baseurl=file:///root/local-repo/CentOS-7 // 리포지토리가 위치한 경로를 설정한다. 
gpgcheck=0 // GPG 서명 검사 비활성화(뭔지 모름)
enabled=1 // 리포지토리 활성화

이 때 다른 repo 파일들의 enabled를 0으로 만들고 다른 곳으로 백업해두는게 좋다. (yum.repos.d에 local.repo만 있도록)

  1. 확인

되네요~ㅋ
끝!

profile
기술블로그 그런 거창한 거 아닙니다. 일기에요 일기

0개의 댓글