Post

Membuat PKGBUILD Luxury Yacht Agar Bisa Diinstall di Arch Linux

Membuat PKGBUILD Luxury Yacht Agar Bisa Diinstall di Arch Linux

Buat yang sehari-hari kerja dengan Kubernetes, punya GUI yang enak dipakai buat mantau cluster itu lumayan membantu dibanding bolak-balik kubectl di terminal. Kemarin saya nemu Luxury Yacht, app desktop cross-platform buat manage Kubernetes cluster. Rilis resminya buat Linux cuma dalam bentuk .deb, jadi karena saya pakai Arch Linux dan belum ada paketnya di AUR, saya bantu bungkus jadi PKGBUILD supaya bisa diinstall di Arch juga.

Apa itu Luxury Yacht?

Luxury Yacht adalah aplikasi desktop cross-platform untuk mengelola cluster Kubernetes lewat GUI. Dirilis dalam bentuk binary untuk Linux, dan untuk Linux distribusinya berbentuk .deb (jadi target awalnya Debian/Ubuntu-based).

Karena saya pakai Arch Linux dan belum ada paket di AUR, saya extract .deb resminya lalu bungkus ulang jadi PKGBUILD supaya bisa diinstall dengan cara yang wajar di Arch (makepkg, atau nanti lewat AUR helper kalau sudah saya submit ke AUR).

Tampilan Cluster Overview di Luxury Yacht

Package ini masih saya simpan lokal (belum saya submit ke AUR resmi). Kalau kamu mau coba sekarang, ikuti langkah build manual di bawah.

Kenapa harus dibungkus ulang, bukan pasang .deb langsung?

Arch tidak pakai format .deb, dan strukturnya juga beda dari FHS yang dipakai Arch. Ada beberapa hal yang perlu diperbaiki waktu repackage:

  1. Lokasi binary.deb resminya naruh binary di /usr/local/bin/, sementara konvensi Arch naruh binary dari package resmi di /usr/bin/. Jadi di package() saya pindahkan filenya:

    1
    2
    
    install -Dm755 "$pkgdir/usr/local/bin/luxury-yacht" "$pkgdir/usr/bin/luxury-yacht"
    rm -rf "$pkgdir/usr/local"
    
  2. Desktop entry ikut nunjuk ke path lama — file usr/share/applications/luxury-yacht.desktop punya Exec=/usr/local/bin/luxury-yacht, jadi perlu di-patch biar konsisten sama binary yang sudah dipindah:

    1
    
    sed -i 's|/usr/local/bin/|/usr/bin/|' "$pkgdir/usr/share/applications/luxury-yacht.desktop"
    
  3. Dependency GUI — karena app-nya berbasis Electron/webview, saya deklarasikan depends=('gtk3' 'webkit2gtk-4.1') supaya AUR helper otomatis pasang dependency yang dibutuhkan.

  4. Dual arsitektur — Luxury Yacht rilis untuk amd64 dan arm64, jadi PKGBUILD-nya saya buat support x86_64 dan aarch64 sekaligus, masing masing dengan source .deb dan checksum SHA256 sendiri (source_x86_64, source_aarch64, sha256sums_x86_64, sha256sums_aarch64).

Ringkasnya, ini isi PKGBUILD-nya:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
pkgname=luxury-yacht-bin
pkgver=1.10.2
pkgrel=1
pkgdesc="Cross-platform GUI desktop app for managing Kubernetes clusters"
arch=('x86_64' 'aarch64')
url="https://luxury-yacht.app"
license=('GPL-3.0-only')
depends=('gtk3' 'webkit2gtk-4.1')
provides=('luxury-yacht')
conflicts=('luxury-yacht')
options=('!strip' '!debug' '!emptydirs')
source_x86_64=("https://github.com/luxury-yacht/app/releases/download/v${pkgver}/luxury-yacht_v${pkgver}_linux_amd64.deb")
source_aarch64=("https://github.com/luxury-yacht/app/releases/download/v${pkgver}/luxury-yacht_v${pkgver}_linux_arm64.deb")
source=("LICENSE::https://raw.githubusercontent.com/luxury-yacht/app/v${pkgver}/LICENSE")

package() {
    bsdtar -xf data.tar.zst -C "$pkgdir/"
    install -Dm755 "$pkgdir/usr/local/bin/luxury-yacht" "$pkgdir/usr/bin/luxury-yacht"
    rm -rf "$pkgdir/usr/local"
    sed -i 's|/usr/local/bin/|/usr/bin/|' "$pkgdir/usr/share/applications/luxury-yacht.desktop"
    install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

Package .deb itu sendiri isinya arsip data.tar.zst standar Debian, jadi tinggal di-extract pakai bsdtar langsung ke $pkgdir — tidak perlu tool tambahan buat parsing format .deb.

Saya juga pakai .nvchecker.toml biar gampang mantau kalau ada rilis versi baru dari upstream:

1
2
3
4
5
[luxury-yacht-bin]
source = "github"
github = "luxury-yacht/app"
use_latest_release = true
prefix = "v"

Cara Install (Manual Build)

Karena belum ada di AUR, install-nya masih manual:

  1. Clone atau download PKGBUILD-nya dari repo saya di github.com/ilhamset27/luxury-yacht-bin.
  2. Jalankan:

    1
    
    makepkg -si
    

    Command ini otomatis download .deb resmi sesuai arsitektur mesin kamu (x86_64 atau aarch64), verifikasi checksum, build package Arch (.pkg.tar.zst), lalu install sekalian dependency-nya (-i).

  3. Setelah selesai, app-nya bisa dibuka lewat launcher desktop (dicari “Luxury Yacht”) atau lewat terminal:

    1
    
    luxury-yacht
    

Kalau nanti sudah saya submit ke AUR, tinggal pasang pakai AUR helper biasa (yay -S luxury-yacht-bin atau paru -S luxury-yacht-bin) tanpa perlu build manual lagi — nanti saya update post ini begitu sudah live.

Source lengkap PKGBUILD-nya ada di github.com/ilhamset27/luxury-yacht-bin, silakan mampir kalau mau lihat, kasih star, atau bantu maintain sebelum disubmit ke AUR.

This post is licensed under CC BY 4.0 by the author.