xbps-rindex
xbps-rindex adalah utilitas XBPS untuk mengelola repositori paket biner lokal. Alat ini mengubah direktori biasa menjadi repositori yang dapat dikenali xbps-install dengan membuat dan memelihara file repodata.
Fungsi Utama
| Fungsi | Penjelasan |
|---|---|
| Tambah paket ke repositori | Daftarkan file .xbps ke dalam indeks repositori lokal |
| Bersihkan indeks | Hapus entri usang dari repodata tanpa menghapus file .xbps-nya |
| Hapus paket usang | Hapus file .xbps yang tidak terdaftar di indeks |
| Tandatangani repositori | Tambahkan metadata tanda tangan RSA untuk distribusi remote |
| Tandatangani paket | Tandatangani file .xbps secara individual |
Mode Operasi
| Flag | Fungsi |
|---|---|
-a, --add | Tambahkan paket ke indeks. Paket hanya ditambahkan jika versinya lebih baru; gunakan -f untuk paksa menimpa |
-c, --clean | Bersihkan entri usang dari repodata (tidak menghapus file .xbps) |
-r, --remove-obsoletes | Hapus file .xbps yang sudah tidak terdaftar di indeks |
--sign | Inisialisasi repositori dengan metadata tanda tangan RSA |
--sign-pkg | Tandatangani file .xbps secara individual |
Opsi
| Flag | Keterangan |
|---|---|
-f, --force | Paksa timpa entri yang sudah ada saat menambahkan paket |
-C, --hashcheck | Saat -c, verifikasi hash file (bukan hanya keberadaan file) |
--compression <type> | Format kompresi repodata (default: zstd) |
--privkey <key.pem> | Path kunci RSA privat untuk signing |
--signedby <string> | Identitas penanda tangan repositori |
Contoh Penggunaan
Buat Repositori Lokal Sederhana
mkdir ~/myrepo
cp /path/to/myapp-1.0_1.x86_64.xbps ~/myrepo/
xbps-rindex -a ~/myrepo/*.xbps
Install dari repositori lokal:
sudo xbps-install --repository=~/myrepo myapp
Downgrade Paket via Cache
# Daftarkan paket versi lama dari cache ke indeks
sudo xbps-rindex -a /var/cache/xbps/pkg-1.0_1.x86_64.xbps
# Downgrade dengan force karena versi lebih rendah
sudo xbps-install -R /var/cache/xbps/ -f pkg-1.0_1
Buat Repositori Bertanda Tangan
Generate kunci RSA:
# Dengan ssh-keygen
ssh-keygen -t rsa -b 4096 -m PEM -f private.pem
# Atau dengan openssl
openssl genrsa -out private.pem 4096
Inisialisasi tanda tangan repositori:
xbps-rindex --privkey private.pem --sign --signedby "Nama <email@example.com>" /path/to/repo
Tandatangani paket di dalamnya:
xbps-rindex --privkey private.pem --sign-pkg /path/to/repo/*.xbps
Paket yang ditambahkan di masa depan harus ditandatangani ulang secara manual — tidak otomatis.
Bersihkan Repositori
# Bersihkan entri usang dari indeks
xbps-rindex -c ~/myrepo
# Hapus file .xbps yang tidak terdaftar di indeks
xbps-rindex -r ~/myrepo
Struktur Direktori Repositori
Setelah xbps-rindex -a dijalankan, direktori repositori akan berisi:
| File | Deskripsi |
|---|---|
repodata | File indeks utama berisi metadata semua paket (format plist biner) |
repodata.old | Backup repodata sebelumnya |
*.xbps | File paket biner |
*.xbps.sig2 | File tanda tangan per paket (jika repositori ditandatangani) |
Format file tanda tangan yang digunakan adalah
.sig2, bukan.sig. Format.sigsudah deprecated di XBPS versi modern.
Signed vs Unsigned
| Aspek | Unsigned | Signed |
|---|---|---|
| Keamanan | Tidak ada verifikasi keaslian | Terverifikasi secara kriptografis |
| Penggunaan | Repositori lokal, testing, development | Repositori remote atau produksi |
| Persyaratan | Tidak perlu kunci | Kunci RSA dalam format PEM |
| Perilaku XBPS | Prompt konfirmasi trust key saat pertama | Diverifikasi otomatis setelah key di-trust |
Void Linux mengharuskan repositori remote untuk ditandatangani. Repositori lokal tidak wajib ditandatangani.
Hubungan dengan Tools XBPS Lain
| Command | Peran |
|---|---|
xbps-src | Build paket dari source menggunakan void-packages |
xbps-create | Buat file .xbps dari direktori file |
xbps-rindex | Daftarkan .xbps ke repositori (buat repodata) |
xbps-install -R <repo> | Install paket dari repositori tertentu |
xbps-query -L | Tampilkan daftar repositori aktif |
Catatan Penting
xbps-rindextidak memerlukan root untuk repositori di direktori user. Root diperlukan jika repositori berada di direktori sistem.- Setiap kali menambahkan paket ke repositori signed, jalankan ulang
--sign-pkguntuk menandatangani paket baru. xbps-rindex -amelakukan pengecekan konsistensi shared library saat paket ditambahkan.- Distribusikan file
private.pem.pubke pengguna agar mereka dapat memverifikasi tanda tangan repositori.
Referensi
man xbps-rindex- xbps-rindex(1) — Void Linux manpages