Tag Archives

5 Articles
Broken SAMBA 4.1.9 with Newer Systemd

Broken SAMBA 4.1.9 with Newer Systemd

If you are using newer systemd, the library was renamed. I got it in my GNU/Linux Gentoo with systemd-215. The solution is to add this patch:

--- a/lib/util/wscript_build 2014-06-03 15:05:52.000000000 +0700
+++ b/lib/util/wscript_build    2014-07-15 14:18:37.000000000 +0700
@@ -10,7 +10,7 @@
                     server_id.c dprintf.c parmlist.c bitmap.c pidfile.c
                     tevent_debug.c util_process.c''',
                   deps='DYNCONFIG',
-                  public_deps='talloc tevent execinfo uid_wrapper pthread LIBCRYPTO charset util_setid systemd-daemon',
+                  public_deps='talloc tevent execinfo uid_wrapper pthread LIBCRYPTO charset util_setid systemd-daemon systemd',
                   public_headers='debug.h attr.h byteorder.h data_blob.h memory.h safe_string.h time.h talloc_stack.h xfile.h dlinklist.h samba_util.h string_wrappers.h',
                   header_path= [ ('dlinklist.h samba_util.h', '.'), ('*', 'util') ],
                   local_include=False,
--- a/wscript   2014-06-03 15:05:52.000000000 +0700
+++ b/wscript   2014-07-15 14:42:19.000000000 +0700
@@ -186,7 +186,7 @@
         conf.check_cfg(package='libsystemd-daemon', args='--cflags --libs',
                        msg='Checking for libsystemd-daemon', uselib_store="SYSTEMD-DAEMON")
         conf.CHECK_HEADERS('systemd/sd-daemon.h', lib='systemd-daemon')
-        conf.CHECK_LIB('systemd-daemon', shlib=True)
+        conf.CHECK_LIB('systemd-daemon systemd', shlib=True)
 
     if conf.CONFIG_SET('HAVE_SYSTEMD_SD_DAEMON_H'):
         conf.DEFINE('HAVE_SYSTEMD', '1')

Put this file in /etc/portage/patches/net-fs/samba-4.1.9/fix-SAMBA4-with-newer-systemd.patch or anywhere suitable. Hopes this help people.

Tambahan Pemasangan untuk BlankOn Suroboyo

Tambahan Pemasangan untuk BlankOn Suroboyo

Citarasa itu berbeda tiap orang. Ini adalah versi BlankOn yang seharusnya ada menurut saya. Kalau tak setuju, tak mengapa. Kali ini saya menggunakan Root Terminal yang tersedia dengan mudah di BlankOn untuk menghindari sudo.

Pindah ke systemd Sepenuhnya

Seperti yang diberitakan, Debian akan membuang sysvinit dan pindah ke systemd pada iterasi berikutnya. Versi GNOME3 yang menjadi dasar BlankOn pun menggunakan modul yang sama. Maka, saya menggunakan inisiatif untuk mengganti saat ini juga.

Pertama-tama, pastikan akar direktori terpasang di /etc/fstab. Asumsi saya adalah sistemberkas diformat EXT4. Silakan ganti dengan format yang lainnya jika berbeda.

# cat /etc/mounts | grep ext4 >> /etc/fstab

Lalu, pasang systemd-sysv untuk menggantikan sysvinit:

# apt-get install systemd-sysv

Silakan nyalakan ulang BlankOn untuk mengaktifkan systemd. Perhatikan bahwa waktu mulai pun lebih cepat dibandingkan dengan sysvinit.

Segala Sesuatu tentang VirtualBox

Anda dapat melewati bagian ini. Saya memerlukan langkah-langkah ini karena saya menggunakan BlankOn pada VirtualBox di komputer kerja saya.

Memasang VirtualBox Guest

BlankOn menggunakan XOrg versi 1.15. Versi ini tidak didukung dengan baik oleh Virtual Box 4.3.6, versi terbaru Virtual Box saat penulisan ini. Diperlukan VirtualBox Guest Additions yang versi beta (4.3.7) untuk itu.

Pada komputer inang, unduh:

$ wget https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_4.3.7-92075.iso

Selanjutnya, lakukan hal-hal berikut di BlankOn. Buka terminal di BlankOn dan lakukan. Pasang paket-paket ketergantungan.

# apt-get install dkms linux-headers-3.12-1-amd64

Entah mengapa, BlankOn juga memasang linux-image-3.9.1-amd64. Buang saja:

# apt-get remove --purge linux-image-3.9.1-amd64 # update-grub

Pada VirtualBox Anda di inang, pasang ISO yang sudah diunduh tadi ke BlankOn. Kalau benar, BlankOn akan menanyakan apakah CD yang baru dimasukkan hendak dijalankan atau tidak. Bila tak berjalan otomatis, langsung saja jalankan dari terminal.

Cari tahu dipasang ke direktori mana:

# mount | grep sr0

Pada kasus saya, saya pindah ke direktori berikut:

# cd /media/jp/VBOXADDITIONS_4.3.7_92080

Lalu, pasang VirtualBox Guest Additions:

# ./VBoxLinuxAdditions.run

Tunggu beberapa saat dan nyalakan kembali BlankOn.

Menambahkan Pengguna ke Grup vboxsf

Agar dapat mengakses direktori-direktori yang dibagi-pakai oleh VirtualBox, pengguna harus tergabung dalam grup vboxsf. Untuk menambahkan pengguna tersebut:

# adduser jp vboxsf

Keluar dari sesi BlankOn dan masuk kembali.

Memasang SSH

Saya bingung mengapa dewasa ini SSH tidak dipasang secara otomatis.

# apt-get install ssh

Dan, SSH pun terpasang.

Memasang Peluncur Aplikasi

Peluncur aplikasi KDE menggunakan KRunner. GNOME Shell menggunakan peluncur internal. Namun, sayangnya Manokwari tidak ada peluncur aplikasi.

Untungnya, ada aplikasi pihak ketiga. Ada GNOME Do yang menggunakan Mono. Ada Synapse yang biasa digunakan oleh BlankOn Pattimura dan pendahulunya. Ada Kupfer yang juga ringan. Terakhir, yang paling ringan dari itu semua: dmenu.

Saya tertarik pada Kupfer, namun untuk sementara ini saya memasang Synapse saja:

# apt-get install synapse

Sementara ini baru itu saja yang saya tambahkan.

Era Monolitik

Era Monolitik

Sejujurnya, saya sedih melihat perkembangan GNU/Linux saat ini. SABDL mengumumkan bahwa Ubuntu akan pindah dari Upstart ke SystemD. Hal ini mengingat keputusan Debian yang memutuskan untuk pindah dari SystemV ke SystemD.

Bug#727708: init system other points, and conclusionWe seem to be at the point of the process where at least those of us who did early investigation are stating conclusions. I think I have enough information to state mine, so will attempt to do so here.
via Debian

Tulisan Russ Allbery memberikan pemaparan jelas mengenai alasan pemilihan ini. Dari tiga kandidat pengganti SystemV (OpenRC, Upstart, Systemd), SystemD menang di atas segalanya. Integrasi yang ketat dengan kernel Linux adalah salah satu alasannya.

Gentoo Forums :: View topic – The Politics of systemdepisode #299) was giving some of his reasons why having Debian choose to go with systemd was a good thing for Linux. Personally, I felt that all of the reasons he gave were pretty weak and did not require systemd (they included mainly cgroups & socket activation).
via Gentoo

Sebagai pengguna Gentoo dan pengguna sistem GNU/Linux yang lama, saya juga merasakan sentimen yang sama dengan pengguna Gentoo yang lain. SystemD memaksakan kehendak untuk menggantikan semua hal. Dalam beberapa tahun ini, akan ada banyak sistem yang takkan jalan tanpa SystemD.

Ini lebih kecenderungan politik dan sungguh bertentangan dengan falsafah UNIX. UNIX memperkenalkan disain yang modular. Ada lapisan-lapisan yang bekerja dengan lapisannya sendiri. Satu aplikasi berjalan untuk menunaikan tugas spesifik saja dan ia mengerjakan tugas tersebut dengan sangat baik.

Untuk mengerti falsafah ini, kita mesti mengerti politik divide et impera yang dianut VOC dulu. Saya dulu mengerti tentang falsafah ini ketika belajar Pemrograman Fungsional dengan matematika Lambda-nya. Waktu itu saya belajar Haskell.

Inti dari falsafah ini sebagai berikut: sebuah masalah dipecah-pecah menjadi banyak permasalahan yang kecil. Masalah yang kecil tersebut kemudian dipecah kembali. Hal ini dilakukan hingga unit terkecil masalah tersebut sudah mencapai titik yang dapat diselesaikan langsung.

Itu sebabnya, di dalam UNIX (dan sistem-sistem yang menirunya), ada banyak aplikasi perkakas kecil yang bisa membaca pipa aplikasi dan meneruskan keluarannya ke pipa perintah selanjutnya. Jadi, setiap aplikasi kecil tersebut saling terisolasi.

Fungsionalitas yang terisolasi ini membuat uji unit lebih mudah. Faktor ketergantungan pihak eksternal pun minim. Untuk mencari tahu kesalahan ada di mana, isolasi ini membuat kita bisa mendeteksi di mana letak kesalahan yang menyebabkan proses terhenti.

Tentu, zaman sudah berganti. Mungkin banyak orang yang sudah tak paham lagi tentang isolasi masalah. Mereka pikir sebuah aplikasi pada suatu lapisan harus tahu lapisan di atasnya atau di bawahnya.

Contohnya, saya melihat banyak orang yang melakukan optimasi jaringan bahkan sampai berusaha menggabungkan lapisan 3 dan 4, misalnya. Ini demi pengaplikasian jaringan paket berbasis konten. Kompleksitas pun bertambah.

Disain yang seperti ini akan rawan galat. Galat ini tak dapat ditelusuri dengan mudah karena banyak faktor yang mempengaruhi. Akhirnya, galat ini yang mungkin mendekatkan kita kepada Tuhan YME.

SystemD pun nampaknya akan menggantikan banyak hal. Ia telah menggantikan UDEV dan beberapa skrip non-init. BlankOn 9 Suroboyo pun sudah terkena dampaknya. Sudah lama terindikasi memang bahwa mau tak mau dunia harus mengadopsi SystemD!

Saya hanya memprediksi, seperti halnya Linus yang menyesali keputusannya membuat kernel monolitik, suatu saat perancang sistem GNU/Linux akan menyesali keputusan saat ini. SystemD akan berkembang menjadi bloated seperti Windows.

Disainnya yang monolitik hendak menggantikan banyak fungsi membuat ia menjadi kompleks. Separasi yang tidak jelas menjadikan disain menjadi amburadul. Sistem yang kompleks sungguh rawan ketergantungan antar komponen-komponennya sendiri.

Bila saatnya itu tiba, maka akan sulit rasanya mematikan sebuah fitur yang tak perlu. Bisa jadi fitur tersebut menjadi sebuah ketergantungan siklik dengan fungsi yang lain. Ah, malam ini panjang dan menyedihkan. 🙁

Met Valentin bagi yang merayakan.

BlankOn 9 Jahitan 1: GNOME 3 dan systemd

BlankOn 9 Jahitan 1: GNOME 3 dan systemd

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:

  1. Pindah sepenuhnya menggunakan systemd.
  2. Jangan gunakan GNOME 3 dan ganti ke pengatur destop lain.
  3. Tambal GNOME 3 agar menggunakan API yang benar.
  4. 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:

  • sysvinit

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.

Gentoo Bootstrapping (Untuk Kalangan Sendiri)

Gentoo Bootstrapping (Untuk Kalangan Sendiri)

Catatan

Tulisan ini ditulis untuk saya sendiri. Mungkin ada penjelasan, mungkin juga tidak. Inti dari tulisan ini adalah bagaimana memasang sebuah sistem Gentoo cita rasa sebagai berikut:

  • GCC 4.7.2 (utamanya 4.6.3)
  • SystemD (utamanya sysvinit)
  • Enlightenment 17 (DR17)

Mereka masih eksperimental, itu sebabnya CFLAGS dan CXXFLAGS diset untuk tidak terlalu agresif. Bahkan, systemd tidak disarankan oleh Gentoo karena Gentoo sudah ada OpenRC. Sistem yang dibuat ini belum tentu jalan. Berhubung komputer saya cukup cepat untuk membuat saya tidak malas, maka biar saja.

Sejujurnya, saya malas memasang systemd. Secara filosofis, ia menentang falsafah GNU/Linux: “semua tentang pilihan pengguna”.

Sistem Dasar

Persiapan dengan memasang stage3:

mkfs.reiserfs /dev/sdb1 -l "Pusat Pemerintahan"
mkdir /mnt/gentoo && mount /dev/sdb1 /mnt/gentoo -o noatime,nodiratime,notail
wget http://kambing.ui.ac.id/gentoo/releases/amd64/current-stage3/stage3-amd64-20130130.tar.bz2 -O- | sudo tar xj -C /mnt/gentoo

Mengubah beberapa berkas:

sudo cp /etc/resolv.conf /mnt/gentoo/etc/
sudo rm /mnt/gentoo/etc/fstab
sudo mkdir /mnt/gentoo/usr/portage

Memasang sistemberkas utama:

sudo mount -t proc none /mnt/gentoo/proc
sudo mount -t sysfs none /mnt/gentoo/sys
sudo mount -o bind /dev /mnt/gentoo/dev
sudo mount -t devpts none /mnt/gentoo/dev/pts

Dan pindah:

sudo chroot /mnt/gentoo /bin/bash
emerge-webrsync

Pilih profil yang diinginkan yang diinginkan:

eselect profile set 12 # ganti 13 (GNOME) atau 14 (KDE).
eselect locale set 413 # id_ID.utf-8

Aktifkan GCC 4.7.2:

mkdir /etc/portage/package.unmask && echo ">=sys-devel/gcc-4.7" >> /etc/portage/package.unmask/gcc

Ubah make.conf sesuai selera:

cat > /etc/portage/make.conf << EOF
CFLAGS="-march=native -mtune=native -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
CHOST="x86_64-pc-linux-gnu"
USE="bindist mmx sse sse2 avx threads sse3 sse4_1 ssse3"

MAKEOPTS="-j9"

INPUT_DEVICES="keyboard mouse evdev"
VIDEO_CARDS="radeon nvidia"
LINGUAS="id"

SYNC="rsync://kambing.ui.ac.id/gentoo-portage"
GENTOO_MIRRORS="http://kambing.ui.ac.id/gentoo"
ACCEPT_LICENSE="*"
ACCEPT_KEYWORDS="amd64 ~amd64"
EOF

Duh, memori ada 16GB sayang kalau tak dipakai. Pinjam, ah…

mkdir /var/tmp/portage && mount -t tmpfs -o size=6g,noatime,nodiratime none /var/tmp/portage/

Mari pasang gcc:

env-update && source /etc/profile && emerge --oneshot --nodeps gcc-config
emerge -av gcc

Lanjut untuk melakukan bootstrapping:

USE="-* build bootstrap" emerge linux-headers && emerge --nodeps gdbm libperl perl
/usr/portage/scripts/bootstrap.sh
emerge -O libperl && emerge -O python
emerge -qv shadow && emerge --deep -qv system

Duh, kadang gagal, ya, sudah. Langsung saja mencari masalah:

emerge -qv systemd

Tambahkan “systemd” ke dalam variabel USE di “/etc/portage/make.conf”. Lalu buat ulang sistem:

emerge -eqv @system
emerge --depclean

Lakukan hal yang biasa dilakukan:

cp /usr/share/zoneinfo/Asia/Jakarta /etc/localtime
echo "Asia/Jakarta" > /etc/timezone
echo "hostname=\"rajagukguk\"" > /etc/conf.d/hostname

Optimasi aplikasi emerge:

mkdir -p /etc/portage/package.use
echo "dev-lang/python sqlite" >> /etc/portage/package.use/python
emerge -atv pysqlite
python-updater
emerge -auDNtv @world
echo "portdbapi.auxdbmodule = cache.sqlite.database" > /etc/portage/modules
echo "FEATURES=\"metadata-transfer\"">> /etc/portage/make.conf
rm -rf /var/cache/edb/dep && emerge --metadata

Pasang eix dan layman:

echo "app-portage/eix sqlite" >> /etc/portage/package.use/eix
emerge -qv eix layman
cat >> /etc/eixrc << EOF
> 
> PORTDIR_CACHE_METHOD='sqlite'
> OVERLAY_CACHE_METHOD='parse'
> EOF
eix-update

Berkas /etc/fstab biasanya diubah. Mari ubah kembali menjadi yang kita miliki:

echo "/dev/ROOT               /               reiserfs        noatime,notail  0 1" > /etc/fstab

Setelah itu, pemasangan kernel yang tidak begitu menarik karena sudah biasa.

emerge -qv genkernel gentoo-sources grub

Kebetulan saya sudah pernah membuat kernel yang sama. Jadi, saya menggunakan konfigurasi yang sudah ada. Dari terminal yang berbeda, salin konfigurasi kernel yang sudah ada ke sistem yang baru:

cp /usr/src/linux/.config /mnt/gentoo/tmp/config.txt

Setelah itu, kembali ke terminal kerja. Berhubung 6GB memori sudah terpasang di /var/tmp/portage, ya, sekalian saja digunakan untuk kompilasi kernel. Genkernel menggunakan konfigurasi yang berbeda dengan emerge. Kita harus secara eksplisit menyebutkan lokasi kerja:

time genkernel --kernel-config=/tmp/config.txt  --bootloader=grub2 --tempdir=/var/tmp/portage/ --cachedir=/var/tmp/portage/ --makeopts=-j9  all

Penggunaan time merupakan hal iseng yang saya lakukan untuk menunjukkan waktu kompilasi yang dibutuhkan:

real    5m2.110s
user    29m36.263s
sys     3m55.639s

Yah, lumayan, butuh sekitar 5 menit untuk mengompilasi kernel dan modul-modulnya. Sistem ini baru pertama kali dibuat, sehingga kita harus membuat konfigurasi GRUB yang pertama kali secara manual. Selain itu, tambahkan konfigurasi systemd:

sed '/GRUB_CMDLINE_LINUX_DEFAULT=\"\"/c GRUB_CMDLINE_LINUX_DEFAULT=\"real_init=/bin/systemd nomodesetting\"' /etc/default/grub > /tmp/grub && mv /tmp/grub /etc/default/grub
mkdir /boot/grub2
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-install /dev/sdb

Selanjutnya memasang Enlightenment 17 (DR17) dan Xorg. Saya menggunakan penggerak dari NVidia karena Nouveau belum stabil. Lagipula, saya bermain Steam.

echo "x11-wm/enlightenment ukit emotion" > /etc/portage/package.use/enlightenment
emerge -av "enlightenment:0.17" --autounmask-write
emerge -av x11-base/xorg-server x11-drivers/nvidia-drivers
eselect opengl set nvidia
eselect opencl set nvidia

Penambahan Pengguna

Saya lupa membuat pengguna.

emerge -qv sudo vim

Buat pengguna:

useradd -m -G users,wheel,audio,cdrom,disk,video -s /bin/bash jp
passwd jp
echo "%wheel ALL=(ALL) ALL" >> /etc/sudoers

Selesai. Sekarang saya mau menyalakan ulang komputer saya ke sistem yang baru.

Sumber Bacaan