Tag: rpm

  • Membuat Metadata Repository Lokal dengan createrepo_c

    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