Stop Mengotori OS Kamu: Kenalan dengan pkgx, Binary 4 MiB Pembunuh Dependency Hell

Stop Mengotori OS Kamu: Kenalan dengan pkgx, Binary 4 MiB Pembunuh Dependency Hell

Oleh Reggi, 12 Jul 2026

Berapa banyak version manager yang bersarang di laptop kamu sekarang? Ada nvm buat Node.js, pyenv buat Python, rustup buat Rust, belum lagi tumpukan binary global yang cuma kamu pakai sekali enam bulan lalu terus terlupakan. Sistem operasi kamu perlahan berubah jadi tempat pembuangan sampah digital. PATH berantakan, disk space bocor, dan potensi konflik dependensi tinggal menunggu waktu buat meledak.

Kondisi ini bikin frustrasi. Di sinilah pkgx masuk dan menampar cara lama kita mengelola perkakas development.

Bukan sekadar package manager biasa, pkgx adalah single standalone binary berukuran cuma 4 MiB. Filosofinya sangat radikal tapi masuk akal: jalankan tool apa pun, versi berapa pun, di mana pun, tanpa perlu mengotori sistem global kamu.

Jalankan Tanpa Jejak: Konsep Ephemeral Execution

Bayangkan kamu cuma butuh Deno buat ngetes satu baris script, atau butuh Node.js versi 14 buat nge-debug codebase legacy warisan kantor yang belum sempat dimigrasi. Cara lama menuntut kamu buat install, setup environment, baru bisa jalan.

Dengan pkgx, kamu tinggal panggil binary yang kamu mau di depan nama aplikasinya. Begitu eksekusi selesai, sistem kamu tetap bersih.

bash
$ deno command not found: deno $ pkgx deno Deno 2.1.4 > ^D $ deno command not found: deno

Sihirnya ada di cara kerja isolasinya. pkgx bakal narik paket yang dibutuhkan dan menyimpannya di direktori terisolasi ~/.pkgx. Tidak ada symlink liar ke /usr/bin, tidak ada PATH global yang diacak-acak. Begitu command selesai, sistem OS kamu tetap murni seperti semula.

Mau gonta-ganti versi runtime yang berbeda jauh? Bukan masalah. Cukup sematkan tag versi di belakangnya:

bash
$ pkgx node@14 --version Node.js v14.21.3 $ pkgx python@2 --version Python 2.7.18

Selamat tinggal setup pyenv atau nvm yang ribet dan bikin shell startup kamu ngelag gara-gara kebanyakan script inisialisasi.

Cara Pasang Cepat: 4 MiB yang Siap Tempur

Ukurannya yang cuma 4 MiB bikin proses instalasinya nyaris instan di berbagai platform.

Buat pengguna macOS via Homebrew:

bash
brew install pkgx

Atau jalur direct script buat Unix/Linux:

bash
curl https://pkgx.sh | sh

Pengguna Windows 10+ juga sudah bisa mencicipi lewat PowerShell (meskipun ekosistem paketnya masih eksperimental dan terbatas untuk saat ini):

powershell
irm https://pkgx.sh | iex

Bagi yang pakai macOS tapi anti-Homebrew, dokumentasi resminya menyediakan panduan manual di docs.pkgx.sh/installing-w/out-brew.

Matriks Kompatibilitas Sistem

pkgx dibangun dengan portabilitas tinggi. Berikut adalah batasan minimal environment yang didukung:

Sistem OperasiPersyaratan Minimal & ArsitekturKeterangan
macOS>= 11, 64-bit Intel & Apple SiliconNative support penuh
Linuxglibc >= 2.28, x86_64 & arm64Membutuhkan libatomic.so.1, libdl.so.2, libm.so.6, libgcc_s.so.1, libpthread.so.0, libc.so.6, ld-linux-x86-64.so.2
WindowsWindows 10+Dukungan native eksperimental (paket terbatas)
WSL2Lingkungan Linux WSL2Mendukung semua yang didukung Linux
DockerMulti-arch LinuxImage resmi via pkgxdev/pkgx

Di Docker, kamu bahkan bisa langsung mengeksekusi versi tertentu tanpa build step yang panjang:

bash
$ docker run pkgxdev/pkgx node@21.1 --version v21.1.0

Atau embed langsung ke dalam workflow Dockerfile kamu:

dockerfile
FROM pkgxdev/pkgx RUN pkgx deno@1.35 task start

Mau dipasang di base image standar seperti Ubuntu juga tinggal tarik via curl:

dockerfile
FROM ubuntu RUN curl https://pkgx.sh | sh RUN pkgx python@3.10 -m http.server 8000

Level Lanjutan: Scripting Super-Power dan CI/CD Tanpa Sakit Kepala

Kekuatan sebenarnya dari pkgx bakal terasa waktu kamu masuk ke automation dan pipeline scripting.

Sering kali pipeline CI/CD gagal cuma gara-gara tool linter atau utility kecil belum terinstall di runner container. Dengan pkgx, integrasi di GitHub Actions jadi seringkas ini:

yaml
- uses: pkgxdev/setup@v4 - run: pkgx shellcheck

Untuk platform CI lain seperti GitLab CI atau Jenkins, polanya tetap konsisten:

bash
curl https://pkgx.sh | sh pkgx shellcheck

Shebang Magic: Dependency On-The-Fly

Ini fitur yang bakal bikin workflow scripting kamu naik kelas. Kamu bisa mendefinisikan environment runtime langsung di dalam shebang script menggunakan sintaks #! /usr/bin/env -S pkgx.

Contohnya, kamu butuh script Python 3.12 yang harus bisa memanggil utility Git:

