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
Membuat Symlink Applet
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.