pkgx: Jalankan Apa Saja, Versi Berapa Saja, Tanpa Mengotori Sistem Anda

pkgx: Jalankan Apa Saja, Versi Berapa Saja, Tanpa Mengotori Sistem Anda

By Reggi, 12 Jul 2026

Sebagai developer, kita sering kali dihadapkan pada masalah pengelolaan perkakas. Menginstal berbagai versi Node.js, Python, Deno, atau tool lainnya bisa menjadi tantangan tersendiri, apalagi jika kita harus menjaga sistem tetap bersih. Di sinilah pkgx muncul sebagai solusi.

pkgx adalah binary mandiri berukuran 4 MiB yang dirancang untuk menjalankan apa saja, di mana saja, dan versi berapa saja, tanpa mengotori sistem Anda. Filosofi di baliknya sederhana, mereka ingin perkakas Anda berfungsi dengan baik sehingga Anda bisa fokus membangun hal-hal hebat tanpa perlu pusing soal setup.

Instalasi Cepat

Memulai dengan pkgx sangat mudah. Anda punya beberapa pilihan sesuai sistem operasi Anda:

bash
brew install pkgx

atau

bash
curl https://pkgx.sh | sh

Untuk pengguna Windows 10+ (meskipun dengan paket terbatas untuk saat ini):

powershell
irm https://pkgx.sh | iex

Untuk instalasi tanpa Homebrew di macOS, Anda bisa merujuk ke dokumentasi docs.pkgx.sh/installing-w/out-brew.

Kekuatan Inti pkgx

Jalankan Apa Saja, Tanpa Instalasi Permanen

Pernahkah Anda membutuhkan sebuah tool untuk sekali pakai, namun tidak ingin menginstalnya secara permanen? pkgx menjawab kebutuhan ini.

Perhatikan contoh berikut:

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

Seperti yang Anda lihat, pkgx berhasil menjalankan Deno. Namun, sistem Anda tetap tidak tersentuh. Tidak ada yang diinstal secara global, menjaga lingkungan kerja Anda tetap bersih dan rapi. Paket-paket diunduh ke ~/.pkgx, tetapi tidak mengotori sistem Anda yang lebih luas.

Jalankan Versi Apa Saja

Fleksibilitas versi adalah keunggulan lain dari pkgx. Anda bisa dengan mudah menjalankan versi spesifik dari suatu program tanpa perlu repot dengan version manager:

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

Ini sangat berguna ketika Anda bekerja dengan proyek yang memiliki persyaratan versi yang berbeda.

Beroperasi Di Mana Saja

pkgx dirancang untuk bekerja di berbagai lingkungan, membuatnya menjadi perkakas yang sangat portabel.

Sistem OperasiPersyaratan Minimal & ArsitekturKeterangan
macOS>= 11, 64-bit Intel & Apple Silicon
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)
WSL2Mendukung semua yang didukung Linux
DockerImage resmi tersedia: pkgxdev/pkgx

Anda dapat menggunakan image Docker pkgxdev/pkgx untuk mencoba berbagai versi program:

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

Bahkan, Anda bisa mengintegrasikannya langsung ke dalam Dockerfile Anda atau menginstalnya ke image apa pun:

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

Atau dalam image Ubuntu:

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

pkgx dalam Alur Kerja Anda

Integrasi CI/CD

pkgx adalah pilihan tepat untuk pipeline CI/CD Anda. Anda bisa menggunakannya untuk memastikan semua dependensi tersedia dan dijalankan dengan versi yang tepat:

Untuk GitHub Actions:

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

Untuk penyedia CI/CD lainnya, cukup instal pkgx terlebih dahulu:

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

Kekuatan Skrip dengan pkgx

Salah satu penggunaan paling revolusioner dari pkgx adalah dalam skrip. Dengan menambahkan sintaks khusus di shebang, Anda dapat "memuat" perkakas yang Anda butuhkan langsung ke dalam eksekusi skrip:

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

Dalam contoh ini, Python 3.12 akan menjalankan skrip, dan git akan tersedia selama eksekusinya.

pkgx juga memudahkan pengelolaan dependensi untuk bahasa lain. Contoh skrip Python yang menggunakan uv untuk dependensi 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])

Hebatnya, paket yang digunakan selama skrip ini tidak diinstal secara permanen atau mengotori sistem Anda atau sistem pengguna lain.