bash
#! /usr/bin/env -S pkgx +git python@3.12 # python 3.12 runs the script and `git` is available during its execution

Python 3.12 bakal otomatis dieksekusi, dan binary git disuntikkan secara instan selama script berjalan tanpa perlu kamu install manual di OS host.

Kamu bahkan bisa mengombinasikannya dengan tool modern seperti uv untuk dependency resolver PyPI:

bash
#! /usr/bin/env -S pkgx +python@3.11 uv run # /// script # dependencies = [ # "requests<3", # "rich", # ] # /// import requests from rich.pretty import pprint resp = requests.get( "https://peps.python.org/api/peps.json" ) data = resp.json() pprint([(k, v["title"]) for k, v in data.items()][:10])

Semua library di atas diunduh dan dijalankan secara terisolasi. Tidak ada pip install global yang bakal merusak library bawaan sistem kamu. Untuk ekosistem scripting yang lebih terstruktur, ada juga mash, package manager khusus script yang memanfaatkan penuh kapabilitas pkgx.

Anatomi Ekosistem: dev, pkgm, pkgo, dan Recursive Run

pkgx bukan cuma satu alat yang berdiri sendiri, tapi fondasi dari sebuah ekosistem perkakas modular.

1. dev: Virtual Environment Otomatis Berbasis Keyfiles

Bosan bolak-balik ngetik command inisialisasi environment? Tool pendamping bernama dev membaca keyfiles di direktori proyek kamu (seperti Cargo.toml buat Rust atau package.json buat Node.js) dan langsung menyiapkan toolchain yang sesuai saat kamu masuk ke folder tersebut.

bash
$ cd my-rust-proj && ls Cargo.toml src/ my-rust-proj $ cargo build command not found: cargo my-rust-proj $ dev +rust +cargo my-rust-proj $ cargo build Compiling my-rust-proj v0.1.0

2. pkgm: Kalau Kamu Butuh Instalasi Tradisional

Kalau kamu memang butuh sebuah tool terpasang permanen di /usr/local, kamu bisa pakai pkgm. Tool ini ikut terpasang bersama pkgx dan menyediakan fitur pembuatan shims bagi kamu yang menyukai kemudahan akses command langsung.

bash
$ pkgm shim git created shim: ~/.local/bin/git $ cat ~/.local/bin/git #! /usr/bin/env -S pkgx -q! git

3. pkgo: Jalan Pintas Setup Rumit

Beberapa software open source punya panduan instalasi yang panjang dan bikin pusing, contohnya Stable Diffusion WebUI. Di sini pkgo bertugas memangkas seluruh instruksi njelimet itu jadi satu baris eksekusi simpel berbasis pkgx.

4. Recursive Run: Lompat Lintas Ekosistem Bahasa

Kamu bisa mengeksekusi tool dari package runner ekosistem lain secara seamless lewat pkgx:

bash
pkgx uvx cowsay "Run Python (PyPi) programs with `uvx`" # atau pipx pkgx bunx cowsay "Run JavaScript (NPM) programs tools with `bunx`" # atau `npx`

Eksplorasi CLI & Query Paket

Mau tahu apa saja yang bisa dijalankan? Kamu bisa cek katalog web di pkgx.dev/pkgs atau langsung interogasi CLI bawaannya:

bash
$ pkgx -Q git # Cek apakah git tersedia dan tampilkan nama fully qualified project-nya $ pkgx -Q # Tampilkan seluruh daftar paket yang didukung $ pkgx -Q | grep git- # Filter ekstensi git apa saja yang disediakan oleh pkgx

Catatan Penting: Migrasi dari pkgx^1

Buat yang sempat pakai versi terdahulu (pkgx^1), arsitektur sekarang sudah dipecah agar binary intinya tetap ramping:

  • Shellcode: Tidak ada lagi shellcode di core binary pkgx. Logika environment sekarang dipindah ke tool dev. Jalankan migrasi shell kamu dengan:
    bash
    pkgx pkgx^1 deintegrate pkgx dev integrate
  • Perubahan Syntax env +foo: Sekarang gunakan format eval "$(pkgx +git)". Gunakan set -a dan set +a jika butuh export environment variable secara menyeluruh.
  • Instalasi Permanen: Perintah pkgx install sudah sepenuhnya dialihkan ke pkgm.

Cara Kontribusi ke Proyek

pkgx adalah open source murni yang dibangun dengan Rust. Kalau kamu mau berkontribusi, flow pengembangannya cukup straightforward:

  1. Gunakan dev untuk bootstrap environment Rust secara otomatis.
  2. Cek pantry README kalau ingin menambahkan formula paket baru.
  3. Klon repositori utamanya, buka codebase, dan jalankan cargo build. Area file hydrate.rs adalah fokus utama optimasi performa saat ini.

Sebelum submit Pull Request, pastikan lolos validasi linting lokal:

bash
cargo fmt --all --check cargo clippy --all-features pkgx npx markdownlint --config .github/markdownlint.yml --fix .

Diskusi teknis dan troubleshooting aktif berjalan di server Discord serta GitHub Discussions komunitas mereka.

Keputusan Akhir: Layakkah Masuk Workflow Harian?

Kalau kamu developer yang sering berpindah-pindah repo dengan tech stack yang berbeda, atau engineer yang alergi melihat laptop penuh dengan sampah dependensi usang, pkgx adalah upgrade workflow yang nyata.

Ia membuktikan bahwa manajemen dependensi modern tidak harus mengorbankan kebersihan sistem operasi kita. Cukup satu binary 4 MiB, dan kamu punya akses ke seluruh ekosistem tooling modern tanpa beban.

Referensi:

  • Repository Resmi: https://github.com/pkgxdev/pkgx

Sedang Ramai Dibaca