Slackware Dengan OpenRC

Submitted by w41lf0x on Sat, 03/21/2015 - 00:49

slackwarePerang soal init sistem masih berlanjut sejak #RedHat cs mempublikasikan #systemd hingga tulisan ini dibuat. Meskipun penuh dengan kontroversi, saya mengakui bahwa systemd adalah sebuah sistem init yang bagus. Hanya saja karena saya tidak menyukai model kekuasaan sebuah sistem tunggal, jadi saya tidak tertarik dengan systemd. Selain systemd, masih ada sistem init yang lain, seperti:

  • Bootscript: GoboLinux
  • Busybox-init: Biasanya digunakan di perangkat2 seperti router, ponsel
  • DAEMONS: KahelOS
  • Initng
  • Sysvinit/BSD init : Slackware
  • OpenRC: Gentoo Linux
  • Upstart: Ubuntu
  • Systemd: RedHat, Fedora, CentOS
  • SMF: Solaris
  • Launchd: MacOSX >= 10.4
  • Epoch
  • Finit
  • Runit
  • S6
  • SystemStarter: MacOSX < 10.4

Pada kesempatan ini saya ingin menunjukkan bahwa kita dapat mengganti sistem ini yang digunakan oleh #Slackware menggunakan #OpenRC. Tetapi harap diingat bahwa ini hanya sebuah percobaan. Jadi jangan melakukan hal ini di mesin produksi anda kecuali anda suka yang beresiko tentunya. Instalasi openrc di slackware juga sangat mudah karena dependensinya hanya /sbin/init. OpenRC sendiri menggunakan skrip shell (biasanya skrip bash) untuk menjalankan program/servis init. Jika ingin mencobanya anda dapat mengunduh tarball openrc dari https://github.com/OpenRC/openrc . Meskipun instalasinya mudah, tetapi saya tetap harus menyesuaikan dan menambah beberapa skrip init agar sesuai dengan model init asli Slackware. Contohnya adalah saya harus menambahkan skrip init untuk menjalankan udev model Slackware karena Gentoo sudah mengganti udev menggunakan eudev sejak Desember 2012.

Instalasi OpenRC versi 0.13.11 yang saya lakukan adalah seperti ini:

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
LIBNAME=lib${LIBDIRSUFFIX} \
DESTDIR=${PKG} \
MKSELINUX=no \
MKSTATICLIBS=no \
MKTERMCAP=ncurses \
MKTOOLS=yes \
make install

Saya juga sudah membuat skrip SlackBuild untuk membuat paket openrc untuk Slackware yang bisa diunduh di https://github.com/w41l/wlsbuild/tree/master/openrc

Berikut ini adalah gambar kondisi/status init openrc di Slackware saya

postimage  postimage  postimage  postimage

Dengan menggunakan OpenRC Slackware saya dapat menyelesaikan proses booting ~30 detik (ralat: sebelumnya gak dihitung waktunya) karena OpenRC sudah mendukung inisialisasi secara paralel. Lumayan untuk mesin kelas rendahan macam laptop saya.

Jika anda ingin menggunakan skrip openrc.SlackBuild saya, pastikan untuk mem-backup file /etc/inittab dan isi /etc/rc.d/init.d jika ada. Kemudian setelah selesai instalasi paket openrc-xxx-yyy-1_wls.txz, jalankan slackpkg new-config untuk menginstal konfigurasi init yang baru.

OpenRC menggunakan 4 runlevels untuk menjalankan skrip init di tingkat inisialisasi berbeda, yaitu: boot, default, shutdown, dan sysinit. Untuk melakukan penyesuaian init di tiap runlevels kita dapat menggunakan perintah rc-update. Berikut ini adalah contoh penggunaan rc-update:

- menambah init ke satu runlevel: rc-update add SERVICE RUNLEVEL (mis. rc-update add sshd default)

- menghapus init dari salah satu runlevel: rc-update del SERVICE RUNLEVEL (mis. rc-update del sshd default)

Setelah selesai booting menggunakan openrc, kita dapat mengecek status tiap skrip init di tiap runlevel dengan rc-status RUNLEVEL (mis. rc-status boot)

Referensi: