Ego Irfandi Blog

Mengenal dan Instalasi BusyBox

Apa itu BusyBox?

BusyBox adalah sebuah binary tunggal yang menggabungkan versi ringkas dari banyak utility Unix umum (seperti ls, cp, mount, grep, vi, dll) menjadi satu executable kecil. BusyBox banyak dipakai di sistem embedded, initramfs, live CD/rescue system, dan container minimal karena ukurannya yang kecil.

Cara Kerja

BusyBox menggunakan satu binary yang berperilaku berbeda tergantung nama yang dipanggil (via symlink). Misalnya, symlink bernama ls yang mengarah ke binary BusyBox akan menjalankan fungsi ls dari dalam BusyBox itu sendiri, bukan ls dari coreutils.

Instalasi di Void Linux

sudo xbps-install -S busybox

Build dari Source (Opsional)

Untuk kustomisasi applet yang ingin disertakan:

git clone https://git.busybox.net/busybox
cd busybox
make defconfig
make menuconfig   # pilih applet yang ingin di-include/exclude
make -j$(nproc)
sudo make install

make menuconfig berguna jika ingin build BusyBox dengan ukuran seminimal mungkin, hanya menyertakan applet yang benar-benar dibutuhkan.

Cek Applet yang Tersedia

busybox --list

Setelah BusyBox terinstal, applet-applet di dalamnya belum bisa langsung dipanggil dengan nama aslinya (misal ls, cp) kecuali dibuatkan symlink yang mengarah ke binary BusyBox.

Contoh membuat symlink untuk satu applet:

sudo ln -s /bin/busybox /usr/local/bin/ls

Perintah di atas membuat symlink bernama ls yang mengarah ke binary busybox. Saat ls dipanggil, BusyBox akan mendeteksi nama yang digunakan untuk memanggilnya (argv[0]) dan menjalankan fungsi ls yang sesuai.

Membuat symlink untuk beberapa applet sekaligus:

for applet in ls cp mv cat grep; do
  sudo ln -s /bin/busybox /usr/local/bin/$applet
done

Catatan

Perlu diperhatikan urutan PATH pada sistem apabila BusyBox applet diinstal berdampingan dengan utility GNU coreutils, karena symlink yang dibuat belakangan (atau direktori yang lebih diprioritaskan dalam PATH) akan menentukan versi mana yang dipanggil saat command dijalankan.