명령어/Linux

[RHEL] createrepo_c rpm 디렉토리를 yum 레포로 만들기

jykim23 2026. 7. 16. 17:43
반응형

부제: rpm 몇 개를 dnf가 아는 레포로 바꾼다

createrepo_c /srv/repo           # 디렉토리를 레포로 색인
createrepo_c --update /srv/repo  # 바뀐 것만 갱신
createrepo_c -v /srv/repo        # 상세 출력
Usage:
  createrepo_c [OPTION?] <directory_to_index>

Program that creates a repomd (xml-based rpm metadata) repository from a set of rpms.

  -V, --version    Show program's version number and exit.
  -q, --quiet      Run quietly.
  -x, --excludes=PACKAGE_NAME_GLOB   Path patterns to exclude.
  -u, --baseurl=URL   Optional base URL location for all files.

createrepo_c는 rpm이 모인 디렉토리를 훑어 repodata/(repomd.xml과 메타데이터)를 만든다. 이게 있어야 dnf/yum이 그 디렉토리를 레포로 인식한다. 데비안에서 dpkg-scanpackagesreprepro가 하는 일에 해당한다. 이름 뒤 _c는 C로 다시 구현한 버전이라는 뜻으로, 옛 파이썬 createrepo보다 빠르다.

이렇게도 쓴다

패키지 하나만 추가했을 때 전체 재색인 없이 갱신한다.

createrepo_c --update /srv/repo

 

특정 패턴의 패키지를 색인에서 제외한다.

createrepo_c --excludes '*-debuginfo-*' /srv/repo

 

빌드 결과물을 레포 디렉토리로 옮기고 색인한다.

cp ~/rpmbuild/RPMS/x86_64/*.rpm /srv/repo/ && createrepo_c /srv/repo

 

그룹 정보(comps)를 포함해 색인한다.

createrepo_c -g comps.xml /srv/repo

 

색인 결과 메타데이터가 생겼는지 확인한다.

createrepo_c /srv/repo && ls /srv/repo/repodata
반응형