Sunday, April 12, 2009

Tutor lengkap upgrade Gentoo 2007.0 ke rilis terbaru

Rilis terakhir gentoo sebenarnya adalah Rilis 2008.0 pada juli tahun lalu, dan ini sekaligus menjadi "starting point" terdekat untuk memulai menggunakan gentoo. Sebagaimana keunikan gentoo yang tidak memiliki versi rilis terpisah (seperti distro lainnya), dalam artian tinggal pilih "starting point" selanjutnya tinggal melakukan update menggunakan gentoo package manager seperti portage yang menjadi default, paludis ataupun pkgcore.

Nah, kisah ini dimulai saat neo-venom gw yang kala itu telah ber-kernel 2.6.29 mengalami masalah, ya yang menurut hasil investigasi gw, masalah kompleks ini yang melibatkan hardisk gw. Detil gejalanya adalah sebagai berikut, setelah mesin gw sukses melakukan booting kernel, maka selanjutnya kernel harusnya akan me-load initramfs, nah saat akan melakukan hal inilah, sang kernel menemukan kebingungan, karena beliau tidak menemukan root block device. Banyak jurus yang sudah gw lakukan, dari mengkopi lengkap kernel, sytem-map dan intiramfs dari suksesnya menjalankan live-cd, melakukan mount manual ke partisi /root, melakukan chrooted dan kompile kernel ulang, melakukan perbaikan filesystem dengan fsck, satu yang tidak berhasil dan merupakan hasil diskusi dengan the_hydra adalah mengkompilasi ulang initramfs :(

Sekarang, mau tau apakah tersangkanya?, tersangkanya adalah file truecrypt yang gw mount ke satu partisi windows (ntfs) yang berjalan sebagai guest di vmware (ber-filesystem ext3) gw yang terletak di sebuah partisi ntfs (yang akan di mount gentoo gw dengan ntfs-3g, otomatis via /etc/fstab) windows xp dual-boot gw, oleh karena satu dan lain hal di suatu waktu gw main matikan saja itu neo-venom. Jadi, bukan maksud hati gw membuat ini terkesan berliku-liku, tetapi begitulah keadaannya :P

Karena keterbatasan jutsu gw, maka gw tidak berhasil untuk menyembuhkannya, gw tidak terlalu mengkuatirkan data-data gw, karena mereka aman di fileserver, di hardisk eksternal gw dan juga di partisi /home, juga gw tidak terlalu khawatir dengan berbagai konfigurasi, toh gw tinggal salin direktori "/etc", "/home", "/usr/portage" dsb, maka beres. Permasalahan sesungguhnya apabila gw menginstall ulang gentoo gw adalah waktu dan effort yang di perlukan untuk mem-build semua paket. Ya sudahlah, emang gw lagi apes dan hati gw sudah kekunci dengan gentoo, jadilah perjalanan panjang ini (1 minggu).

Pertama-tama, gw pilih 2008.0 sebagai permulaan, dan ternyata XFCE sudah menjadi satu-satunya pilihan desktop manager yang disediakan, gw tidak ada permusuhan dengan xfce, tetapi rasanya gnome lebih memenuhi kriteria yang gw butuhkan, jadi gw pilih balik mundur menggunakan cd gentoo 2007.0 yang men-default-kan gnome sebagai desktop manager untuk menjadi permulaan, dan ternyata ini bukanlah pilihan yang terbaik, karena apa? perlu banyak usaha, google, dan jurus-jurus yang di keluarkan untuk menghasilkan gentoo yang seharusnya (rilis terakhir), khususnya untuk arsitektur neo-venom gw. Untuk mempermudah siapapun yang membutuhkan untuk melakukan upgrade dari 2007.0, maka gw bubuhi postingan ini dengan langkah-langkahnya.

Adapun link yang gw temui cukup membantu, tetapi tidak semuanya bisa langsung di aplikasikan adalah:

1. http://blog.jolexa.net/2009/03/25/gentoo-tips-to-upgrade-your-really-old-installation

Dan berikut ini adalah 2 buah link yang berisi kumpulan percobaan gw dengan gentoo,

2. Koleksi postingan tentang gentoo di blog gw
3. Petunjuk troubleshoot gentoo di neo-venom

Ok, here are the Jutsu to Upgrade your Gentoo from 2007.0 to the current release :)
Pertama-tama untuk mempercepat proses build kita nantinya, adalah hal yang wajib untuk terlebih dahulu melakukan optimasi kompilasi, Selanjutnya tinggal melakukan:

#emerge sync

upgrade profile ke 2008.0 dengan,
# eselect profile set (nomer profile 2008.0)

