repo 관리하기
설정파일
repo 설정 /etc/yum.repo.d/
repo list 보기
$ dnf repolist
repo id repo name
appstream Navix 9 - appstream
baseos Navix 9 - baseos
codeready Navix 9 - codeready
highavailability Navix 9 - highavailability
resilientstorage Navix 9 - resilientstorage
updates Navix 9 - updatesrepo 활성/비활성
sudo dnf install epel-release
sudo dnf config-manager --set-enabled epeldnf config-manager 상세 설명
dnf config-manager는 DNF 패키지 매니저의 설정을 관리하는 도구입니다.
기본 사용법
repository 관리
# repository 활성화
dnf config-manager --set-enabled repository_name
# repository 비활성화
dnf config-manager --set-disabled repository_name
# repository 추가
dnf config-manager --add-repo https://example.com/repo.repo
# repository 목록 확인
dnf config-manager --dump설정 옵션 변경
# 특정 repo 설정 변경
dnf config-manager --save --setopt=repo_name.option=value
# 전역 설정 변경
dnf config-manager --save --setopt=option=value
# 임시 설정 (저장하지 않음)
dnf config-manager --setopt=option=value주요 설정 옵션들
# 메타데이터 캐시 만료 시간 설정 (초)
dnf config-manager --save --setopt=metadata_expire=7200
# 최대 동시 다운로드 수 설정
dnf config-manager --save --setopt=max_parallel_downloads=10
# 패키지 캐시 유지 여부
dnf config-manager --save --setopt=keepcache=True
# GPG 체크 활성화/비활성화
dnf config-manager --save --setopt=repo_name.gpgcheck=1고급 사용 예제
proxy 설정
# HTTP 프록시 설정
dnf config-manager --save --setopt=proxy=http://proxy.example.com:8080
# 인증이 필요한 프록시
dnf config-manager --save --setopt=proxy=http://user:pass@proxy.example.com:8080
# 프록시 제외 호스트
dnf config-manager --save --setopt=proxy_username=user
dnf config-manager --save --setopt=proxy_password=password미러 설정
# 특정 repo의 baseurl 변경
dnf config-manager --save --setopt=baseos.baseurl=http://mirror.example.com/baseos/
# metalink 설정
dnf config-manager --save --setopt=baseos.metalink=http://mirrors.example.com/metalink
# mirrorlist 설정
dnf config-manager --save --setopt=baseos.mirrorlist=http://mirrors.example.com/mirrorlist설정 확인 및 디버깅
# 특정 repo 설정 전체 확인
dnf config-manager --dump baseos
# 모든 설정 확인
dnf config-manager --dump
# 활성화된 repo만 확인
dnf config-manager --dump | grep -A 20 "\[.*\]" | grep "enabled = 1" -B 1
# 설정 파일 위치 확인
dnf config-manager --dump | grep "config file"특정 repository에서 패키지 제외
Set exclude using dnf config-manager
# 특정 repo에서 kernel* 패키지 제외
dnf config-manager --save --setopt=baseos.excludepkgs=kernel*
# 여러 패키지 제외 (쉼표로 구분)
dnf config-manager --save --setopt=baseos.excludepkgs=kernel*,systemd*
# 글로벌 exclude 설정 (모든 repo에 적용)
dnf config-manager --save --setopt=excludepkgs=kernel*exclude 설정 확인
Verify exclude settings
# repository 설정 확인
dnf config-manager --dump baseos | grep excludepkgs
# 전체 설정 확인
dnf config-manager --dump | grep excludepkgsexclude 설정 제거
# 특정 repo의 exclude 제거
dnf config-manager --save --setopt=baseos.excludepkgs=
# 글로벌 exclude 제거
dnf config-manager --save --setopt=excludepkgs=문제 해결
설정 초기화
# 특정 옵션 기본값으로 복원
dnf config-manager --save --setopt=option=
# 설정 파일 백업 및 복원
cp /etc/dnf/dnf.conf /etc/dnf/dnf.conf.backup
cp /etc/dnf/dnf.conf.backup /etc/dnf/dnf.conf캐시 관리
# 메타데이터 캐시 정리
dnf clean metadata
# 모든 캐시 정리
dnf clean all
# 캐시 다시 생성
dnf makecache자주 사용하는 명령어 조합
# repo 추가 후 즉시 활성화
dnf config-manager --add-repo https://example.com/repo.repo
dnf config-manager --set-enabled repo_name
# repo 비활성화 후 설정 확인
dnf config-manager --set-disabled repo_name
dnf repolist --disabled
# 설정 변경 후 검증
dnf config-manager --save --setopt=baseos.excludepkgs=kernel*
dnf config-manager --dump baseos | grep excludepkgs