티스토리 뷰

728x90
반응형

yum , apt 를 통해서 패키지를 설치 하거나 업데이트 를 하게 되는데  패키지들의 위치를 지정해주는 것이 repository 이다.
경로로는  RHEL - /etc/yum.repos.d/ [이름].repo  , Debian - /etc/apt/sources.list 이다.
RHEL 은 YUM , DNF   를 사용 하고 debian 계열은 apt , apt-get 을 사용하고...
RHEL 은 역시 RPM 이라는 패키징 을 사용 하고  debian 은 deb 라는 패키지를 사용 하게 된다.
git 같은 형상관리 사이트 들이 워낙 잘되어 있고 curl , wget 같은 바이너리 를 이용해서 웹에서 직접 받아오며 설치를
진행 을 많이 하기 때문에 rpm , deb 를 직접 받아서 설치 하는 일이 많이 줄었고 ...
나도 요즘 가물가물 하다.... rpm , deb 설치 하는 법이.. 그래서 조금 정리 해볼까 하는데
실무에서는 외부 네트워크가 연결이 되지 않고 private 네트워크 를 사용하는 곳이 많아 편리하게 사용할수 있는 툴 들을 설치 하지 못하거나 커널 관리 용 툴들을 설치 하지 않아서 불편 할때 local repository 를 구성해서 설치 , 업데이트 를 하곤한다.
간단히 말하면...

  • 파일을 패키지 형태로 제공하여 쉽게 설치 및 관리할 수 있도록 하기 위해 패키지 관리자를 사용한다.
  • 패키지 관리자는 각각의 배포판마다 다르지만, 보통 dpkg나 yum 등이 있습니다. 따라서 패키지 관리자가 무엇인지와 어떤 배포판을 사용하는지에 따라서 달라질 수 있습니다.

 
 
 

