XBPS — Advanced Usage
Halaman ini membahas penggunaan lanjutan XBPS yang berguna untuk skenario khusus seperti downgrade, mencegah update paket tertentu, mengelola konflik dependensi, dan membuat paket virtual.
Downgrade Paket
XBPS mendukung downgrade paket ke versi tertentu. File paket lama yang pernah diinstal biasanya masih tersimpan di cache /var/cache/xbps/.
Via xdowngrade (Disarankan)
Cara termudah menggunakan xdowngrade dari paket xtools:
sudo xbps-install -S xtools # Instal xtools jika belum ada
sudo xdowngrade /var/cache/xbps/paket-1.0_1.xbps
Via XBPS Manual
Jika file paket lama tersedia di cache atau diperoleh dari sumber lain, daftarkan dulu ke repositori lokal:
sudo xbps-rindex -a /var/cache/xbps/paket-1.0_1.xbps
Lalu instal dengan flag -f untuk memaksa instalasi ulang:
sudo xbps-install -R /var/cache/xbps/ -f paket-1.0_1
Flag
-fwajib digunakan untuk downgrade atau reinstall paket yang sudah terinstal.
Hold Paket (Cegah Update)
Untuk mencegah paket tertentu diperbarui saat menjalankan system update:
sudo xbps-pkgdb -m hold <paket>
Lepas hold agar paket bisa diperbarui kembali:
sudo xbps-pkgdb -m unhold <paket>
Cek status hold semua paket:
xbps-query -l | grep " h "
Hold berguna misalnya saat menggunakan kernel atau driver yang sudah dikustomisasi dan tidak ingin ditimpa oleh versi baru dari repositori.
Repolock Paket
Jika paket dibangun dari xbps-src dengan template atau opsi kustom, gunakan repolock agar paket tersebut hanya diperbarui dari repositori yang sama — tidak bisa ditimpa oleh repositori resmi:
sudo xbps-pkgdb -m repolock <paket>
Lepas repolock:
sudo xbps-pkgdb -m repounlock <paket>
Berbeda dengan hold, repolock masih mengizinkan update dari repositori asal paket tersebut diinstal.
Ignore Paket
Terkadang paket yang ingin dihapus tidak bisa dihapus begitu saja karena menjadi dependensi paket lain. Contoh umum: mengganti sudo dengan doas, namun sudo adalah dependensi dari base-system.
Solusinya adalah dengan men-ignore paket tersebut. Buat atau edit file konfigurasi di /etc/xbps.d/:
sudo mkdir -p /etc/xbps.d
echo "ignorepkg=sudo" | sudo tee /etc/xbps.d/ignore.conf
Setelah itu paket dapat dihapus:
sudo xbps-remove sudo
Untuk mengabaikan beberapa paket sekaligus:
ignorepkg=sudo vim nano
Paket yang di-ignore tidak akan diinstal ulang secara otomatis saat update, meskipun ada paket lain yang membutuhkannya sebagai dependensi.
Virtual Package
Virtual package adalah alias yang mengarahkan permintaan instalasi ke paket nyata. Berguna untuk menjaga agar sistem selalu menggunakan versi kernel atau paket tertentu tanpa perlu mengubah konfigurasi di banyak tempat.
Buat atau edit file konfigurasi di /etc/xbps.d/:
echo "virtualpkg=linux:linux6.6" | sudo tee /etc/xbps.d/virtual.conf
Dengan konfigurasi di atas, setiap kali ada paket yang membutuhkan linux, XBPS akan menggunakan linux6.6 sebagai penggantinya.
Format konfigurasi:
virtualpkg=<nama_virtual>:<nama_paket_nyata>
Contoh penggunaan lain — arahkan cron ke cronie:
virtualpkg=cron:cronie
Ringkasan Fitur Lanjutan
| Fitur | Perintah | Keterangan |
|---|---|---|
| Downgrade | xdowngrade <file.xbps> | Downgrade via file cache lokal |
| Hold | xbps-pkgdb -m hold <paket> | Cegah paket diperbarui saat update sistem |
| Unhold | xbps-pkgdb -m unhold <paket> | Lepas hold |
| Repolock | xbps-pkgdb -m repolock <paket> | Paksa update hanya dari repositori asal |
| Repounlock | xbps-pkgdb -m repounlock <paket> | Lepas repolock |
| Ignore | ignorepkg=<paket> di xbps.d | Izinkan hapus paket meski ada dependensi |
| Virtual pkg | virtualpkg=<alias>:<paket> di xbps.d | Buat alias paket yang diarahkan ke paket nyata |
Referensi
- Dokumentasi Advanced Usage — Void Linux Handbook
man xbps-pkgdb— opsi lengkap manajemen database paketman xbps.d— format file konfigurasi XBPS