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