Kemudian build paket portage terbaru dengan,
# emerge portage
dan apabila anda menemukan error yang berkaitan dengan paket python, maka anda harus mem-build python terlebih dahulu, tetapi yang menjadi masalah adalah bahwa untuk mengkompilasi python terbaru anda butuh paket portage terbaru, dan begitu pula sebaliknya (hayoo :(), maka satu-satunya cara adalah membangun python dengan tanpa ketergantungan dengan portage.

#emerge --nodep python
#emerge portage
#emerge lzma-utils bash


Kemudian untuk memperbaiki ss/com_err/e2fsprogs/e2fsprogs-libs blocker, lakukan
#emerge -f e2fsprogs e2fsprogs-libs
#emerge -C ss com_err e2fsprogs
#emerge e2fsprogs
#hash -r

Untuk mengatasi mktemp/coreutils/util-linux blocker, lakukan
#emerge -C mktemp util-linux
#emerge coreutils util-linux
#hash -r


Apabila menemukan error "file collision(s)" (yang akan sering ditemui) maka gunakan opsi IGNORE, sebagai contoh menemukan error tersebut saat akan mem-build e2fsprogs
#COLLISION_IGNORE="/usr" emerge -av e2fsprogs

Kemudian lakukan build ulang system dan world. Untuk memudahkan, berikut skrip sederhana dari hasil googling yang akan melakukan auto resume apabila ada proses emerge yang gagal

#for type in system world ; do
emerge -e ${type}
while [ $? -gt 0 ]; do
emerge --resume -e ${type}
done
done

Tips n trick

1. Gunakan flag USE, untuk (tidak) meng-"include"-kan suatu aplikasi ke aplikasi lain, sebagai contoh:
Apabila ditemui error saat php menjadi default untuk di ikutkan saat membangun gnome, untuk mengatasinya gunakan

#USE=-php emerge gnome atau,
#echo "gnome-base/gnome -php" > /etc/portage/package.use

2. Jalankan "module-rebuild rebuild" selesai melakukan kompilasi kernel
3. Mengeksekusi program "revdep-rebuild"
4. Sebaiknya mem-backup konfigurasi file anda, sepeti xorg.conf, make.conf, dkk :P
Ok, sekarang neo-venom gw telah sembuh seperti sediakala, petunjuk ini untuk mereka yang mau mencoba dan sangat amat disarankan bagi yang memiliki waktu luang :). Terbukti, gw butuh waktu lebih kurang 1 minggu (memanfaatkan sisa waktu kerja, dan aktifitas penting lainnya) untuk membangun ulang gentoo gw untuk menjadi sedikit sama atau mungkin sedikit lebih baik dari sebelumnya.

Mudah-mudahan bermanfaat :)

Gambar adalah properti http://www.nixbasics.com