Untuk skrip, ada juga mash, sebuah package manager khusus untuk skrip yang menunjukkan potensi penuh pkgx ketika seluruh ekosistem open source tersedia untuk skrip Anda.

Lingkungan Dev Otomatis dengan dev

pkgx bukan hanya package runner, ia adalah primitif yang dapat digabungkan untuk membangun ekosistem perkakas. Salah satunya adalah dev, tool terpisah yang menggunakan pkgx untuk secara otomatis menentukan dan memanfaatkan dependensi proyek Anda berdasarkan keyfiles (seperti Cargo.toml untuk Rust atau package.json untuk Node.js).

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 # …

Dengan dev, Anda mendapatkan "lingkungan virtual" yang terdiri dari versi spesifik perkakas dan dependensinya yang Anda perlukan untuk proyek Anda.

Ekosistem pkgx

dev: Lingkungan Virtual untuk Proyek Anda

Seperti yang disebutkan di atas, dev menggunakan pkgx (dan pkgm atau shellcode) untuk menciptakan lingkungan pengembangan yang tepat untuk proyek Anda, secara otomatis mendeteksi kebutuhan perkakas dari keyfiles.

pkgm: Instalasi Permanen Jika Anda Butuh

Jika Anda membutuhkan instalasi pkgx packages secara permanen ke /usr/local, ada pkgm. pkgm diinstal bersamaan dengan pkgx dan menyediakan cara untuk menginstal paket secara tradisional. Jika Anda merindukan keringkasan shims dari pkgx^1, Anda bisa menggunakan pkgm shim.

Contoh membuat shim untuk git:

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

pkgo: Sederhanakan Instalasi Rumit

Beberapa proyek open source memiliki petunjuk instalasi yang panjang dan rumit. pkgo hadir untuk menyederhanakan ini. Dengan bantuan pkgx, pkgo membuat penggunaan tool-tool seperti "Stable Diffusion WebUI" semudah mengetik pkgo.

Recursive Run: Menjelajah Ekosistem Bahasa Lain

pkgx juga memungkinkan Anda menjalankan perkakas dari ekosistem bahasa lain dengan mudah:

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

Memahami Apa yang Bisa Dijalankan pkgx

Untuk mengetahui daftar paket yang didukung, Anda bisa mengunjungi pkgx.dev/pkgs atau menggunakan mode query dari CLI:

bash
$ pkgx -Q git # ^^ bisa Anda jalankan git? (mengeluarkan nama proyek yang sepenuhnya qualified) $ pkgx -Q # ^^ daftar semua yang bisa dijalankan $ pkgx -Q | grep git- # ^^ ekstensi git apa yang disediakan pkgx?

Migrasi dari pkgx Versi Lama (pkgx^1)

Jika Anda adalah pengguna lama pkgx^1, ada beberapa perubahan:

  • Shellcode: Tidak ada lagi shellcode di pkgx inti. Sekarang dev adalah tool terpisah dengan shellcode-nya sendiri. Migrasikan konfigurasi shell Anda dengan:
    bash
    pkgx pkgx^1 deintegrate pkgx dev integrate
  • env +foo: Fungsi ini sekarang dapat dicapai dengan eval "$(pkgx +git)". Gunakan set -a dan set +a jika Anda perlu mengekspor lingkungan.
  • pkgx install: Sekarang pkgm yang menyediakan instalasi paket ke /usr/local/.

Kontribusi dan Komunitas

pkgx adalah proyek open source. Jika Anda tertarik untuk berkontribusi:

  • Gunakan dev untuk menyediakan Rust.
  • Untuk menambahkan paket, lihat pantry README.
  • Untuk berkontribusi pada pkgx itu sendiri, klon repositorinya dan lakukan cargo build. hydrate.rs adalah area utama untuk optimisasi.

Ada juga proses linting pra-PR:

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

Jika Anda memiliki pertanyaan atau ingin berdiskusi, Anda bisa bergabung di Discord atau GitHub Discussions mereka.

pkgx menawarkan pendekatan yang bersih, fleksibel, dan efisien untuk mengelola perkakas pengembangan Anda. Ini adalah tool yang wajib dicoba bagi siapa pun yang ingin menjaga sistemnya tetap rapi sambil tetap memiliki akses ke ekosistem perkakas yang luas.

Referensi


🔥 Sedang Ramai Dibaca