강좌
클라우드/리눅스에 관한 강좌입니다.
네트워크 분류

RockyLinux강좌03 : dnf 패키지관리와 RockyLinux의 Repository

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

ㅇrpm과 yum 명령어의 단점

   - rpm명령어로 패키지 설치/삭제등을 하고자 할때 가장 큰 문제점이 의존성 문제다. 

   - 


ㅇ dnf

   - rpm명령어의 패키지 의존성문제를 해결하기위해 만들어진 것이다. 

   - dnf는 Rocky Linux가 제공하는  rpm파일저장소에서 설치할 rpm파일과 함께 의존성이 있는 다른 rpm파일까지 다운로드해서 설치해준다. 

   - 그래서 rpm패키지를 설치할때 의존성문제를 더이상 고민하지 않아도 된다. 

   - rpm패키지에 의존성문제가 있을경우 문제를 해결할 수 있는 파일을 인터넷에서 자동으로 다운로드 해서 설치한다. 

   - dnf사용시 당연히 네트워크에 연결되어 있어야 한다. 

   - dnf에서 사용하는 저장소의 URL은 /etc/yum.repos.d/ 디렉토리의 파일들에 설정되어 있다. 


e62bab1f17d13d8fb170726c5c896de7_1682486366_77.png 

    - dnf의 설정파일 : /etc/yum.conf

    - dnf가 참조하는 Repository : /etc/yum.repos.d/ 디렉토리에 있는 파일들. 여기에 있는 파일들은 dnf 명령실행시에 해당 패키지파일을 검색하기 위한 네트워크주소가 설정되어 있다. 

   


Rocky Linux의 저장소 기본설정파일 : /etc/yum.repos.d/rocky.repo

  -이 파일의 내용은 다음과 같다.
  -
이 파일에는 아래와 같은 항목들로 구성되어 있다.
    [baseos]

[baseos-debug]

[baseos-source]

[appstream]

[appstream-debug]

[appstream-source]

[crb]

[crb-debug]

[crb-source]

 

위의 각 항목들은  name, baseurl, gpgcheck , gpgkey , mirrorlist ,  enabled  로  구성된다.

[root@sulinux01 yum.repos.d]# cat rocky.repo

# rocky.repo

#

# The mirrorlist system uses the connecting IP address of the client and the

# update status of each mirror to pick current mirrors that are geographically

# close to the client.  You should use this for Rocky updates unless you are

# manually picking other mirrors.

#

# If the mirrorlist does not work for you, you can try the commented out

# baseurl line instead.

 

[baseos]

name=Rocky Linux $releasever - BaseOS

mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever$rltype

#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/os/

gpgcheck=1

enabled=1

countme=1

metadata_expire=6h

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9

 

[baseos-debug]

name=Rocky Linux $releasever - BaseOS - Debug

mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever-debug$rltype

#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/debug/tree/

gpgcheck=1

enabled=0

metadata_expire=6h

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9

 

[baseos-source]

name=Rocky Linux $releasever - BaseOS - Source

mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=BaseOS-$releasever-source$rltype

#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/source/tree/

gpgcheck=1

enabled=0

metadata_expire=6h

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9

 

[appstream]

name=Rocky Linux $releasever - AppStream

mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=AppStream-$releasever$rltype

#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/AppStream/$basearch/os/

gpgcheck=1

enabled=1

countme=1

metadata_expire=6h

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9

 

[appstream-debug]

name=Rocky Linux $releasever - AppStream - Debug

mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=AppStream-$releasever-debug$rltype

#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/AppStream/$basearch/debug/tree/

gpgcheck=1

enabled=0

metadata_expire=6h

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9

 

[appstream-source]

name=Rocky Linux $releasever - AppStream - Source

mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=AppStream-$releasever-source$rltype

#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/AppStream/source/tree/

gpgcheck=1

enabled=0

metadata_expire=6h

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9

 

[crb]

name=Rocky Linux $releasever - CRB

mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=CRB-$releasever$rltype

#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/CRB/$basearch/os/

gpgcheck=1