14 comments:

  1. mas ammar kalau untuk yang dari versi 2008.0-r1 gimana ya ?? oh iya saya sempat install gentoo 2008.0-r1 dari live-cd tapi setelah selesai VGA nya sepertinya ada masalah waktu saya boot pakai dan sewaktu saya lspci |grep -i VGA ini hasilnya 00:02.0 VGA compatible controller: Intel Corporation 82945G/GZ Integrated Graphics Controller (rev 02), makasih sebelumnya

    ReplyDelete
  2. @yasin5582: untuk rilis 2008.0-r1 cukup dengan melakukan "emerge sync; emerge portage (jika di minta); emerge -unD world", masalahnya dimana mas? saat akan load desktop manager, saat load kernel (berarti framebuffer), atau malah saat akan load bootloader (grub)?

    ReplyDelete
  3. masalahnya sewaktu load desktop manager seperti kurang memory tapi sewaktu disetting di BIOS memorynya sudah di besarkan masalah tetap sama, kurang memory, oh iya untuk VGA yang saya gunakan itu onboard tapi kenapa sewaktu booting dengan live-cd nya itu tidak masalah bisa menload desktop manager defaultnya kan dia pakai xfce ini tidak masalah, oh iya ada tidak cd package gnome, kde, dll dalam satu cd untuk gentoo biar tidak langsung koneksi ke internet dahulu, satu lagi untuk bisa tidak kita emerge offline seperti biasanya dia menyimpan dia /usr/portage/distfiles/ atau kita emerge dari cd package kira2 gimana mas ??? makasih ya

    ReplyDelete
  4. @yassin5582: ada error or warningnya ?, cara gampang coba aja dulu dari live-cd trus kamu kopi /etc/X11/xorg.conf. atau generate sendiri dengan Xorg -configure atau xorgconfig, emang urusan xorg ini agak ribet :d. Soal paket yang di bundel ke cd saya kurang tau, tetapi selama kamu ada paketnya, memang hanya tinggal di kopi ke /usr/portage/distfiles, asalkan sebelum itu kamu melakukan sync terlebih dahulu, minimal kamu punya ebuildnya :d (or generate manifest manual saja, pakai "ebuild [paket.ebuild] manifest".

    ReplyDelete
  5. ok mas akan saya coba, oh iya untuk livedvd yang versi 2007 itu ada masalah tidak??? soalnya saya download yang livedvd 2008 bermasalah kernelnya

    ReplyDelete
  6. @yassin:
    Coba lihat versi xorg-server yang terinstal, jika sudah mencapai versi 1.5.3 atau di atasnya, coba pindahkan file konfigurasi Xorg (/etc/X11/xorg.conf) ke direktori home, kemudian restart X. Xorg terbaru bisa dijalankan tanpa ada file konfigurasi (tentunya dengan beberapa kelemahan, tapi paling tidak nantinya akan ketahuan di mana letak kesalahan). Selain itu, coba periksa log Xorg (grep -e EE -e WW /var/log/Xorg.0.log). Perlu diketahui juga, driver untuk VGA intel telah berganti nama menjadi 'intel', bukan i810 lagi.

    @y3dips:
    Mungkin akan lebih baik ketika melakukan instalasi manual beberapa utilitas sistem seperti e2fsprogs, mktemp coreutils util-linux, perintah emerge ditambahkan opsi '-1' atau '--oneshot' agar paket-paket tersebut tidak ditambahkan ke dalam 'world'

    Salam kenal untuk semua :)

    ReplyDelete
  7. @kucrut: bukan hanya i810, tapi intel 915, 945, 950 juga telah seragam menggunakan driver intel, paketnya xf86-video-intel.

    Kucrut, bukannya paket-paket itu adalah nyawa dari GNU/linux, (seperti util-linux yang berisi dmesg, mount, dsb), kalo paket-paket tersebut tidak terdaftar di world maka kemungkinan paket tersebut tidak terupgrade adalah lebih besar, dan bagaimana mengupgrade system kalo paket tersebut belum diupgrade terlebih dahulu, saya lebih suka menggunakan -1 atau --oneshoot, ke paket2 yang tidak terlalu mendesak dan besar apabila di upgrade seperti openoffice yang jarang saya gunakan, dsb.

    salam kenal juga :)

    ReplyDelete
  8. Benar sekali, paket-paket itu sangat penting, tetapi akan lebih baik jika posisinya di sistem adalah sebagai dependensi (@sistem). Paket-paket ini tidak perlu ditambahkan ke dalam world karena dengan sendirinya akan ikut terinstal jika memang diperlukan oleh paket lain.

    Dengan cara ini, jika pada suatu hari nanti ada paket sistem ini yang berganti nama atau digabungkan dengan paket lain (seperti `mktemp` pada kasus upgrade di atas) kita tidak akan sulit melacak paket yang menyebabkan block. Selain itu, jika memang suatu saat paket-paket tersebut tidak diperlukan lagi, kita bisa membersihkan sistem dengan `emerge --depclean && revdep-rebuild` tanpa harus meng-uninstalnya satu-persatu.

    Pada akhirnya, semua itu tergantung pengguna. Yang pasti cara tersebut sudah terbukti mempermudah saya dalam mengurusi sistem Gentoo yang terkadang bisa sangat manja ketika ada library penting yang harus diupgrade (seperti kasus expat di beberapa tahun lalu).

    Anyways... lanjutkan perjuangan, tulisannya bagus lho!

    ReplyDelete
  9. Oh, ada yang terlupa. Untuk upgrade secara menyeluruh (@system dan @world), cukup gunakan opsi --deep dan --newuse. `emerge -uDN @system @world` untuk portage-2.2.x atau `emerge -uDN world` untuk portage di bawah versi tersebut.

    Opsi --deep sengaja dipisahkan oleh para pengembang karena banyak pengguna yang hanya ingin meng-upgrade paket-paket world (aplikasi biasa) tanpa harus menghadapi resiko sistem yang kacau karena upgrade paket-paket utilitas sistem.

    ReplyDelete
  10. @Kucrut: hehehe mas kucrut, soalnya "mktemp" itu kan dari first-install :), karena itu agak ribet ngupgrade dari 2007.0 karena banyak paket yang berganti nama, atau di ganti total. Kebetulan portage saya masih 2.2.x kebawah, jadi masih menggunakan -u world :) , yup.. saya juga notice mengenai "option --deep" yang di pisah, karena itu terkadang di skip dulu penggunaan emerge -uDN, tetapi hanya emerge -u sahaja :)

    anyway, thx buat sharing logh, susah cari pengguna gentoo yang mo sharing di indo, sering-sering mampir yah mas :)

    ReplyDelete
  11. mas,link blog'e sampean tak taruh di blog q ya!!!

    salam from newbie!!!!

    ReplyDelete
  12. Gentoo kalo di Jogja artinya Preman atao Wak Geng. Jadi kalo diharfiahin Gentoo itu Premannya Linux ampuuun juragaaaan...

    ReplyDelete
  13. ok mas kucrut sudah bisa saya remove file xorg.conf dan saya restart X Windownya dan berhasil hehe..... :-D thanks semuanya

    ReplyDelete
  14. @th3_9at3: monggo.. makasih yah :)
    @Chik0: jiakakakaka.. ada-ada aja sampeyan k0 :P

    ReplyDelete