PERHATIAN: BlankOn 9 Jahitan 1 masih taraf pengembangan. Sebagai seorang heker ayam, saya cuma mau iseng saja menunggu sampai rilis. Syukur-syukur kalau tulisan ini membantu banyak orang. Tulisan ini dari heker ayam untuk para heker-heker lainnya, tidak cocok untuk nubitol. 🙂
Menurut tiket #1309, zona waktu tidak juga berubah. Saya sudah menyebutkan cara mengubahnya di tulisan saya sebelum ini. Ternyata isu tersebut masih saja ada. Darah heker ayam saya memuncak dan mulai mengais ke dalam. Dari kemarin saya tidak bisa konsentrasi bermain DoTA 2 dan rasanya tidak mau makan (yang terakhir bercanda).
Saya lihat BlankOn 9 menggunakan GNOME 3.8.3 dan ternyata menurut forum ArkLinux, GNOME 3 terintegrasi kuat dengan Systemd. Fungsi jam memanggil API DBUS systemd untuk mengubah waktu sistem. Celakanya, BlankOn masih menggunakan Sysvinit seperti Debian bapaknya. Itu sebabnya, fungsi tanggal di BlankOn 9 tidak bisa digunakan.
[Sistem init sysvinit, systemd, dan upstart adalah manajemen layanan GNU/Linux. Mereka yang berfungsi menyalakan setiap layanan yang ada. Fungsi yang terbaru bahkan mereka bisa menyalakan layanan-layanan yang lain yang harus menyala sebelum menyalakan sebuah layanan (dependency-based service).]
Saya sangat menyayangkan sikap GNOME yang melawan falsafah UNIX. Keterikatan kepada satu sistem init ini berakibat kepada sistem lainnya tidak berfungsi. Seharusnya, diciptakan shim yang mengabstraksi setiap implementasi sistem. Karena kediktatoran ini, untuk mendapatkan pengalaman penuh menggunakan GNOME 3, setiap distribusi diberi pilihan:
- Pindah sepenuhnya menggunakan systemd.
- Jangan gunakan GNOME 3 dan ganti ke pengatur destop lain.
- Tambal GNOME 3 agar menggunakan API yang benar.
- Berdoa agar dibukakan pintu tobat bagi para pengembang GNOME sehingga mereka kembali waras.
Saya memilih untuk pindah ke systemd karena saya digambarkan sebagai Sheldon Cooper, pemalas dan pragmatis.
Memasang systemd
Untuk dapat memasang systemd, saya memasang paket-paket yang diperlukan. Saya terkejut ternyata BlankOn sudah memasang systemd di sistem! Hanya saja, mereka hanya dipasang sebagai ketergantungan paket saja. Jadi, saya hanya perlu memasang sedikit.
Memasang Pengatur Grafikal systemd
Pengatur grafikal systemd dapat dipasang dengan:
apt-get install systemd-ui
Memasang Penuh systemd
Saya memasang paket-paket berikut:
- dh-systemd (1.7)
- live-config-systemd (3.0.23-1)
- systemd-sysv (44-12)
Mencabut paket ESENSIAL berikut:
Mencabut paket-paket berikut:
- blankon-live-config
- live-config
- live-config-sysvinit
Paket dh-systemd digunakan untuk para pengembang yang mau memindahkan layanan mereka dari format sysvinit ke systemd. Saya memasang hanya untuk berjaga-jaga saja.
Yang diperlukan adalah systemd-sysv yang membuat tautan (symlink) dari /bin/systemd ke /bin/init dan menyediakan fungsi-fungsi shutdown, Hal ini membuat paket tersebut tidak kompatibel dengan sysvinit. Saat ini sysvinit masih dianggap paket esensial Debian. Artinya, kehilangan paket tersebut dapat menyebabkan kerusakan sistem bila diutak-atik sembarangan.
Paket live-config-systemd saya pasang karena live-config-sysvinit terpasang. Kata manual,sih, dia berisi skrip-skrip yang mengonfigurasi layanan pada sistem.Pasang sajalah.
Jadi, saya memasang seperti ini:
sudo apt-get install dh-systemd live-config-systemd systemd-sysv
Saya mengerjakan ini dengan memasang di Manajer Paket Synaptic.
Memasang Kembali Paket yang Terbuang
Jadi ceritanya paket blankon-live-config membutuhkan paket maya live-config yang terbuang karena sysvinit-live-config terbuang. Ya, berhubung systemd-live-config sudah dipasang, maka paket maya sudah bisa dipasang kembali. Alas, kita pun bisa memasang kembali blankon-live-config.
sudo apt-get install live-config blankon-live-config
Dan paket-paket yang penting sudah selesai.
Pastikan FSTAB Berisi Partisi Utama
Ketika saya memasang skrip-skrip di atas, saya kelimpungan karena sistem saya tidak bisa berjalan. Sistem bisa menyala, tapi tidak bisa masuk ke dalam grafikal. Hanya ada layar kosong hitam. Berhubung saya menggunakan VirtualBox, saya tidak bisa pindah ke terminal teks.
Ketika saya masuk ke Mode Pemulihan, saya menemukan bahwa partisi utama saya (root directory) masih dipasang hanya-baca. Artinya, systemd belum memasang ulang baca-tulis partisi tersebut. Solusinya? Tambahkan partisi utama ke dalam FSTAB.
Pertama, pasang ulang agar bisa baca-tulis
mount -o remount,rw /
Setelah itu, cari entri di /proc/mounts partisi utama. Misalnya punya saya:
# cat /proc/mounts
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,relatime,size=10240k,nr_inodes=255484,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,relatime,size=412156k,mode=755 0 0
/dev/disk/by-uuid/2acd3ce0-5e0a-4cb0-82ac-351d92af5a31 / ext4 rw,relatime,data=ordered 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0
tmpfs /sys/fs/cgroup tmpfs rw,nosuid,nodev,noexec,relatime,mode=755 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=23,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0
securityfs /sys/kernel/security securityfs rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
tmpfs /run/user tmpfs rw,nosuid,nodev,noexec,relatime,size=102400k,mode=755 0 0
tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0
mqueue /dev/mqueue mqueue rw,relatime 0 0
fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
none /media/sf_Musik vboxsf rw,nodev,relatime 0 0
Perhatikan yang saya cetak tebal. Anda dapat menulis manual dengan cari tahu apakah itu sebenarnya bernama /dev/sda1 atau yang lainnya.Kalau saya, kebetulan hanya itu yang bertipe EXT4, saya masukkan dengan cara heker:
# cat /proc/mounts | grep ext4 >> /etc/fstab
Yak, artinya baca isi /proc/mounts, kemudian saring baris yang berisi “ext4” dan tambahkan baris tersebut ke berkas /etc/fstab. Mudah, bukan?
Pertimbangan Terakhir Sebelum Pindah
SYSVINIT berbeda dengan SYSTEMD!
Kalau sysvinit membuat layanan di /etc/init.d dan dijalankan melalui rc.N: N menyatakan runlevel (biasanya dari 0 sampai dengan 7). Sedangkan systemd melihat layanan yang ada di /lib/systemd dan /usr/lib/systemd. Jangan lupa, keduanya memiliki format berkas layanan yang berbeda.
Anda bisa cari tahu tentang perbedaan keduanya lebih lanjut di Internet. Yang pasti, ketika kita pindah ke SYSTEMD, artinya setiap skrip yang dibuat menggunakan SYSVINIT tidak akan berjalan lagi!
Pastikan sistem Anda sudah kompatibel dengan systemd. Kebetulan saya memasang dari awal, jadi setiap layanan dipasang oleh Debian dengan format SYSVINIT dan SYSTEMD. Dari awal sudah cocok. Namun, buat Anda yang membuat aplikasi sendiri atau memasang dari paket lain harus memperhatikan skrip layanan yang hendak dipasang juga memuat skrip layanan berformat SYSTEMD.
Intinya, kalau paket Debian, sih, seharusnya kompatibel.