xbps-uhelper

xbps-uhelper adalah utilitas helper XBPS untuk mengolah string paket, versi, dan pola dependensi. Lebih ditujukan untuk scripting dan pengembangan paket daripada penggunaan sehari-hari.

Penggunaan

xbps-uhelper [OPSI] ACTION [ARGUMEN ...]

Actions

Ekstraksi dari pkgver

ActionArgumenOutput
getpkgname<pkgver...>Nama paket dari string pkgver
getpkgversion<pkgver...>Versi dari string pkgver
getpkgrevision<pkgver...>Revisi dari string pkgver
getname<pkgver\|dep...>Nama paket — bisa dari pkgver atau pola dep
getversion<pkgver\|dep...>Versi — bisa dari pkgver atau constraint dep

Ekstraksi dari Pola Dependensi

ActionArgumenOutput
getpkgdepname<dep...>Nama paket dari pola dependensi
getpkgdepversion<dep...>Constraint versi dari pola dependensi

Perbandingan dan Pencocokan

ActionArgumenOutput
cmpver<instver> <reqver>Bandingkan dua string versi — lihat exit codes di bawah
pkgmatch<pkgver> <pkgpattern>Cek apakah pkgver cocok dengan pola

Informasi Paket Terinstall

ActionArgumenOutput
version<pkgname...>Versi paket yang terinstall
real-version<pkgname...>Versi "real" (relevan untuk virtual/metapackage)

Informasi Sistem

ActionArgumenOutput
arch-Arsitektur native XBPS
getsystemdir-Direktori konfigurasi sistem (/usr/share/xbps.d)
binpkgarch<binpkg...>Arsitektur dari file paket biner
binpkgver<binpkg...>pkgver dari file paket biner

Opsi

FlagKeterangan
-C, --config <dir>Tentukan direktori konfigurasi XBPS
-r, --rootdir <dir>Tentukan direktori root target
-v, --verboseTampilkan hasil perbandingan ke stdout (untuk cmpver dan pkgmatch)
-d, --debugTampilkan informasi debug ke stderr
-V, --versionTampilkan versi XBPS

Contoh Penggunaan

Parsing pkgver

xbps-uhelper getpkgname firefox-120.0_1
# firefox

xbps-uhelper getpkgversion firefox-120.0_1
# 120.0

xbps-uhelper getpkgrevision firefox-120.0_1
# 1

getname dan getversion lebih fleksibel — bisa menangani pkgver maupun pola dependensi:

xbps-uhelper getname firefox-120.0_1
# firefox

xbps-uhelper getname 'gtk+>=3.0'
# gtk+

Parsing Pola Dependensi

xbps-uhelper getpkgdepname 'gtk+>=3.0'
# gtk+

xbps-uhelper getpkgdepversion 'gtk+>=3.0'
# >=3.0

Membandingkan Versi

xbps-uhelper cmpver 'foo-1.0_1' 'foo-2.0_1'
echo $?   # 1 → instver < reqver

xbps-uhelper cmpver 'foo-2.0_1' 'foo-1.0_1'
echo $?   # 255 → instver > reqver

xbps-uhelper -v cmpver 'foo-1.0_1' 'foo-2.0_1'
# 1.0 < 2.0

Exit codes cmpver:

Exit CodeArti
0instver == reqver
1instver < reqver
255instver > reqver

Mencocokkan Paket dengan Pola

xbps-uhelper pkgmatch firefox-120.0_1 'firefox>=100.0'
echo $?   # 1 → match

xbps-uhelper pkgmatch firefox-1.0_1 'firefox>=100.0'
echo $?   # 0 → tidak match

xbps-uhelper -v pkgmatch firefox-1.0_1 'firefox>=100.0'
# firefox-1.0_1 does not match firefox>=100.0

Exit codes pkgmatch:

Exit CodeArti
1Match
0Tidak match
255Error

Informasi Sistem dan Paket

xbps-uhelper arch
# x86_64

xbps-uhelper getsystemdir
# /usr/share/xbps.d

xbps-uhelper version firefox xbps
# 120.0_1
# 0.68_1

Kompatibilitas: digest dan fetch

Action digest dan fetch masih tersedia di xbps-uhelper untuk kompatibilitas mundur dengan skrip lama, meski tidak dicantumkan di --help. Disarankan menggunakan utilitas mandiri yang lebih baru:

Action LamaGanti Dengan
xbps-uhelper digest <file>xbps-digest
xbps-uhelper fetch <url>xbps-fetch

Catatan Penting

  • Semua operasi bersifat case-sensitive.
  • Exit codes cmpver dan pkgmatch berbeda dari konvensi Unix standar — 1 bukan berarti error, tapi memiliki arti semantik sendiri. Perhatikan ini saat scripting.
  • Gunakan flag -v untuk mendapatkan output teks dari cmpver dan pkgmatch, bukan hanya exit code.

Referensi


@T4n-Labs · @Gh0sT4n