목차

    1. RHEL Local repository
    2. debian  Local repository


    Linux local repository 

    우선 local repository 를 만드는건  외부 네트워크가 연결이 되지 않아서가 가장 큰 이유이고 또는 외부 연결을 통해 최신 버전 까지 올리 필요가 없을때도 사용 되긴 한다...
    이말은 리눅스 설치시 사용했던 DVD , ISO 파일을 이용 한다는 뜻이고 온프레미스 환경 이거나 vm 환경이건 repo 로 활용할 리눅스가 필요하다.
    DVD , ISO 를 연결 하고 마운트 해서 임시로 사용 하고 연결을 해제 하거나 마운트 후 파일들을 모두 옮겨서 로컬스토리지 공간에 복사해서 사용 할수 있다.
    이 포스트 는 vm 을 이용해서 iso 파일을 마운트 해서 사용 하는 방법으로 진행 한다.


    RHEL local repository 설정

    VM DVD 에 리눅스 iso 를 연결 하고 dvd 를 마운트한 다음 repository 를 만든 는 순서로 진행 하자.
    1. vm 에 ISO 파일 연결
    2. ISO 파일 마운트 
    3. repository 생성
     
    dvd, iso 를 연결 하고 마운트 하려면 sr0 을 폴더에 연결 해주면 되는데
     

    $ ls -al /dev/sr0 
    ## 디바이스 sr0 을 확인하다 sr0 이 dvd장치 이다.
    $ mkdir -p /mnt/dvd/
    ## /mnt/dvd/ 라는 디렉토리로 마운트할 경로를 만들어 준다.
    
    $ mount /dev/sr0 /mnt/dvd/
    ## /mnt/dvd 에 마운트 한다.
    mount 와 내용 확인

     
    위 과정은 DVD,ISO 파일을 마운트 하는 과정이고 rhel ,debian 모두 동일 하다.
    이제 repository 를 설정 하는 방법을 알아보자
     
    repository 를 등록 하는 방법은 손으로다 일일이 다 치는 하드 코딩식에 설저이 있고
    yum-config-manager 를 통해서 간단히 넣는 방법이 있고 하다... ( rhcsa 과정 에서 한번 설명 했다.)
    위 명령어는 yum-utils 가 설치가 되어 있어야 한다. ( rhel,centos 6버전 이상 부터 가능)
     

    •  yum-config-manager 로 등록 하는 방법
    $ yum-config-manager --add-repo=file:///mnt/dvd/AppStream --nogpgcheck 
    # /mnt/dvd/Appstream 경로 지정하고 gpgcheck 를 하지 않는 "mnt_dvd_Appstream" 의 이름에 repo 파일을 생성
    
    $ yum-config-manager --add-repo=file:///mnt/dvd/BaseOS --nogpgcheck --name="BaseOS"
    # BaseOS 를 등록

    이제 재대로 작동 하는 지 보자~ Appstream 만 등록 했당

    등록된 파일이 확인되고 yum vim 설치 하니 이미 있다고 한다 잘된거다

    그리고 또 한가지 간편한 방법은 createrepo 명령어를 사용 하는 방법이 있는데..
    createrepo 가 우선 설치가 되어 있어야 하기 때문에;;;;

    $ createrepo /mnt/dvd
    # 명령어와 마운트 된 경로만 넣어 주면 간단하다.
    ## 여기서 에러가 발생 할경우 iso 파일을 읽기전용 으로 마운트 했거나 하는 문제 발생 하는데
    ### 당연한 것이iso 파일을 dvd로 인식해서 쓰기로 열리지 않았을것이다.
    ### mount -o rw /dev/sr0 /mnt/dvd 로 읽기 옵션을 넣어도 동일 하다.
    ## 이럴 때는 그냥 읽기 모드로 마운트 하고 모든파일을 복사 해서 다른 디렉토리에 옮기고 그 디렉토리를 repository 로 사요 하면된다.

    하나더  하드 코딩 하는 방법;;;; rhcsa 시험때 유용 할수 있으나..... 뭐 기본기 다지기로 생각하고 외워도 된다 몇줄 안되니까..

    1 [mnt_dvd_AppStream]
    2 name=created by dnf config-manager from file:///mnt/dvd/AppStream
    3 baseurl=file:///mnt/dvd/AppStream
    4 enabled=1
    5 gpgcheck=0

    1번줄은 파일명 , 2번 은 ''name=' description 이다 , 3번은 baseurl= [URL:경로] , 4번은 enabled=1,0 (활성화 여부) 5, gpgcheck=1,0 ( gpgkey 확인여부)
    추가로 gpgkey=[경로:key] 가 있는데 이건 내가 받게될 패키지들에 repo 가 변조되지 않고 배포하는 쪽에 관리 된다는 그런 차원..
     

     


     

    debian local repository 설정

    데비안 계열인 우분투 , 칼리 등은 좀더 쉬운 편인데  레드헷 계열에 createrepo 처럼 dpkg-dev 가 있다.
    사용법 은!

    $ vi /etc/apt/sources.list
    # sources.list 파일을 수정
    
    ## 내용 
     deb file:/mnt/dvd/ stretch main
    # stretch 는 배포판 코드네임 이다 내가 쓰고 있는 버전에 이름을 써주면 된다.
    
    # 코드네임 확인 방법
    $ lsb_release -c

     
     
    또다른 방법 은 mirror 를 활용 하는 방법인데... 음. 이건좀 번거러워서;;;

    $ sudo apt-get install apt-mirror
    
    $ vi /etc/apt/mirror.list
    #$아래 내용을 넣어 준다
    ######
    debmirror::mirror_locally "/mnt/dvd";
    debmirror::distro "buster";  # 또는 사용하는 Debian 버전에 맞는 codename 입력
    debmirror::arch "amd64";     # 또는 사용하는 아키텍처 입력
    clean;
    ######
    
    $sudo apt-mirror
    이 명령어를 실행하면 /var/spool/apt-mirror 디렉토리에 Debian 패키지 정보가 다운로드 되고
    이제 /mnt/dvd 디렉토리에는 다운로드된 패키지 정보가 복사된다.
    
    #local repository 등록
    ##마지막으로 /etc/apt/sources.list 파일을 열어서 아래와 같이 local repository를 등록합니다.
    
    ####
    deb file:///mnt/dvd buster main
    ####

     
     


     

    마무리

     
    정말 많이 쓸일은 없지만... 가끔 가다 os새로 설치하거나 할때 외부 인터넷 연결 안되면vim 이나 dmidecode 같은거..net-tools 같은거;;
    그럴거 필요할때 사용한다....
    Linux  Local reository 설정 (RHEL , centso , debian) 포스팅은 여기까지~~
    다음은 아마 쿠버네티스타... 요즘 공부하는 

    728x90
    반응형
    댓글