xbps-create

xbps-create adalah utilitas XBPS untuk membuat paket biner .xbps dari file-file yang disimpan dalam suatu direktori. File harus memiliki permission yang benar dan lokasi yang sesuai di dalam direktori tersebut.

Ini adalah alat untuk pembuat paket — pengguna akhir umumnya tidak perlu menggunakannya secara langsung karena xbps-src menangani proses ini secara otomatis.

Penggunaan

xbps-create [OPSI] <destdir>

destdir adalah direktori yang berisi file-file dengan struktur seperti di sistem tujuan (contoh: usr/bin/, etc/, usr/share/).

Opsi

Metadata Paket

FlagKeterangan
-n, --pkgver <string>Nama dan versi paket, format: nama-versi_revision (wajib)
-A, --architecture <str>Arsitektur target (wajib). Gunakan noarch jika tidak arch-spesifik
-s, --desc <string>Deskripsi singkat, satu baris kurang dari 80 karakter
-S, --long-desc <string>Deskripsi panjang
-H, --homepage <string>URL homepage proyek
-l, --license <string>Lisensi paket
-m, --maintainer <string>Nama dan/atau email maintainer
-t, --tags <list>Daftar tag/kategori, dipisah spasi. Contoh: 'development nonfree'
-c, --changelog <string>String changelog paket
-B, --built-with <string>String builder, format bebas

Dependensi dan Konflik

FlagKeterangan
-D, --dependencies <list>Daftar dependensi, dipisah spasi. Contoh: 'foo>=1.0 blah-1.0_1'
-C, --conflicts <list>Daftar paket yang konflik. Contoh: 'foo>=1.0 blah<1.0'
-R, --replaces <list>Daftar paket yang digantikan. Contoh: 'foo>=1.0 blah>=2.0'
-r, --reverts <list>Daftar versi yang di-revert. Contoh: '2.0_1 2.1_1'
-P, --provides <list>Daftar virtual package yang disediakan. Contoh: 'virtualpkg-9999'

File

FlagKeterangan
-F, --config-files <list>Daftar file konfigurasi yang disediakan paket, dipisah spasi
-M, --mutable-files <list>Daftar file mutable yang disediakan paket, dipisah spasi
-p, --preserveJika diset, file paket akan dipertahankan setelah update

Shared Library

FlagKeterangan
--shlib-provides <list>Shared library yang disediakan. Contoh: 'libfoo.so.2 libbar.so.1'
--shlib-requires <list>Shared library yang dibutuhkan. Contoh: 'libz.so.1 libfoo.so.2'

Alternatives

FlagKeterangan
--alternatives <list>Daftar alternatives yang disediakan paket, dipisah spasi. Format: group:symlink:target

Contoh: 'editor:/usr/bin/editor:/usr/bin/vim'

Jika symlink adalah path relatif, symlink akan dibuat relatif terhadap target.

Build & Kompresi

FlagKeterangan
--compression <format>Format kompresi: none, gzip, bzip2, xz, lz4, zstd (default: zstd)
--build-options <string>String opsi build yang digunakan dalam paket
--sourcepkg <string>pkgver dari source package yang digunakan untuk build
-G, --source-revisions <str>Git revision dari source package (diset otomatis oleh xbps-src)

Contoh Penggunaan

# Siapkan struktur direktori destdir
mkdir -p myapp-1.0_1/usr/bin
mkdir -p myapp-1.0_1/usr/share/myapp
cp myprogram myapp-1.0_1/usr/bin/
cp data/* myapp-1.0_1/usr/share/myapp/

# Buat paket .xbps
xbps-create \
    -n myapp-1.0_1 \
    -A x86_64 \
    -s "My awesome application" \
    -S "A longer description of what myapp does." \
    -H "https://example.com/myapp" \
    -l "MIT" \
    -m "Your Name <you@example.com>" \
    -D 'libfoo>=1.0' \
    myapp-1.0_1

Output: myapp-1.0_1.x86_64.xbps

Langkah Selanjutnya

Setelah paket biner dibuat:

# Tambahkan ke repositori lokal
xbps-rindex -a myapp-1.0_1.x86_64.xbps

# Instal dari repositori lokal
sudo xbps-install --repository=/path/ke/repo myapp

# Periksa isi paket
xbps-query -f myapp

Catatan

  • File dalam destdir harus memiliki permission yang benar karena akan digunakan langsung saat instalasi.
  • xbps-create hanya menerima regular file, symlink, dan direktori. Socket dan FIFO tidak didukung.
  • Format kompresi default adalah zstd.

Referensi


@T4n-Labs · @Gh0sT4n