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 -f wajib 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

FiturPerintahKeterangan
Downgradexdowngrade <file.xbps>Downgrade via file cache lokal
Holdxbps-pkgdb -m hold <paket>Cegah paket diperbarui saat update sistem
Unholdxbps-pkgdb -m unhold <paket>Lepas hold
Repolockxbps-pkgdb -m repolock <paket>Paksa update hanya dari repositori asal
Repounlockxbps-pkgdb -m repounlock <paket>Lepas repolock
Ignoreignorepkg=<paket> di xbps.dIzinkan hapus paket meski ada dependensi
Virtual pkgvirtualpkg=<alias>:<paket> di xbps.dBuat alias paket yang diarahkan ke paket nyata

Referensi


@T4n-Labs · @Gh0sT4n