xbps-alternatives
xbps-alternatives adalah utilitas XBPS untuk mengelola sistem alternatives — mekanisme yang memungkinkan beberapa paket menyediakan fungsionalitas yang sama melalui file yang seharusnya saling konflik, dengan cara membuat symlink dari path umum ke versi spesifik yang dipilih pengguna.
Cara Kerja
Alternatives dikelompokkan dalam group. Setiap group berisi sejumlah symlink yang diterapkan saat group tersebut diaktifkan.
- Saat paket diinstal → alternative group-nya didaftarkan ke database paket (
pkgdb). - Saat paket dihapus → alternative group-nya dihapus dari
pkgdb. Jika masih ada provider lain, provider sebelumnya otomatis menjadi default.
Contoh: nano dan vim keduanya bisa menyediakan /usr/bin/editor. Dengan alternatives, pengguna bisa memilih salah satu tanpa harus menghapus yang lain.
Perintah
Melihat Daftar Alternatives
# Semua alternative group yang terinstal
xbps-alternatives -l
# Alternatives dari paket tertentu
xbps-alternatives -l <paket>
# Group tertentu saja
xbps-alternatives -l -g <group>
# Alternatives yang tersedia di repositori (belum tentu terinstal)
xbps-alternatives -R -l
Mengatur Alternatives
# Set semua group dari suatu paket
xbps-alternatives -s <paket>
# Set hanya group tertentu dari suatu paket
xbps-alternatives -s <paket> -g <group>
Contoh Penggunaan
Ganti Default Editor
# Lihat alternatives untuk group editor
xbps-alternatives -l -g editor
# Ganti ke vim
xbps-alternatives -s vim -g editor
Ganti Versi Java
# Lihat alternatives untuk group java
xbps-alternatives -l -g java
# Gunakan OpenJDK 17
xbps-alternatives -s openjdk17 -g java
Contoh Output
$ xbps-alternatives -l
java:
current: /usr/lib/jvm/java-11-openjdk/bin/java -> /usr/bin/java
available:
java-11-openjdk: /usr/lib/jvm/java-11-openjdk/bin/java (current)
java-17-openjdk: /usr/lib/jvm/java-17-openjdk/bin/java
editor:
current: /usr/bin/vim -> /usr/bin/editor
available:
nano: /usr/bin/nano
vim: /usr/bin/vim (current)
Provider yang sedang aktif ditandai dengan (current).
Perbandingan dengan Distro Lain
| Distro | Tool | Contoh Perintah |
|---|---|---|
| T4n OS / Void | xbps-alternatives | xbps-alternatives -s <paket> -g <group> |
| Debian / Ubuntu | update-alternatives | update-alternatives --config <group> |
| Arch Linux | Tidak ada bawaan | — |
File Terkait
| Path | Keterangan |
|---|---|
/var/db/xbps/pkgdb-0.38.plist | Database paket tempat alternatives dicatat |
/etc/xbps.d/ | Konfigurasi XBPS kustom |
/usr/share/xbps.d/ | Konfigurasi XBPS default sistem |
Referensi
man xbps-alternatives- xbps-alternatives(1) — Void Linux manpages