enabled=0

countme=1

metadata_expire=6h

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9

 

[crb-debug]

name=Rocky Linux $releasever - CRB - Debug

mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=CRB-$releasever-debug$rltype

#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/CRB/$basearch/debug/tree/

gpgcheck=1

enabled=0

metadata_expire=6h

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9

 

[crb-source]

name=Rocky Linux $releasever - CRB - Source

mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=source&repo=CRB-$releasever-source$rltype

#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/CRB/source/tree/

gpgcheck=1

enabled=0

metadata_expire=6h

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9

[root@sulinux01 yum.repos.d]#

 

name : 저장소의 이름이다. 필수설정항목이다.

baseurl :  Rocky Linux 저장소 URL을 설정한다. 여러 개의 baseurl을 설정가능하며, 찾지 못할경우에 설정된 url을 차례대로 검색한다. 필수설정항목이다.

gpgcheck  :
해당패키지의 GPG 서명확인 진행 여(1), (0)을 지정한다. 1로 지정하면 다음항목인  gpgkey  를 반드시 작성해야 한다. 필수설정항목이다.
참고 : GPG(Gnu Privacy Guard) 서명이란 rpm패키지가 정상적인 패키지임을 인증할 때 사용되는 암호화된 서명이다.GPG서명을 확인하게 되면 정상적인 패키지임을 인증하게된다.

gpgkey  : 
바로 앞에 설정한 gpgcheck 의 설정값이 1일경우에 GPG key가 기록된 저장소의 URL을 설정한다. 생략가능하다.

mirrorlist : baseurl
설정값이 없을 경우에 여기에 설정된 URL을 검색한다. 생략가능하다.   

enabled :
설정된 저장소들 가운데  특정 저장소의 사용 여(1), (0)  를 설정한다. 생략시 자동으로 1로 설정됨생략가능하다


ㅇ 패키지 설치

   dnf -y install "패키지명"


   주의할점은 패키지파일명이 아닌 패키지명을 주어야함.


e62bab1f17d13d8fb170726c5c896de7_1682486363_6013.png 


ㅇ 패키지 삭제

   dnf -y remove "패키지명"


e62bab1f17d13d8fb170726c5c896de7_1682486360_7207.png 


ㅇ 설치된 패키지중 업데이트 가능한 패키지 목록

   dnf check-update


  먼저 dnf clean all을 실행하여 dnf관련한 임시파일들을 모두 삭제한다. 

e62bab1f17d13d8fb170726c5c896de7_1682486350_3465.png 


  

e62bab1f17d13d8fb170726c5c896de7_1682487237_461.png

ㅇ 설치된 패키지의 정보를 확인한다. 


   dnf info "패키지명"


  이때.. 설치되어 있거나 설치하고자 하는 패키지에 대한 정보를 확인하기 위해 dnf는 Rocky Linux 저장소(repository)에 접속한다. 

e62bab1f17d13d8fb170726c5c896de7_1682486353_7659.png
 

ㅇ 패키지업데이트

   dnf update "패키지명"

   설치되어 있는 패키지는 업데이트를 진행하고, 설치되어 있지 않은 패키지는 설치를 진행한다. 


   dnf update   
   이렇게만 실행하면  현재 시스템에서 업데이트 가능한 모든 패키지를 업데이트한다. 주의요망!!

e62bab1f17d13d8fb170726c5c896de7_1682486356_7541.png


ㅇ 특정파일의 설치패키지 확인

   dnf provides "파일이름"

 

   특정파일이 어떤 패키지의 설치로 생성이 되어 있는지 확인한다. 


ㅇ 패키지리스트 검색

   dnf list 패키지명
   dnf list mariadb* : mariadb라는 이름이 들어간 패키지들을 리스팅한다. 

e62bab1f17d13d8fb170726c5c896de7_1682490573_4895.png

 

   dnf list all  : 모든 패키지목록 리스팅한다. 

   dnf list available : 설치가능한 패키지 목록 리스팅
   


 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,806 개
  • 현재 접속자 :  84 명