Membuat Metadata Repository Lokal dengan createrepo_c

Saat menyiapkan repository lokal untuk lab CloudStack, saya perlu mengumpulkan package RPM di server staging agar instalasi ke server target bisa dilakukan tanpa akses internet. Setelah package terkumpul, langkah berikutnya adalah membuat metadata menggunakan createrepo_c.

Fungsi createrepo_c

createrepo_c adalah tool untuk membuat metadata repository dari kumpulan file RPM. Metadata ini menjadi indeks yang digunakan DNF untuk mengetahui package yang tersedia, versi, lokasi file, dan dependensi.

Gampangnya sih, RPM adalah packagenya, sedangkan metadata adalah daftar informasi package tersebut. Hasil prosesnya disimpan dalam direktori repodata. Debian Manpages

Untuk kebutuhan offline, package beserta dependensinya harus disiapkan terlebih dahulu sebelum metadata dibuat.

Contoh penggunaan di Rocky Linux 9

Jalankan perintah berikut sebagai root. Contoh ini menggunakan direktori /srv/repo-lokal yang sudah berisi package RPM.

1. Install createrepo_c

Lakukan saat repository sumber masih dapat diakses:

dnf install -y createrepo_c

Paket ini menyediakan perintah untuk membuat metadata repository. Documentation

2. Buat metadata repository

Periksa file RPM yang tersedia:

ls /srv/repo-lokal/*.rpm

Kemudian jalankan:

createrepo_c /srv/repo-lokal

Perintah tersebut membaca informasi paket dan membuat direktori repodata. Untuk memeriksa hasilnya:

ls /srv/repo-lokal/repodata/

Salah satu file yang akan tersedia adalah repomd.xml, yang menjadi acuan metadata repository. Debian Manpages

Agar bisa digunakan oleh DNF, repository tersebut juga perlu didaftarkan melalui file konfigurasi .repo.

Jika ada package baru atau perubahan

Setelah menambah, mengganti, atau menghapus RPM, perbarui metadata:

createrepo_c --update /srv/repo-lokal

Opsi --update memanfaatkan metadata lama untuk paket yang tidak berubah, sehingga prosesnya dapat lebih cepat. Informasi paket baru dan perubahan isi repository akan masuk ke metadata terbaru. Debian Manpages

Pada server, refresh cache DNF. Misalnya repository tersebut sudah terdaftar dengan ID repo-lokal:

dnf --disablerepo='*' --enablerepo=repo-lokal --refresh makecache

createrepo_c --update memperbarui indeks di sisi repository, sedangkan dnf makecache memperbarui cache metadata di sisi pengguna. Instalasi atau upgrade paket tetap dilakukan melalui perintah DNF yang sesuai. DNF @DNF_VERSION@-1 documentation

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *