1. Tentang Proses Instalasi Gentoo Linux
Pertama-tama, selamat datang di Gentoo! Anda akan memasuki dunia yang penuh dengan pilihan dan performa. Konsep Gentoo adalah kebebasan memilih. Ketika anda menginstal Gentoo, hal ini akan diperjelas beberapa kali -- anda dapat memilih sejauh mana anda ingin mengkompilasi sistem anda, cara menginstal Gentoo, sistem log apa yang anda inginkan, dll.Gentoo adalah metadistro modern yang kencang dengan rancangan yang rapi dan fleksibel. Gentoo dibangun dengan software bebas dan tidak akan menyembunyikan apapun yang berada dibalik Gentoo dari para penggunanya. Portage, sistem pengatur paket yang digunakan oleh Gentoo, ditulis dengan Python, yang berarti anda dapat dengan mudah melihat dan memodifikasi source code-nya. Sistem paket Gentoo menggunakan source code (walaupun dukungan terhadap paket-paket prebuilt diikutsertakan juga) dan konfigurasi Gentoo menggunakan file text biasa. Dengan kata lain, keterbukaan ada dimana-mana.
Sangat penting bagi anda untuk mengerti bahwa pilihan adalah apa yang membuat Gentoo berfungsi. Kami mencoba untuk tidak memaksa anda terhadap apapun yang tidak anda sukai. Jika anda merasa kami memaksa anda, silakan buat laporan bug.
Proses instalasi Gentoo dapat dirangkum dalam 10 langkah, yang terdiri dari bab 2 sampai 11. Setiap langkah menghasilkan satu situasi tertentu:
- Setelah langkah 1, anda akan berada di dalam lingkungan kerja yang siap digunakan untuk menginstal Gentoo
- Setelah langkah 2, koneksi internet anda sudah siap digunakan untuk menginstal Gentoo.
- Setelah langkah 3, harddisk anda siap untuk melakukan proses instalasi Gentoo
- Setelah langkah 4, lingkungan instalasi anda sudah siap dan anda siap untuk melakukan chroot ke lingkungan baru.
- Setelah langkah 5, paket-paket inti, yang sama untuk seluruh instalasi Gentoo, telah terinstal
- Setelah langkah 6, anda telah mengkompilasi kernel Linux anda
- Setelah langkah 7, anda telah mengkonfigurasi hampir semua file konfigurasi sistem Gentoo
- Setelah langkah 8, aplikasi-aplikasi sistem penting (yang dapat anda pilih dari sebuah daftar) telah terinstal
- Setelah langkah 9, bootloader pilihan anda telah terinstal dan dikonfigurasi, dan anda sudah masuk ke instalasi Gentoo baru anda
- Setelah langkah 10, sistem Gentoo Linux anda sudah siap untuk beraksi
Kadang-kadang anda dapat mengambil langkah opsional. Langkah-langkah tersebut ditandai dengan "Opsional: " dan tidak diperlukan untuk menginstal Gentoo. Bagaimanapun juga, beberapa langkah opsional bergantung kepada pilihan anda sebelumnya. Kami akan memberitahukannya kepada anda ketika hal ini terjadi, yaitu ketika anda memilih, dan sesaat sebelum langkah opsional dijelaskan.
Anda dapat menginstal Gentoo dengan berbagai cara. Anda dapat mendownload salah satu CD instalasi kami dan menggunakannya untuk instalasi, atau melakukan instalasi dari sebuah distro yang telah terinstal, dari CD bootable (mis. Knoppix), dari lingkungan netboot, dari rescue floppy, dsb.
Dokumen ini menjelaskan proses instalasi dengan CD Instalasi Gentoo, atau pada beberapa kasus, boot jaringan. Instalasi ini menganggap bahwa anda ingin menginstal versi terbaru yang ada untuk setiap paket. Jika anda ingin melakukan instalasi tanpa jaringan (internet), bacalah Buku Pegangan Gentoo 2008.0 yang berisi petunjuk instalasi tanpa jaringan (internet).
Perlu dicatat juga bahwa, jika anda berencana untuk menggunakan GRP (Gentoo Reference Platform, sebuah koleksi paket yang telah dikompilasi terlebih dulu yang berguna agar Gentoo langsung bisa digunakan setelah instalasi), anda harus mengikuti petunjuk di Buku Pegangan Gentoo 2008.0.
Untuk cara instalasi lain, bacalah Panduan Instalasi Alternatif. Kami juga menyediakan sebuah dokumen Tips & Trik yang mungkin bisa bermanfaat. Jika anda merasa petunjuk instalasi ini terlalu panjang, anda dapat mengikuti Panduan Instalasi Singkat kami yang tersedia di Sumber Dokumentasi jika arsitektur anda memilikinya.
Terdapat juga beberapa kemungkinan: anda dapat mengkompilasi seluruh sistem dari dasar atau menginstal paket-paket prebuilt untuk mendapatkan sistem Gentoo dalam waktu yang singkat. Dan tentu saja terdapat solusi penengah, yaitu ketika anda tidak perlu melakukan kompilasi dari dasar, tetapi dari sistem setengah jadi.
Jika anda mendapatkan masalah dalam proses instalasi (atau dokumentasi instalasi), kunjungilah sistem pelacak bug kami dan periksa apakah bug tersebut telah diketahui (dilaporkan) atau belum. Jika belum, buatlah laporan bug tentang masalah tersebut agar kami dapat memperbaikinya. Jangan takut dengan para pengembang yang ditugaskan pada bug anda -- mereka biasanya tidak memakan orang.
Perlu diketahui bahwa, walaupun dokumen yang sedang anda baca ini dikhususkan untuk satu arsitektur tertentu, dokumen ini akan tetap memiliki referensi ke arsitektur lain juga. Hal ini disebabkan oleh beberapa bagian dari Buku Pegangan Gentoo yang menggunakan source code yang sama/umum di semua arsitektur (untuk menghindari duplikasi usaha dan pemborosan sumber daya pengembangan). Kami akan berusaha untuk menguranginya seminimal mungkin agar tidak terjadi kebingungan.
Jika anda tidak yakin apakah masalah tersebut merupakan akibat dari kesalahan anda sendiri (beberapa error yang anda perbuat karena tidak membaca dokumentasi dengan seksama) atau masalah software (beberapa error yang kami perbuat karena tidak memeriksa instalasi/dokumentasi secara hati-hati), anda dapat bergabung dan bertanya di #gentoo di irc.freenode.net. Tentu saja, anda tidak harus jika anda tidak mau :)
Jika anda memiliki pertanyaan tentang Gentoo, bacalah FAQ kami, yang tersedia di Dokumentasi Gentoo. Anda dapat juga membaca FAQ ini di forum Gentoo. Jika anda tidak dapat menemukan jawabannya di sana, cobalah untuk bertanya di #gentoo, channel IRC kami di irc.freenode.net. Memang, sebagian dari kami adalah orang-orang aneh yang suka bermalas-malasan di IRC :-)
2. Memilih Media Instalasi yang Tepat
Sebelum kita mulai, pertama-tama mari kita tuliskan daftar hardware yang anda perlukan untuk menginstal Gentoo dengan sukses di komputer anda.CD Minimal | LiveCD | |
CPU | i486 atau yang lebih baru | i686 atau yang lebih baru |
Memori | 64 MB | 256 MB |
Ruang disk | 1.5 GB (belum termasuk swap) | |
Swap | Paling sedikit 256 MB |
Anda dapat boot, menyiapkan jaringan, menciptakan partisi, dan mulai menginstal Gentoo dari internet menggunakan setiap CD Instalasi. Saat ini kami menyediakan dua CD Instalasi yang sama-sama cocok digunakan untuk instalasi Gentoo, selama anda berniat melakukan instalasi berbasis internet dengan menggunakan paket-paket terbaru yang tersedia.
Penting: Jika anda ingin menginstal Gentoo tanpa sambungan Internet atau ingin menggunakan salah satu installer yang tersedia, bacalah petunjuknya di Buku-buku Pegangan Gentoo 2008.0. |
- CD Instalasi Minimal Gentoo, ramping, tanpa basa-basi, CD bootable yang kegunaan utamanya adalah untuk mem-boot sistem, menyiapkan jaringan, dan kemudian melanjutkan instalasi Gentoo.
- LiveCD Installer Gentoo berisi semua yang anda butuhkan untuk menginstal Gentoo. CD ini berisi lingkungan grafikal, juga installer berbasis grafik dan konsol yang akan melakukan instalasi secara otomatis, dan pastinya petunjuk instalasi untuk arsitektur komputer anda.
CD Instalasi Minimal bernama install-x86-minimal-2008.0_beta1.iso dan hanya membutuhkan ruang disk sebesar 57 MB. Anda dapat menggunakan CD Instalasi ini untuk menginstal Gentoo, tetapi anda harus memiliki sambungan internet.
CD Instalasi Minimal | Kelebihan dan Kelemahan |
+ | Ukuran download paling kecil |
- | Tidak berisi tarbal stage3, tidak ada snapshot Portage, tidak ada paket-paket GRP dan karena itu, tidak cocok untuk instalasi tanpa jaringan (internet). |
LiveCD Installer | Kelebihan dan Kelemahan |
+ | Berisi semua yang anda butuhkan. Anda bahkan bisa menginstal Gentoo tanpa sambungan internet. |
- | Ukuran download besar |
Tarbal stage3 dapat didownload di releases/x86/2008.0/stages/ dari salah satu Mirror Resmi Gentoo dan tidak tersedia di LiveCD.
Anda telah memilih menggunakan CD Instalasi Gentoo kami. Pertama-tama, kita akan mulai dengan mendownload dan burn CD Instalasi pilihan anda. Sebelumnya, kita telah membicarakan beberapa CD Instalasi yang tersedia, tetapi di manakah anda dapat menemukan CD tersebut?
Anda dapat mendownload CD Instalasi dari salah satu mirror kami. CD Instalasi berada di dalam direktori releases/x86/2008.0/installcd/.
Di dalam direktori tersebut, anda akan menemukan file-file ISO. File-file tersebut merupakan imej CD penuh yang dapat anda tuliskan ke sebuah CD-R.
Jika anda ingin memeriksa keabsahan file yang baru saja anda download, anda dapat memeriksa MD5 checksum-nya dan membandingkannya dengan MD5 checksum yang kami sediakan (mis. install-x86-minimal-2008.0_beta1.iso.DIGESTS). Anda dapat memeriksa MD5 checksum dengan utilitas md5sum di Linux/Unix atau md5sum untuk Windows.
Cara lain untuk memeriksa keabsahan file adalah dengan menggunakan GnuPG untuk memeriksa tanda kriptografi yang kami sediakan (file dengan akhiran .asc). Download file tersebut dan dapatkan kunci publik:
Daftar Kode 3.1: Mendapatkan kunci publik |
$ gpg --keyserver subkeys.pgp.net --recv-keys 17072058
|
Daftar Kode 3.2: Memeriksa tanda kriptografi |
$ gpg --verify <signature file> <downloaded iso>
|
- Dengan cdrecord, anda hanya perlu mengetikkan cdrecord dev=/dev/hdc <file iso yang baru di-download> (gantikan /dev/hdc dengan CD-RW drive anda).
- Dengan K3B, pilih Tools > Burn Image. Lalu, anda dapat mencari file ISO anda di bagian "Image to Burn". Terakhir, klik Start.
Sekarang, masukkan CD instalasi ke CD-ROM drive anda dan reboot. Anda akan menemukan layar boot yang menarik dengan logo Gentoo Linux. Pada layar ini, anda dapat menekan Enter untuk memulai proses boot dengan opsi boot default, atau boot CD instalasi dengan opsi boot yang berbeda dengan menuliskan nama kernel diikuti oleh opsi boot dan menekan Enter.
Menuliskan nama kernel? Ya, kami menyediakan beberapa kernel di CD Instalasi kami. Kernel default adalah gentoo. Kernel-kernel lainnya diperuntukkan bagi hardware dengan kebutuhan khusus, dan tipe -nofb yang akan menonaktifkan framebuffer.
Berikut ini adalah rangkuman singkat tentang kernel-kernel yang tersedia:
Kernel | Penjelasan |
gentoo | Kernel 2.6 default dengan dukungan multi-cpu |
gentoo-nofb | Sama dengan gentoo, namun tanpa dukungan framebuffer |
memtest86 | Memeriksa error pada RAM anda |
Opsi Hardware:
- acpi=on
- Memuat dukungan untuk ACPI, juga menjalakan daemon acpid ketika CD boot. Anda hanya memerlukan opsi ini jika sistem anda memerlukan ACPI. Opsi ini tidak diperlukan untuk mendapatkan dukungan Hyperthreading.
- acpi=off
- Menonaktifkan ACPI secara menyeluruh. Opsi ini berguna untuk komputer model lama, juga harus digunakan ketika anda ingin mendapatkan dukungan APM. Opsi ini akan mengaktifkan dukungan Hyperthreading untuk prosesor anda.
- console=X
- Opsi ini mengaktifkan akses konsol serial di CD. Opsi pertama adalah nama device, biasanya ttyS0 di x86, diikuti dengan opsi koneksi lainnya, yang dipisahkan dengan koma. Opsi default adalah 9600,8,n,1.
- dmraid=X
- Dengan opsi ini, anda bisa menambahkan opsi yang anda inginkan pada device-mapper RAID subsystem. Setiap opsi harus dikurung dengan tanda kutip.
- doapm
- Opsi ini memuat dukungan driver APM. Untuk dapat menggunakan opsi ini, anda juga harus menggunakan opsi acpi=off.
- dopcmcia
- Opsi ini memuat dukungan untuk perangkat PCMCIA dan Cardbus, sekaligus menjalankan pcmcia cardmgr. Anda hanya memerlukannya jika anda melakukan boot dari perangkat PCMCIA/Cardbus.
- doscsi
- Opsi ini memuat dukungan untuk kebanyakan SCSI controller. Opsi ini juga diperlukan untuk melakukan boot dari perangkat USB, karena perangkat USB menggunakan subsistem SCSI di kernel.
- hda=stroke
- Dengan opsi ini anda dapat mempartisi seluruh harddisk anda, bahkan jika BIOS anda tidak mampu menangani harddisk dengan kapasitas besar. Opsi ini hanya digunakan pada komputer yang memiliki BIOS keluaran lama. Gantikan hda dengan harddisk yang memerlukan opsi ini.
- ide=nodma
- Opsi ini memaksa penonaktifan DMA di kernel, yang diperlukan oleh beberapa chipset IDE dan CDROM model lama. Jika komputer anda mendapatkan masalah ketika melacak CDROM IDE, coba gunakan opsi ini. Opsi ini juga akan menonaktifkan pengaturan default hdparm.
- noapic
- Opsi ini menonaktifkan Advanced Programmable Interrupt Controller yang terdapat pada beberapa motherboard model baru. Opsi ini diketahui dapat menyebabkan masalah jika digunakan pada motherboard model lama.
- nodetect
- Menonaktifkan semua pelacakan hardware otomatis yang dilakukan oleh CD, termasuk DHCP. Opsi ini akan sangat berguna ketika anda ingin mengetahui penyebab masalah, baik itu dari CD maupun dari driver.
- nodhcp
- Opsi ini menonaktifkan DHCP pada kartu jaringan yang ditemukan. Opsi ini berguna jika anda ingin menggunakan alamat IP tetap.
- nodmraid
- Menonaktifkan dukungan untuk device-mapper RAID, seperti yang digunakan oleh IDE/SATA RAID controller onboard.
- nofirewire
- Menonaktifkan pemuatan modul Firewire. Opsi ini sebaiknya hanya digunakan ketika anda mendapatkan masalah ketika boot dari CD yang disebabkan oleh Firewire.
- nogpm
- Menonaktifkan dukungan mouse konsol gpm.
- nohotplug
- Mencegah initscript hotplug dan coldplug pada saat boot. Opsi ini berguna untuk mencari penyebab masalah boot dari CD.
- nokeymap
- Opsi ini menonaktifkan pemilihan layout keyboard non-US.
- nolapic
- Menonaktifkan APIC lokal pada kernel Uniprocessor.
- nosata
- Menonaktifkan pemuatan modul-modul SATA. Opsi ini berguna jika sistem anda mendapatkan masalah yang disebabkan oleh subsistem SATA.
- nosmp
- Opsi ini menonaktifkan SMP, atau Symmetric Multiprocessing, pada kernel yang memiliki dukungan SMP. Berguna untuk mencari penyebab masalah pada beberapa driver dan motherboard.
- nosound
- Menonaktifkan dukungan suara. Berguna jika dukungan suara menyebabkan masalah pada sistem.
- nousb
- Opsi ini menonaktifkan pemuatan modul-modul USB. Berguna untuk mencari penyebab masalah.
- slowusb
- Menambahkan waktu tunda pada proses boot yang diperlukan oleh CDROM USB, seperti yang terdapat pada komputer IBM BladeCenter.
- doevms
- Mengaktifkan dukungan untuk EVM IBM, atau Enterprise Volume Management System. Opsi ini tidak aman digunakan dengan lvm.
- dolvm
- Mengaktifkan dukungan untuk s Logical Volume Management Linux. Tidak aman digunakan dengan evms.
- debug
- Mengaktifkan kode-kode debug. Anda mungkin akan mendapatkan banyak data acak yang ditampilkan di layar.
- docache
- Opsi ini akan menyimpan seluruh bagian yang diperlukan untuk menjalankan sistem dari CD ke RAM, agar anda dapat mengeluarkan CD. Anda memerlukan RAM dengan ukuran paling sedikit dua kali lipat dari ukuran CD.
- doload=X
- Opsi ini akan memerintahkan ramdisk untuk memuat semua modul yang anda cantumkan, berikut dependensinya. Gantikan X dengan modul yang anda perlukan. Anda dapat mencantumkan lebih dari satu modul dengan menggunakan koma sebagai pemisah.
- dosshd
- Menjalankan sshd ketika boot, sangat berguna untuk melakukan instalasi jarak jauh/tanpa campur tangan.
- passwd=foo
- Menetapkan foo sebagai password root, diperlukan oleh opsi dosshd.
- noload=X
- Opsi ini memerintahkan ramdisk untuk tidak memuat modul tertentu, yang mungkin akan menyebabkan masalah. Sintaks opsi ini sama dengan sintaks yang digunakan oleh opsi doload.
- nonfs
- Opsi ini mencegah portmap/nfsmount agar tidak dijalankan ketika boot.
- nox
- Opsi ini mencegah X pada LiveCD agar tidak dijalankan secara otomatis. Sebagai gantinya, anda akan dibawa ke konsol.
- scandelay
- Opsi ini memerintahkan CD untuk jeda selama 10 detik pada bagian tertentu dari proses boot agar perangkat yang lambat dapat melakukan inisialisasi dan siap digunakan.
- scandelay=X
- Dengan opsi ini anda dapat menentukan waktu jeda yang anda inginkan, dalam satuan detik. Gantikan X dengan waktu jeda yang anda inginkan.
Catatan: CD akan memeriksa opsi "no*" sebelum menjalankan opsi "do*", agar anda dapat merubah opsi berdasarkan urutan yang anda inginkan. |
Sekarang, lanjutkan dengan Konfigurasi hardware tambahan.
Ketika CD Instalasi boot, semua hardware anda akan dikenali dan modul-modul kernel yang diperlukan untuk mendukung hardware anda akan dimuat. Pada kebanyakan kasus, proses ini sukse. Tetapi, pada beberapa kasus lainnya, proses tersebut mungkin gagal memuat modul kernel yang dibutuhkan secara otomatis. Jika proses otodeteksi perangkat PCI melewatkan beberapa hardware di sistem anda, anda harus memuat modul kernel tersebut secara manual.
Pada contoh berikut ini, kita akan mencoba memuat modul 8139too (dukungan untuk beberapa jenis perangkat network):
Daftar Kode 3.3: Memuat modul kernel |
# modprobe 8139too
|
Daftar Kode 3.4: Memeriksa performa harddisk |
# hdparm -tT /dev/hda
|
Daftar Kode 3.5: Tweak performa harddisk |
Aktivasi DMA: # hdparm -d 1 /dev/hda Aktifkan opsi peningkat performa yang aman: # hdparm -d 1 -A 1 -m 16 -u 1 -a 64 /dev/hda |
Untuk mengganti password root, gunakan perintah passwd:
Daftar Kode 3.6: Mengganti password root |
# passwd New password: (Masukkan password baru anda) Re-enter password: (Ketikkan sekali lagi password anda) |
Daftar Kode 3.7: Membuat akun user |
# useradd john # passwd john New password: (Masukkan password john) Re-enter password: (Ketikkan lagi password john) |
Daftar Kode 3.8: Mengganti id user |
# su - john
|
Jika anda ingin membaca dokumentasi di CD, anda dapat langsung menjalankan links untuk membacanya:
Daftar Kode 3.9: Membaca dokumentasi di CD |
# links /mnt/cdrom/docs/html/index.html
|
Daftar Kode 3.10: Membaca Dokumentasi online |
# links http://www.gentoo.org/doc/id/handbook/handbook-x86.xml
|
Jika anda ingin mengizinkan pengguna lain untuk mengakses komputer anda selama proses instalasi Gentoo (mungkin ia akan membantu anda menginstal Gentoo, ataupun melakukannya sendiri untuk anda), anda perlu membuat sebuah akun untuknya, atau memberitahukan password root anda kepadanya (hanya lakukan jika anda benar-benar percaya kepada pengguna tersebut).
Untuk menjalankan daemon SSH, jalankan perintah berikut:
Daftar Kode 3.11: Menjalankan daemon SSH |
# /etc/init.d/sshd start
|
3. Konfigurasi Jaringan (Internet)
Jika sistem anda terhubung ke jaringan melalui server DHCP, kemungkinan besar konfigurasi jaringan anda sudah diatur secara otomatis. Jika benar, maka anda seharusnya sudah bisa menggunakan berbagai perintah jaringan pada CD Instalasi seperti ssh, scp, ping, irssi, wget, links, dll.Jika jaringan anda sudah berfungsi, maka perintah /sbin/ifconfig akan menampilkan beberapa intarface jaringan selain lo, seperti eth0:
Daftar Kode 1.1: /sbin/ifconfig untuk konfigurasi jaringan yang sudah siap |
# /sbin/ifconfig (...) eth0 Link encap:Ethernet HWaddr 00:50:BA:8F:61:7A inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::50:ba8f:617a/10 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0 TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0 collisions:1984 txqueuelen:100 RX bytes:485691215 (463.1 Mb) TX bytes:123951388 (118.2 Mb) Interrupt:11 Base address:0xe800 |
Pada kebanyakan kasus, anda hanya perlu mengatur variabel dengan menggunakan nama server tersebut. Sebagai contoh, kami menganggap proxy anda adalah proxy.gentoo.org dengan port 8080.
Daftar Kode 1.2: Menentukan server proxy |
(Jika proxy tersebut membatasi koneksi HTTP) # export http_proxy="http://proxy.gentoo.org:8080" (Jika proxy tersebut membatasi koneksi FTP) # export ftp_proxy="ftp://proxy.gentoo.org:8080" (Jika proxy tersebut membatasi koneksi RSYNC) # export RSYNC_PROXY="proxy.gentoo.org:8080" |
Daftar Kode 1.3: Menambahkan username/password pada variabel proxy |
http://username:password@proxy.gentoo.org:8080 |
Daftar Kode 1.4: Menguji koneksi jaringan |
# ping -c 3 www.gentoo.org
|
Jika koneksi jaringan anda tidak dapat langsung berfungsi, pada beberapa media instalasi, anda dapat menggunakan net-setup (untuk jaringan biasa atau wireless), ppoe-setup (untuk pengguna ADSL) atau pptp (untuk pengguna PPTP - hanya tersedia untuk x86, amd64, alpha, ppc dan ppc64).
Jika media instalasi yang anda gunakan tidak memiliki utilitas-utilitas tersebut, atau jaringan anda masih belum berfungsi, lanjutkan ke Konfigurasi jaringan secara manual.
- Bagi pengguna Ethernet biasa, lanjutkan dengan Default: Menggunakan net-setup
- Bagi pengguna ADSL, lanjutkan dengan Alternatif: Menggunakan PPP
- Bagi pengguna PPTP, lanjutkan dengan Alternatif: Menggunakan PPTP
Daftar Kode 2.1: Menjalankan skrip net-setup |
# net-setup eth0
|
Jika koneksi jaringan anda masih belum berfungsi, lanjutkan dengan Konfigurasi jaringan secara manual.
Jika anda menggunakan PPPoE untuk melakukan koneksi ke internet, CD Instalasi (semua versi) telah mempermudah konfigurasi jaringan anda dengan mengikutsertakan utilitas ppp. Gunakan skrip ppoe-setup yang tersedia untuk mengkonfigurasi jaringan anda. Anda akan ditanyakan tentang kartu jaringan yang terhubung ke modem adsl anda, username dan password anda, IP dari server DNS anda, dan apakah anda memerlukan firewall dasar atau tidak.
Daftar Kode 2.2: Menggunakan ppp |
# ppoe-setup # ppoe-start |
Jika semua berjalan lancar, lanjutkan dengan Mempersiapkan Disk.
Jika anda memerlukan dukungan PPTP, anda dapat menggunakan utilitas pptpclient yang disediakan di CD Instalasi. Tetapi, sebelumnya anda harus memastikan dahulu bahwa konfigurasi anda sudah benar. Edit file /etc/ppp/pap-secrets atau /etc/ppp/chap-secrets agar berisi kombinasi username/password anda yang benar:
Daftar Kode 2.3: Edit file /etc/ppp/chap-secrets |
# nano -w /etc/ppp/chap-secrets
|
Daftar Kode 2.4: Edit file /etc/ppp/options.pptp |
# nano -w /etc/ppp/options.pptp
|
Daftar Kode 2.5: Koneksi ke server dial-in |
# pptp <server ip>
|
Sewaktu CD Instalasi boot, seluruh hardware anda akan dikenali dan modul-modul kernel yang diperlukan untuk mendukung hardware anda akan dimuat. Pada kebanyakan kasus, proses ini berjalan lancar. Tetapi, pada beberapa kasus lain, CD Instalasi mungkin gagal memuat modul kernel yang anda perlukan.
Jika net-setup atau ppoe-setup gagal, mungkin kartu jaringan anda tidak ditemukan secara otomatis. Ini berarti anda harus memuat modul kernel tersebut secara manual.
Untuk mengetahui modul kernel apa saja yang kami sediakan untuk jaringan, gunakan perintah berikut:
Daftar Kode 3.1: Memeriksa modul yang tersedia |
# ls /lib/modules/`uname -r`/kernel/drivers/net
|
Daftar Kode 3.2: Menggunakan modprobe untuk memuat modul kernel |
(Sebagai contoh, kita akan memuat modul pcnet32) # modprobe pcnet32 |
Daftar Kode 3.3: Pemeriksaan kartu jaringan, sukses |
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr FE:FD:00:00:00:00
BROADCAST NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
|
Daftar Kode 3.4: Pemeriksaan kartu jaringan, gagal |
# ifconfig eth0
eth0: error fetching interface information: Device not found
|
Anggap anda kartu jaringan anda sudah dikenali, anda sekarang dapat mencoba lagi net-setup atau adsl-setup (yang harusnya sukses sekarang), tetapi untuk para hardcore, kami akan menjelaskan cara mengkonfigurasi jaringan anda secara manual.
Pilih salah satu topik berikut yang sesuai dengan konfigurasi jaringan anda:
- Menggunakan DHCP untuk mendapatkan IP secara otomatis
- Mempersiapkan akses wireless jika anda memiliki kartu wireless
- Mengerti terminologi jaringan menjelaskan hal yang perlu anda ketahui tentang jaringan
- Menggunakan ifconfig dan route menjelaskan cara mengatur jaringan anda secara manual
Daftar Kode 3.5: Menggunakan dhcpcd |
# dhcpcd eth0 (Sebagian admin jaringan mengharuskan anda menggunakan) (hostname dan domainname yang disediakan oleh server DHCP) (Dalam kasus ini, gunakan) # dhcpcd -HD eth0 |
Catatan: Dukungan untuk perintah iwconfig hanya tersedia pada CD Instalasi x86, amd64 dan ppc. Anda tetap dapat memfungsikan ekstensinya dengan mengikuti petunjuk dari proyek linux-wlan-ng. |
Daftar Kode 3.6: Melihat pengaturan wireless saat ini |
# iwconfig eth0
eth0 IEEE 802.11-DS ESSID:"GentooNode"
Mode:Managed Frequency:2.442GHz Access Point: 00:09:5B:11:CC:F2
Bit Rate:11Mb/s Tx-Power=20 dBm Sensitivity=0/65535
Retry limit:16 RTS thr:off Fragment thr:off
Power Management:off
Link Quality:25/10 Signal level:-51 dBm Noise level:-102 dBm
Rx invalid nwid:5901 Rx invalid crypt:0 Rx invalid frag:0 Tx
excessive retries:237 Invalid misc:350282 Missed beacon:84
|
Catatan: Beberapa kartu wireless mungkin memiliki nama perangkat wlan0 atau ra0, bukan eth0. Jalankan iwconfig tanpa parameter apapun untuk mengetauhi nama perangkat yang digunakan. |
Daftar Kode 3.7: Mengubah ESSID dan/atau menambah kunci WEP |
(Perintah ini menetapkan "GentooNode" sebagai nama jaringan) # iwconfig eth0 essid GentooNode (Perintah ini mengatur kunci hex WEP) # iwconfig eth0 key 1234123412341234abcd (Perintah ini mengatur kunci ASCII - tambahkan awalan "s:") # iwconfig eth0 key s:password-anda |
Catatan: Jika anda sudah mengetahui apa itu alamat IP, alamat broadcast, netmask dan nameserver, maka anda dapat melewati seksi ini dan lanjutkan dengan Menggunakan ifconfig dan route. |
Di dalam jaringan, sebuah komputer dikenal melalui alamat IP (Internet Protocol)-nya. Alamat tersebut merupakan kombinasi dari empat nomor-nomor antara 0 dan 255. Begitulah cara kita mengartikannya. Sebenarnya, alamat IP dibentuk dengan 32 bit (satu dan nol). Mari kita lihat sebuah contoh:
Daftar Kode 3.8: Contoh alamat IP |
IP Address (numbers): 192.168.0.2 IP Address (bits): 11000000 10101000 00000000 00000010 -------- -------- -------- -------- 192 168 0 2 |
Pemisahan ini ditulis dengan netmask, yaitu kumpulan angka-angka satu yang diikuti oleh angka-angka nol. Bagian dari alamat IP yang ditutupi oleh angka-angka satu merupakan bagian jaringan, sedangkan sisanya merupakan bagian host. Seperti biasa, netmask dapat ditulis sebagai alamat IP.
Daftar Kode 3.9: Contoh pemisahan jaringan/host |
IP-address: 192 168 0 2 11000000 10101000 00000000 00000010 Netmask: 11111111 11111111 11111111 00000000 255 255 255 0 +--------------------------+--------+ Network Host |
Alamat broadcast merupakan alamat IP dengan bagian jaringannya sama dengan jaringan anda, tetapi hanya angka-angka satu pada bagian host-nya. Setiap komputer di jaringan memperhatikan alamat IP ini. Alamat ini digunakan hanya untuk mem-broadcast paket.
Daftar Kode 3.10: Alamat broadcast |
IP-address: 192 168 0 2 11000000 10101000 00000000 00000010 Broadcast: 11000000 10101000 00000000 11111111 192 168 0 255 +--------------------------+--------+ Network Host |
Sebelumnya, kami telah menjelaskan bahwa setiap komputer memiliki alamat IP khusus. Untuk mengakses komputer ini dengan namanya (bukan alamat IP), anda memerlukan sebuah layanan yang menerjemahkan nama (mis. dev.gentoo.org) ke alamat IP-nya (mis. 64.5.62.82). Layanan tersebut adalah "name service". Untuk menggunakannya, anda harus menentukan nameserver yang anda gunakan di file /etc/resolv.conf.
Pada beberapa kasus, gateway anda juga bertindak sebagai nameserver. Jika tidak, anda perlu mencantumkan nameserver yang disediakan oleh ISP anda.
Sebagai rangkuman, anda memerlukan informasi-informasi berikut sebelum melanjutkan:
Informasi Jaringan | Contoh |
Alamat IP anda | 192.168.0.2 |
Netmask | 255.255.255.0 |
Broadcast | 192.168.0.255 |
Gateway | 192.168.0.1 |
Nameserver | 195.130.130.5, 195.130.130.133 |
Untuk menetapkan sebuah alamat IP, anda memerlukan alamat IP anda, alamat broadcast dan netmask, lalu jalankan perintah berikut, jangan lupa gantikan ${IP_ADDR} dengan alamat IP anda, ${BROADCAST} dengan alamat broadcast anda dan ${NETMASK} dengan netmask anda:
Daftar Kode 3.11: Menggunakan ifconfig |
# ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up
|
Daftar Kode 3.12: Menggunakan route |
# route add default gw ${GATEWAY}
|
Daftar Kode 3.13: Menciptakan /etc/resolv.conf |
# nano -w /etc/resolv.conf
|
Daftar Kode 3.14: Contoh /etc/resolv.conf |
nameserver ${NAMESERVER1} nameserver ${NAMESERVER2} |
4. Mempersiapkan Disk
Kita akan melihat lebih dekat lagi pada aspek disk di Gentoo dan Linux secara umum, termasuk filesystem di Linux, partisi, dan block device. Kemudian, setelah anda mengenalnya, anda akan mempelajari cara menyiapkan partisi dan filesystem untuk instalasi Gentoo Linux.Pertama, kita akan berkenalan dengan block device. Block device yang paling dikenal di Linux mungkin adalah device IDE pertama, yaitu /dev/hda. Jika komputer anda menggunakan driver SCSI, maka driver pertama anda dalah /dev/sda. Drive SATA juga /dev/sda walaupun tetap merupakan drive IDE. Jika anda menggunakan libata framework baru di kernel, semua harddisk anda akan diberi label /dev/sd*.
Block device di atas merepresentasikan antarmuka abstrak ke disk. Aplikasi akan dapat menggunakannya untuk berinteraksi dengan disk tanpa perlu mengetahui jenis disk itu sendiri, apakah IDE, SCSI, atau yang lainnya. Aplikasi cukup mengalamatkan penyimpanannya di disk sebagai blok-blok berukuran 512 byte yang dapat diakses dengan cara acak.
Walaupun secara teori anda dapat menggunakan seluruh disk anda untuk sistem Linux, hal ini hampir tidak pernah diterapkan. Tetapi, block device disk dipisah-pisahkan lagi menjadi block device yang lebih kecil, lebih mudah ditangani. Pada sistem x86, block device kecil tersebut dikenal sebagai partisi.
Partisi dapat dibagi menjadi tiga jenis: primary, extended, dan logical.
Partisi primary adalah sebuah partisi yang informasinya tersimpan di MBR (Master Boot Record). Karena MBR sangat kecil (512 byte), hanya empat partisi primary yang dapat diciptakan (sebagai contoh, /dev/hda1 sampai /dev/hda4).
Partisi extended adalah partisi primary khusus (artinya partisi extended adalah salah satu dari empat partisi primary yang mungkin) yang berisi lebih banyak partisi di dalamnya. Partisi tersebut pada awalnya tidak ada, tetapi karena empat partisi dianggap sangat sedikit, maka partisi extended diciptakan untuk menambahkan skema partisi tanpa kehilangan kompatibilitas terhadap skema yang lama.
Partisi logical adalah partisi di dalam partisi extended. Informasi partisi tersebut tidak tersimpan di MBR, tetapi didefinisikan di dalam partisi extended.
CD Instalasi x86 menyediakan dukungan untuk EVMS dan LVM2. EVMS dan LVM2 meningkatkan fleksibilitas ketika anda menciptakan partisi. Selama proses instalasi, kami akan berfokus pada partisi "biasa", tetapi bagus juga untuk mengetahui bahwa EVMS dan LVM2 juga didukung.
Jika anda tidak tertarik untuk merancang skema partisi anda sendiri, anda dapat menggunakan skema partisi yang kami gunakan di seluruh buku ini:
Partisi | Filesystem | Besar | Penjelasan |
/dev/hda1 | ext2 | 32M | Partisi boot |
/dev/hda2 | (swap) | 512M | Partisi swap |
/dev/hda3 | ext3 | Sisa dari disk | Partisi root |
Jumlah partisi sangat tergantung pada lingkungan anda. Sebagai contoh, jika anda memiliki banyak pengguna, anda mungkin sekali ingin menciptakan partisi /home yang terpisah untuk meningkatkan keamanan dan mempermudah proses backup. Jika anda menginstal Gentoo sebagai server mail, partisi /var anda sebaiknya dipisahkan karena surat-surat anda disimpan di partisi /var. Pilihan filesystem yang tepat juga dapat meningkatkan performa. Server-server game sebaiknya memiliki partisi /opt yang terpisah karena kebanyakan server game diinstal di partisi tersebut. Alasan utamanya juga sama dengan partisi /home: keamanan dan backup. Anda pasti ingin menjaga /usr agar tetap luas: bukan hanya karena partisi ini menampung hampir semua aplikasi, tetapi pohon Portage saja memerlukan ruang sebesar 500MB, belum termasuk berbagai macam source code yang disimpan di dalamnya.
Seperti yang anda lihat, jumlah partisi sangat tergantung pada tujuan anda. Partisi-partisi yang terpisah memiliki beberapa keuntungan:
- Anda dapat memilih filesystem yang paling tepat untuk setiap partisi
- Seluruh sistem anda tidak akan kehabisan ruang kosong jika sebuah aplikasi secara terus-menerus menulis file-file ke sebuah partisi.
- Waktu untuk memeriksa filesystem lebih cepat, karena beberapa pemeriksaan dapat dijalankan secara bersamaan (walaupun keuntungan ini lebih dirasakan oleh multi-disk daripada multi-partisi)
- Keamanan dapat ditingkatkan dengan me-mount beberapa partisi secara read-only nosuid (setuid bit diabaikan), noexec (executable bit diabaikan), dll.
Berikut ini adalah contoh tabel partisi disk 20 GB, yang digunakan pada laptop (berisi webserver, mailserver, gnome, ...):
Daftar Kode 2.1: Contoh Penggunaan Filesystem |
$ df -h Filesystem Type Size Used Avail Use% Mounted on /dev/hda5 ext3 509M 132M 351M 28% / /dev/hda2 ext3 5.0G 3.0G 1.8G 63% /home /dev/hda7 ext3 7.9G 6.2G 1.3G 83% /usr /dev/hda8 ext3 1011M 483M 477M 51% /opt /dev/hda9 ext3 2.0G 607M 1.3G 32% /var /dev/hda1 ext2 51M 17M 31M 36% /boot /dev/hda6 swap 516M 12M 504M 2% <not mounted> (Sisa disk yang tidak dipartisi untuk penggunaan masa datang: 2 Gb) |
Bagian berikut ini menjelaskan cara menciptakan tabel partisi seperti yang dijabarkan sebelumnya, yaitu:
Partisi | Penjelasan |
/dev/hda1 | Partisi boot |
/dev/hda2 | Partisi swap |
/dev/hda3 | Partisi root |
fdisk merupakan utilitas yang populer dan bagus untuk membagi disk menjadi beberapa partisi. Jalankan fdisk pada disk anda (pada contoh ini, kita menggunakan /dev/hda):
Daftar Kode 3.1: Menjalankan fdisk |
# fdisk /dev/hda
|
Daftar Kode 3.2: prompt fdisk |
Command (m for help): |
Daftar Kode 3.3: Contoh tabel partisi |
Command (m for help): p
Disk /dev/hda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 14 105808+ 83 Linux
/dev/hda2 15 49 264600 82 Linux swap
/dev/hda3 50 70 158760 83 Linux
/dev/hda4 71 2184 15981840 5 Extended
/dev/hda5 71 209 1050808+ 83 Linux
/dev/hda6 210 348 1050808+ 83 Linux
/dev/hda7 349 626 2101648+ 83 Linux
/dev/hda8 627 904 2101648+ 83 Linux
/dev/hda9 905 2184 9676768+ 83 Linux
Command (m for help):
|
Pertama, kita akan menghapus semua partisi yang sudah ada. Ketik d untuk menghapus partisi. Sebagai contoh, untuk menghapus partisi /dev/hda1:
Daftar Kode 3.4: Menghapus partisi |
Command (m for help): d Partition number (1-4): 1 |
Sekarang, anggap anda benar-benar ingin menghapus seluruh partisi anda, ketikkan p untuk menampilkan tabel partisi lalu diikuti dengan d dan nomor partisi untuk menghapusnya. Pada akhirnya, anda akan mendapatkan tabel partisi kosong:
Daftar Kode 3.5: Tabel partisi kosong |
Disk /dev/hda: 30.0 GB, 30005821440 bytes 240 heads, 63 sectors/track, 3876 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Device Boot Start End Blocks Id System Command (m for help): |
Pertama-tama, kita akan menciptakan sebuah boot kecil. Ketik n untuk menciptakan sebuah partisi, lalu p untuk memilih partisi primary, diikuti dengan 1 untuk memilih partisi primary pertama. Jika anda ditanyakan tentang silinder pertama, tekan Enter. Ketika ditanyakan tentang silinder terakhir, ketik +32M untuk menciptakan partisi sebesar 32MB:
Daftar Kode 3.6: Menciptakan partisi boot |
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-3876, default 1): (Tekan Enter) Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M |
Daftar Kode 3.7: Partisi boot baru |
Command (m for help): p
Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 14 105808+ 83 Linux
|
Sekarang mari kita ciptakan partisi swap. Untuk melakukannya, ketik n untuk menciptakan partisi baru, lalu p untuk membuat partisi primary. Kemudian, ketik 2 untuk menciptakan partisi primary kedua, yaitu /dev/hda2. Jika anda ditanyakan tentang silinder pertama, tekan Enter. Ketika ditanyakan tentang silinder terakhir, ketik +512M untuk menciptakan partisi sebesar 512MB. Selanjutnya, ketik t untuk mengatur tipe partisi, 2 untuk memilih partisi yang baru anda ciptakan, lalu ketikkan 82 untuk menggunakan tipe partisi "Linux Swap". Setelah anda menyelesaikan langkah-langkah di atas, anda akan melihat tabel partisi seperti ini ketika anda menekan p:
Daftar Kode 3.8: Tabel partisi setelah partisi swap diciptakan |
Command (m for help): p
Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 14 105808+ 83 Linux
/dev/hda2 15 81 506520 82 Linux swap
|
Daftar Kode 3.9: Tabel partisi setelah partisi root diciptakan |
Command (m for help): p
Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 14 105808+ 83 Linux
/dev/hda2 15 81 506520 82 Linux swap
/dev/hda3 82 3876 28690200 83 Linux
|
Daftar Kode 3.10: Menyimpan tabel dan keluar dari fdisk |
Command (m for help): w
|
Setelah semua partisi anda diciptakan, sekarang saatnya untuk menempatkan filesystem pada partisi tersebut. Jika anda tidak tahu harus memilih tipe filesystem apa yang harus anda gunakan dan puas dengan apa yang kami gunakan di buku ini, lanjutkan ke Menciptakan filesystem di partisi. Jika tidak, baca terus untuk mengetahui filesystem apa saja yang tersedia...
Kernel Linux menyediakan beberapa filesystem. Kami akan menjelaskan ext2, ext3, ReiserFS, XFS dan JFS karena filesystem-filesystem ini adalah yang paling sering digunakan di Linux.
ext2 adalah filesystem asli Linux yang telah terpercaya, tetapi belum memiliki metadata journaling, yang artinya, pemeriksaan filesystem ext2 pada saat boot bisa memakan waktu yang cukup lama. Sekarang sudah tersedia banyak filesystem baru dengan dukungan jurnal yang tidak memakan waktu lama pada saat pemeriksaan. Filesystem seperti ini biasanya lebih dipilih ketimbang filesystem lain yang belum memiliki dukungan jurnal. Filesystem dengan dukungan jurnal dapat mencegah waktu tunda yang cukup lama ketika pemeriksaan berlangsung pada saat boot.
ext3 adalah filesystem ext2 dengan dukungan jurnal, menyediakan metadata journaling agar dapat melakukan perbaikan dengan cepat, juga memiliki keutamaan lainnya seperti full data dan ordered data journaling. Filesystem ini menggunakan HTree index yang dapat memberikan performa tinggi pada hampir semua keadaan. Pendek kata, ext3 adalah filesystem yang sangat bagus dan dapat diandalkan. Ext3 dianjurkan untuk digunakan pada semua platform untuk semua kebutuhan.
JFS adalah filesystem dari IBM yang memiliki dukungan jurnal. JFS adalah filesystem yang ringan, kencang dan stabil, berbasis B+tree, memiliki performa tinggi pada berbagai keadaan.
ReiserFS adalah filesystem berbasis B+tree-based dan secara umum memiliki performa yang cukup bagus, terutama ketika menangani file-file berukuran kecil (dengan menggunakan putaran CPU yang cukup banyak). Kelihatannya ReiserFS sudah tidak mendapatkan penanganan dan perbaikan yang cukup jika dibandingkan dengan filesystem lain.
XFS adalah filesystem dengan dukungan metadata journaling dan memiliki sejumlah fitur yang sangat bagus dan teroptimasi untuk skalabilitas. XFS kurang bertoleransi dengan hardware yang bermasalah.
Untuk menciptakan filesystem di sebuah partisi, anda dapat menggunakan beberapa utilitas yang tersedia untuk setiap filesystem:
Filesystem | Perintah |
ext2 | mke2fs |
ext3 | mke2fs |
reiserfs | mkreiserfs |
xfs | mkfs.xfs |
jfs | mkfs.jfs |
Daftar Kode 4.1: Menciptakan filesystem di partisi |
# mke2fs /dev/hda1 # mke2fs -j /dev/hda3 |
mkswap adalah perintah untuk menciptakan partisi swap:
Daftar Kode 4.2: Menciptakan partisi swap |
# mkswap /dev/hda2
|
Daftar Kode 4.3: Aktivasi partisi swap |
# swapon /dev/hda2
|
Setelah semua partisi anda memiliki filesystem-nya masing-masing, sekarang saatnya untuk me-mount partisi-partisi tersebut. Gunakan perintah mount. Jangan lupa ciptakan dahulu semua direktori mount yang diperlukan untuk setiap partisi anda. Sebagai contoh, kita akan me-mount partisi root dan boot:
Daftar Kode 5.1: Mount partisi |
# mount /dev/hda3 /mnt/gentoo # mkdir /mnt/gentoo/boot # mount /dev/hda1 /mnt/gentoo/boot |
Catatan: Jika anda ingin agar /tmp anda diletakkan di partisi terpisah, jangan lupa mengubah perizinannya setelah proses mount: chmod 1777 /mnt/gentoo/tmp. Hal ini juga berlaku untuk /var/tmp. |
Lanjutkan ke Instalasi File-file Instalasi Gentoo.
5. Instalasi File Instalasi Gentoo
Sebelum melanjutkan, anda perlu memeriksa tanggal/waktu sistem anda dan memperbaruinya. Jam yang tidak diatur dengan benar dapat menyebabkan hasil yang aneh nantinya!Untuk mengetahui tanggal/waktu sistem saat ini, jalankan date:
Daftar Kode 1.1: Memeriksa tanggal/waktu |
# date
Fri Mar 29 16:21:18 UTC 2005
|
Daftar Kode 1.2: Pengaturan tanggal/waktu UTC |
# date 032916212005
|
CD Minimal dan LiveCD tidak berisi stage3, namun LiveDVD memilikinya.
Masuklah ke titik mount Gentoo tempat anda me-mount filesystem anda (kemungkinan besar /mnt/gentoo):
Daftar Kode 2.1: Masuk ke titik mount Gentoo |
# cd /mnt/gentoo
|
Jika links tidak tersedia, anda seharusnya memiliki lynx. Jika anda harus melewati proxy, export-lah variabel http_proxy dan ftp_proxy:
Daftar Kode 2.2: Pengaturan informasi proxy untuk lynx |
# export http_proxy="http://proxy.server.com:port" # export ftp_proxy="http://proxy.server.com:port" |
Masuk ke direktori releases/x86/2008.0/. Di sana, anda seharusnya akan melihat semua file stage yang tersedia untuk arsitektur anda (mungkin disimpan di dalam subdirektori tiap sub arsitektur). Pilih satu lalu tekan D untuk mendownloadnya. Setelah selesai, tekan Q untuk keluar dari browser.
Kebanyakan pengguna PC seharusnya menggunakan stage3-i686-2008.0_beta1.tar.bz2 stage3. Semua PC modern dianggap i686. Jika anda menggunakan PC lama, bacalah daftar prosesor kompatibel dengan i686 di Wikipedia. Prosesor lama seperti Pentium, K5, K6, atau Via C3 dan yang semisalnya harus menggunakan stage3 x86. Prosesor yang lebih tua dari i486 tidak didukung.
Daftar Kode 2.3: Membuka daftar mirror dengan links |
# links http://www.gentoo.org/main/en/mirrors.xml (Jika anda memerlukan dukungan proxy dengan links:) # links -http-proxy proxy.server.com:8080 http://www.gentoo.org/main/en/mirrors.xml |
Jika anda ingin memeriksa keadaan tarbal stage yang anda download, gunakan program md5sum dan bandingkan hasilnya dengan checksum MD5 yang disediakan di mirror.
Daftar Kode 2.4: Pemeriksaan keadaan tarbal stage |
# md5sum -c stage3-i686-2008.0_beta1.tar.bz2.DIGESTS
stage3-i686-2008.0_beta1.tar.bz2: OK
|
Daftar Kode 2.5: Ekstrak stage |
# tar xvjpf stage3-*.tar.bz2
|
Catatan: CD Instalasi dan imej boot untuk beberapa arsitektur (mis. MIPS) bergantung pada tar yang dikompilasi di BusyBox yang untuk saat ini belum mendukung opsi v. Untuk itu gunakan opsi xjpf. |
Sekarang anda harus menginstal snapshot portage, yaitu kumpulan file yang menginformasikan Portage tentang software apa saja yang dapat anda instal, profil apa saja yang tersedia, dll.
Masuklah ke titik mount tempat anda me-mount filesystem anda. (biasanya di /mnt/gentoo):
Daftar Kode 3.1: Masuk ke titik mount Gentoo |
# cd /mnt/gentoo
|
Daftar Kode 3.2: Membuka daftar mirror Gentoo |
# links http://www.gentoo.org/main/en/mirrors.xml
|
Jika anda ingin memeriksa integritas snapshot yang baru di-download, gunakan md5sum kemudian bandingkan output-nya dengan MD5 checksum yang tersedia di mirror.
Daftar Kode 3.3: Memeriksa integritas snapshot portage |
# md5sum -c portage-latest.tar.bz2.md5sum
portage-latest.tar.bz2: OK
|
Daftar Kode 3.4: Ekstrak snapshot portage |
# tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
|
Catatan: Daftar variabel-variabel lengkap yang diberikan komentar bisa anda baca di /mnt/gentoo/etc/make.conf.example. Agar proses instalasi Gentoo anda sukses, anda hanya perlu mengatur variabel-variabel yang dijelaskan di bawah ini. |
Daftar Kode 4.1: Membuka /etc/make.conf |
# nano -w /mnt/gentoo/etc/make.conf
|
Variabel CHOST menentukan untuk arsitektur apa gcc harus mengkompilasi program. Variabel ini seharusnya sudah diisi dengan nilai yang benar. Jangan diubah karena bisa merusak sistem anda. Jika menurut anda variabel CHOST tidak benar, anda mungkin menggunakan tarbal stage3 yang salah.
Variabel CFLAGS dan CXXFLAGS menentukan flag-flag optimasi untuk compiler C dan C++ gcc. Walaupun kita menetapkan variabel tersebut secara umum di sini, anda hanya akan mendapatkan performa maksimal jika anda mengoptimasi flag-flag ini untuk setiap program secara terpisah. Alasannya adalah, karena setiap program berbeda.
di file make.conf, anda sebaiknya menentukan flag-flag optimasi yang anda rasa akan membuat sistem anda lebih responsif secara umum. Jangan gunakan nilai-nilai percobaan pada variabel ini; optimasi yang terlalu tinggi dapat membuat program bertingkah laku aneh (crash, atau bahkan, tidak dapat berfungsi sama sekali).
Kami tidak akan menjelaskan semua opsi optimasi. Jika anda ingin mengetahui opsi-opsi tersebut, bacalah Manual Online GNU atau halaman info gcc (info gcc -- hanya dapat dijalankan pada sistem Linux). File make.conf.example sendiri berisi banyak contoh dan informasi; jangan lupa untuk membaca file ini juga.
Pengaturan pertama adalah flag -march= atau -mtune=yang menentukan nama arsitektur target. Opsi-opsi yang dapat anda gunakan bisa anda ketahui dari penjelasan di dalam file make.conf.example(sebagai komentar).
Pengaturan kedua adalah flag -O (O adalah huruf besar O, bukan nol), yang menentukan tingkatan optimasi gcc. Tingktan yang tersedia adalah s (optimasi size/ukuran), 0 (nol - tidak dioptimasi), 1, 2 atau 3 untuk optimasi kecepatan (setiap tingkatan memiliki flag yang sama dengan tingkatan sebelumnya, dengan beberapa tambahan). -O2 adalah pengaturan default yang dianjurkan.
Flag-flag optimasi populer lainnya adalah -pipe (gunakan pipe daripada file-file sementara untuk berkomunikasi antara berbagai stage pada saat kompilasi).
Kami ingatkan anda bahwa penggunaan -fomit-frame-pointer (tidak menyimpan pointer frame di register untuk fungsi-fungsi yang tidak memerlukannya) kemungkinan bisa berakibat serius ketika melakukan debug pada beberapa aplikasi!
Ketika anda menetapkan variabel CFLAGS dan CXXFLAGS, anda sebaiknya mengkombinasikan beberapa flag-flag optimasi. Nilai default dari stage3 sudah cukup bagus. Berikut ini hanyalah contoh:
Daftar Kode 4.2: Menentukan variabel CFLAGS dan CXXFLAGS |
CFLAGS="-O2 -march=i686 -pipe"
# Menggunakan pengaturan yang sama untuk kedua variabel
CXXFLAGS="${CFLAGS}"
|
Daftar Kode 4.3: MAKEOPTS untuk sistem 1 CPU umum |
MAKEOPTS="-j2" |
6. Instalasi Sistem Dasar Gentoo
Untuk mendownload source code dengan cepat, anda dianjurkan untuk memilih sebuah mirror yang kencang. Portage akan memeriksa variable GENTOO_MIRRORS di /etc/make.conf dan menggunakan mirror yang tercantum. Anda bisa melihat daftar mirror kami dan mencari satu mirror (atau lebih) yang dekat dengan anda (karena biasanya inilah yang paling kencang), tetapi kami juga menyediakan sebuah utilitas mirrorselect yang menyediakan antarmuka yang bagus bagi anda untuk memilih mirror yang anda inginkan.Daftar Kode 1.1: Menggunakan mirrorselect untuk variabel GENTOO_MIRRORS |
# mirrorselect -i -o >> /mnt/gentoo/etc/
|
Peringatan: Jangan memilih mirror IPv6 apapun. Stage kami untuk saat ini belum mendukung IPv6. |
Daftar Kode 1.2: Memilih mirror rsync dengan mirrorselect |
# mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf
|
Satu hal yang masih harus dilakukan sebelum kita memasuki lingkungan baru adalah menyalin informasi DNS di file /etc/resolv.conf. Anda harus melakukan langkah ini untuk memastikan koneksi jaringan anda tetap berfungsi setelah memasuki lingkungan baru. File /etc/resolv.conf berisi nameserver untuk jaringan anda.
Daftar Kode 1.3: Menyalin informasi DNS |
(Opsi "-L" diperlukan untuk menghindari penyalinan symlink) # cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf |
Daftar Kode 1.4: Mount /proc dan /dev |
# mount -t proc none /mnt/gentoo/proc # mount -o bind /dev /mnt/gentoo/dev |
Proses chroot ini dilakukan dengan tiga langkah. Pertama, kita akan memindahkan root dari / (di media instalasi) ke /mnt/gentoo (di partisi anda) dengab perintah chroot. Kemudian, kita akan menciptakan sebuah lingkungan baru dengan perintah env-update, yang akan menciptakan variabel-variabel lingkungan. Terakhir, kita akan memuat variabel-variabel tersebut dengan perintah source.
Daftar Kode 1.5: Melakukan chroot ke lingkungan baru |
# chroot /mnt/gentoo /bin/bash # env-update >> Regenerating /etc/ld.so.cache... # source /etc/profile # export PS1="(chroot) $PS1" |
Sekarang anda harus memperbarui pohon Portage anda ke versi yang paling baru. emerge --sync dapat melakukannya untuk anda.
Daftar Kode 2.1: Memperbarui pohon portage |
# emerge --sync (Jika anda menggunakan terminal (konsol) yang lambat seperti beberapa konsol framebuffer atau konsol serial, anda dapat menambahkan opsi --quiet untuk mempercepat proses ini:) # emerge --sync --quiet |
Jika anda mendapatkan pesan bahwa versi Portage yang lebih baru telah tersedia dan anda sebaiknya memperbarui portage, anda harus melakukannya sekarang juga dengan perintah emerge --oneshot portage.
Pertama, penjelasan singkat tentang profil.
Profil adalah sebuah blok bangunan untuk sitem Gentoo. Profil tidak hanya menentukan nilai-nilai default untuk CHOST, CFLAGS dan variabel penting lainnya, tetapi juga mengunci sistem pada versi-versi paket dalam tingkatan tertentu.
Sebelumnya, profil jarang sekali disentuh oleh pengguna. Namun begiru, ada beberapa situasi ketika anda dapat memutuskan apakah penggantian profil memang diperlukan.
Anda dapat mengetahui profil yang sedang anda gunakan sekarang dengan perintah berikut:
Daftar Kode 2.2: Memeriksa profil sistem |
# ls -FGg /etc/make.profile
lrwxrwxrwx 1 48 Apr 8 18:51 /etc/make.profile -> ../usr/portage/profiles/default-linux/x86/2008.0
|
Tersedia juga subprofil desktop dan server untuk sebagian arsitektur. Lihatlah isi profil 2008.0 untuk mengetahui apakah subprofil untuk arsitektur anda tersedia. Anda juga mungkin ingin melihat file make.defaults dari subprofil desktop untuk mengetahui apakah isinya sesuai dengan kebutuhan anda.
Setelah melihat semua profil yang tersedia untuk arsitektur anda, anda boleh mengganti profil jika ingin:
Daftar Kode 2.3: Mengganti profil |
# ln -snf /usr/portage/profiles/<nama profile> /etc/make.profile
|
Kebanyakan distro Linux mengkompilasi paket-paketnya dengan dukungan sebanyak mungkin, yang akhirnya memperbesar ukuran program dan memperpanjang waktu yang diperlukan untuk menjalankan program tersebut, dan banyaknya dependensi yang diperlukan. Dengan Gentoo, anda dapat menentukan opsi apa saja yang harus dikompilasi pada sebuah paket. Di sinilah variabel USE berperan penting.
Dengan variabel USE, anda dapat menentukan kata kunci yang tertuju pada opsi kompilasi. Sebagai contoh, ssl akan mengkompilasi dukungan ssl untuk program yang mendukungnya. -X akan menonaktifkan dukungan server X (perhatikan tanda minus di depannya). gnome gtk -kde -qt3 -qt4 akan mengkompilasi program-program anda dengan dukungan gnome (dan gtk), tanpa dukungan kde (dan qt), sehingga sistem anda akan lebih ramping untuk GNOME.
Pengaturan default USE disimpan di file /etc/make.profile/make.defaults. Pengaturan yang anda tetapkan di file /etc/make.conf akan dikalkulasikan dengan pengaturan default. Jika anda menambahkan sebuah kata kunci pada pengaturan USE, kata kunci tersebut akan ditambahkan pada daftar default. Sebaliknya, jika anda menghapus sebuah kata kunci dari pengaturan USE (dengan menambahkan tanda minus di depannya), kata kunci tersebut akan dihapus dari daftar default (tentu saja, jika sebelumnya kata kunci tersebut berada di dalam daftar default). Jangan pernah mengubah sesuatu di dalam direktori /etc/make.profile; isi direktori tersebut akan ditimpa setiap kali anda memperbarui pohon Portage!
Penjelasan lengkap tentang variabel USE bisa anda dapatkan pada bagian kedua dari Buku Pegangan Gentoo, Flag USE. Penjelasan lengkap tentang flag-flag USE yang tersedia bisa anda dapatkan di sistem anda pada file /usr/portage/profiles/use.desc.
Daftar Kode 2.4: Melihat flag USE yang tersedia |
# less /usr/portage/profiles/use.desc (Anda dapat menggulung layar dengan tanda panah, dan keluar dengan menekan 'q') |
Daftar Kode 2.5: Membuka file /etc/make.conf |
# nano -w /etc/make.conf
|
Daftar Kode 2.6: Pengaturan USE |
USE="-gtk -gnome qt3 qt4 kde dvd alsa cdr" |
Daftar Kode 2.7: Membuka file /etc/locale.gen |
# nano -w /etc/locale.gen
|
Daftar Kode 2.8: Menentukan locales |
en_US/ISO-8859-1 en_US.UTF-8/UTF-8 de_DE/ISO-8859-1 de_DE@euro/ISO-8859-15 |
Sekarang lanjutkan ke Konfigurasi Kernel.
7. Konfigurasi Kernel
Pertama, anda perlu memilih zona waktu anda dari /usr/share/zoneinfo, lalu salin ke /etc/localtime dan tetapkan di /etc/conf.d/clock. Hindari penggunaan zona waktu /usr/share/zoneinfo/Etc/GMT* karena namanya tidak mengindikasikan zona yang diharapkan. Misalnya, GMT-8 sesungguhnya adalah GMT+8.Daftar Kode 1.1: Mengatur zona waktu |
# ls /usr/share/zoneinfo (Misalnya anda ingin menggunakan Jakarta) # nano -w /etc/conf.d/clock TIMEZONE="Asia/Jakarta" # cp /usr/share/zoneinfo/Asia/Jakarta /etc/localtime |
Untuk sistem berbasis x86 Gentoo menyediakan, di antara kernel-kernel lainnya, gentoo-sources (kernel yang telah dilengkapi dengan fitur-fitur tambahan).
Pilihlah kernel anda lalu instal dengan perintah emerge.
Daftar Kode 2.1: Instalasi kernel |
# emerge gentoo-sources
|
Daftar Kode 2.2: Melihat symlink kernel |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-2.6.23-r8
|
Jika anda ingin mengkonfigurasi kernel anda secara manual, lanjutkan ke Default: Konfigurasi Manual. Jika anda ingin menggunakan genkernel, sebaiknya anda membaca bagian Alternatif: Menggunakan genkernel.
Konfigurasi kernel secara manual sering dianggap sebagai langkah tersulit yang harus dijalankan oleh setiap pengguna Linux. Memang benar -- setelah mengkonfigurasi beberapa kernel, anda tidak akan lagi ingat bahwa cara tersebut sulit ;-)
Bagaimanapun juga, satu hal selalu benar: anda harus mengenal sistem anda sebelum mulai mengkonfigurasi kernel secara manual. Banyak informasi yang bisa anda dapatkan dengan menginstal pciutils (emerge pciutils) yang berisi lspci. Anda juga dapat menggunakan lspci dari dalam lingkungan chroot. Abaikan saja peringatan pcilib (seperti pcilib: cannot open /sys/bus/pci/devices) yang diberikan oleh lspci. Anda juga dapat menggunakan lspci dari lingkungan non-chroot. Hasilnya sama saja. Selain itu, anda juga dapat menjalankan lsmod untuk melihat modul kernel apa saja yang digunakan oleh CD Instalasi (tampilan tersebut mungkin memberi gambaran bagi anda tentang opsi apa saja yang harus diaktifkan).
Sekarang, masuklah ke direktori kernel anda dan jalankan make menuconfig. Perintah ini akan menjalankan menu konfigurasi berbasis ncurses.
Daftar Kode 3.1: Menjalankan menuconfig |
# cd /usr/src/linux # make menuconfig |
Pastikan agar setiap driver yang diperlukan untuk mem-boot sistem anda (mis. SCSI Controller, ...) dikompilasi di kernel, dan bukan sebagai modul, jika tidak, sistem anda tidak akan bisa boot dengan sempurna.
Sekarang pilih tipe prosesor yang tepat:
Daftar Kode 3.2: Memilih tipe prosesor yang tepat |
Processor type and features ---> (Gantikan sesuai sistem anda) (Athlon/Duron/K7) Processor family |
Daftar Kode 3.3: Memilih filesystem yang diperlukan |
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
(Aktifkan satu atau lebih opsi-opsi berikut sesuai dengan kebutuhan sistem anda)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
|
Daftar Kode 3.4: Memilih filesystem yang diperlukan |
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
(Aktifkan satu atau lebih opsi-opsi berikut sesuai dengan kebutuhan sistem anda)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
|
Kedua opsi kompresi tidak berbahaya tetapi tidak benar-benar diperlukan, begitu juga dengan opsi PPP over Ethernet, opsi-opsi tersebut mungkin hanya digunakan oleh ppp jika dikonfigurasi untuk melakukan koneksi PPPoE modus kernel.
Jika anda memerlukannya, jangan lupa untuk mengikutsertakan dukungan kernel untuk kartu jaringan anda.
Jika anda memiliki prosesor Intel yang mendukung HyperThreading(tm), atau anda memiliki sistem multi-CPU, anda sebaiknya mengaktifkan "Symmetric multi-processing support":
Daftar Kode 3.5: Aktivasi dukungan SMP |
Processor type and features ---> [*] Symmetric multi-processing support |
Catatan: Pada sistem multi-core, setiap core dianggap sebagai satu prosesor. |
Daftar Kode 3.6: Aktivasi dukungan USB untuk Perangkat Input |
Device Drivers ---> USB Support ---> <*> USB Human Interface Device (full HID) support |
Daftar Kode 3.7: Aktivasi dukungan PCMCIA |
Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> PCCARD (PCMCIA/CardBus) support ---> <*> PCCard (PCMCIA/CardBus) support (pilih 16 bit jika anda memerlukan dukungan untuk kartu PCMCIA lama, kebanyakan pengguna menginginkan ini.) <*> 16-bit PCMCIA support [*] 32-bit CardBus support (pilih bridges yang sesuai di bawah ini) --- PC-card bridges <*> CardBus yenta-compatible bridge support (NEW) <*> Cirrus PD6729 compatible bridge support (NEW) <*> i82092 compatible bridge support (NEW) <*> i82365 compatible bridge support (NEW) <*> Databook TCIC host bridge support (NEW) |
Setelah kernel anda dikonfigurasi, sekarang saatnya untuk mengkompilasi dan menginstalnya. Keluarlah dari menu konfigurasi dan mulailah proses kompilasi:
Daftar Kode 3.8: Kompilasi kernel |
# make && make modules_install
|
Daftar Kode 3.9: Instalasi kernel |
# cp arch/i386/boot/bzImage /boot/${nama-kernel}
|
Jika anda membaca bagian ini, berarti anda memilih menggunakan skrip genkernel kami untuk mengkonfigurasi kernel bagi anda.
Setelah source kernel anda terinstal, sekarang saatnya untuk mengkompilasi kernel anda dengan skrip genkernel kami untuk membangun kernel secara otomatis. genkernel bekerja dengan mengkonfigurasi kernel yang hampir sama dengan cara kernel CD Instalasi kami dikonfigurasi. Hal ini berarti, jika anda menggunakan genkernel untuk membangun kernel, sistem anda akan secara umum mendeteksi semua perangkat keras anda pada saat boot, seperti yang dilakukan oleh CD Instalasi kami. Karena genkernel tidak memerlukan konfigurasi kernel secara manual, cara ini merupakan cara yang ideal bagi para pengguna yang belum terbiasa mengkompilasi kernel mereka sendiri.
Sekarang, mari kita lihat cara menggunakan genkernel. Pertama, emerge paket genkernel:
Daftar Kode 4.1: Emerge genkernel |
# emerge genkernel
|
Daftar Kode 4.2: Menyalin konfigurasi kernel CD Instalasi |
# zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6
|
Catat juga, jika partisi boot anda tidak menggunakan ext2 atau ext3 sebagai filesystem-nya, anda mungkin perlu mengkonfigurasi kernel anda secara manual menggunakan perintah genkernel --menuconfig all dan tambahkan dukungan untuk filesystem anda di kernel (bukan sebagai modul). Pengguna EVMS2 atau LVM2 mungkin juga ingin menambahkan --evms2 atau --lvm2 sebagai argumen.
Daftar Kode 4.3: Menjalankan genkernel |
# genkernel all
|
Daftar Kode 4.4: Memeriksa nama kernel dan initrd yang baru diciptakan |
# ls /boot/kernel* /boot/initramfs*
|
Untuk melihat modul apa saja yang tersedia, jalankan perintah find berikut ini. Jangan lupa untuk mengganti "<kernel version>" dengan versi kernel yang baru saja anda kompilasi:
Daftar Kode 5.1: Melihat modul yang tersedia |
# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'
|
Daftar Kode 5.2: Menyunting /etc/modules.autoload.d/kernel-2.6 |
# nano -w /etc/modules.autoload.d/kernel-2.6
|
Daftar Kode 5.3: /etc/modules.autoload.d/kernel-2.6 |
3c59x |
8. Konfigurasi Sistem
Di Linux, semua partisi yang digunakan di sistem harus terdaftar di /etc/fstab. File ini berisi titik mount dari semua partisi tersebut (yang dapat ditemui pada struktur filesystem), cara partisi di-mount dan dengan opsi-opsi khusus apa saja (otomatis atau tidak, dapatkah user me-mount, dll.)./etc/fstab menggunakan sebuah sintaks khusus. Setiap baris terdiri dari enam bagian, yang dipisahkan oleh spasi (spasi, tab, atau keduanya). Setiap bagian memiliki artinya tersendiri:
- Bagian pertama berisi partisi yang dijelaskan (path ke file device tersebut)
- Bagian kedua berisi titik mount tempat partisi tersebut di-mount
- Bagian ketiga berisi filesystem yang digunakan oleh partisi tersebut
- Bagian keempat berisi opsi mount yang digunakan oleh mount ketika me-mount partisi tersebut. Karena setiap filesystem memiliki opsi mount yang berbeda-beda, anda dianjurkan untuk membaca manual mount (man mount) untuk mendapatkan daftar yang lengkap. Opsi-opsi mount dipisahkan dengan koma.
- Bagian kelima digunakan oleh dump untuk menentukan apakah partisi perlu di-dump atau tidak. Pada umumnya, anda dapat mengisi bagian ini dengan 0 (nol)
- Bagian keenam digunakan oleh fsck untuk menentukan urutan dari filesystem yang akan diperiksa jika sistem tidak dimatikan dengan benar. Filesystem root seharusnya berisi angka 1 dan sisanya berisi angka 2 (atau 0 jika pemeriksaan filesystem tidak diperlukan)
Penting: File /etc/fstab default yang disediakan oleh Gentoo bukanlah file fstab yang benar, anda harus menulisfile /etc/fstab anda sendiri: |
Daftar Kode 1.1: Membuka /etc/fstab |
# nano -w /etc/fstab
|
Pada contoh partisi x86 default kita, /boot biasanya merupakan partisi /dev/hda1 (atau /dev/sda* jika anda menggunakan drive SATA atau SCSI) dengan ext2 sebagai filesystem-nya. Partisi ini perlu diperiksa selama proses boot, jadi kita isi dengan:
Daftar Kode 1.2: Contoh baris /boot di /etc/fstab |
/dev/hda1 /boot ext2 defaults 1 2 |
Tambahkan baris-baris yang sesuai dengan skema partisi anda, juga baris untuk CD-ROM, dan tentunya, jika anda memiliki partisi atau drive lain, jangan lupa tambahkan juga.
Sekarang gunakan contoh di bawah ini untuk menciptakan /etc/fstab anda:
Daftar Kode 1.3: Contoh /etc/fstab lengkap |
/dev/hda1 /boot ext2 defaults,noatime 1 2 /dev/hda2 none swap sw 0 0 /dev/hda3 / ext3 noatime 0 1 /dev/cdrom /mnt/cdrom auto noauto,user 0 0 |
Untuk meningkatkan performa, anda dapat menambahkan opsi mount noatime, yang akan menjadikan sistem anda lebih kencang karena waktu akses tidak didaftarkan (karena biasanya memang tidak diperlukan).
Periksa kembali file /etc/fstab anda, simpan dan keluarlah untuk melanjutkan ke bagian selanjutnya.
Salah satu pilihan yang harus dibuat oleh pengguna adalah memberi nama PC mereka. Hal ini tampaknya mudah, tetapi banyak pengguna yang menemui kesulitan ketika mencari nama yang tepat untuk komputer mereka. Untuk mempersingkat waktu - nama yang anda pilih bisa anda ganti nantinya - anda boleh saja memberi nama sistem anda tux dan nama domainnya homenetwork.
Daftar Kode 2.1: Pengaturan nama host |
# nano -w /etc/conf.d/hostname (Isi variabel HOSTNAME dengan nama host anda) HOSTNAME="tux" |
Daftar Kode 2.2: Pengaturan domainname |
# nano -w /etc/conf.d/net (Isi variabel dns_domain dengan nama domain anda) dns_domain_lo="homenetwork" |
Catatan: Jika anda memutuskan untuk tidak menetapkan domainname, anda dapat menghindari pesan "This is hostname.(none)" pada layar login dengan mengedit /etc/issue. Hapus saja .\O dari file tersebut. |
Daftar Kode 2.3: Pengaturan domainname NIS |
# nano -w /etc/conf.d/net (Isi variabel nis_domain dengan nama domain NIS anda) nis_domain_lo="my-nisdomain" |
Catatan: Untuk info lebih lanjut tentang konfigurasi DNS dan NIS, bacalah contoh yang terdapat di /etc/conf.d/net.example. Anda juga mungkin perlu menginstal openresolv untuk mempermudah pengaturan DNS/NIS anda. |
Catatan: Penjelasan lebih rinci tentang jaringan, termasuk topik-topik lanjutan seperti bonding, bridging, 802.1Q VLANs atau jaringan nirkabel (wireless) terdapat di bagian Konfigurasi Jaringan Gentoo. |
DHCP digunakan secara default. Agar DHCP berfungsi dengan benar, anda perlu menginstal klien DHCP. Hal ini dijelaskan di Instalasi Utilitas Sistem yang Diperlukan. Jangan lupa untuk menginstal klien DHCP.
Jika anda perlu mengkonfigurasi jaringan anda karena harus menggunakan opsi khusus DHCP atau karena anda tidak menggunakan DHCP sama sekali, bukalah file /etc/conf.d/net dengan editor favorit anda (nano pada contoh ini):
Daftar Kode 2.4: Edit file /etc/conf.d/net |
# nano -w /etc/conf.d/net
|
Daftar Kode 2.5: Default /etc/conf.d/net |
# This blank configuration will automatically use DHCP for any net.* # scripts in /etc/init.d. To create a more complete configuration, # please review /etc/conf.d/net.example and save your configuration # in /etc/conf.d/net (this file :]!). |
Daftar Kode 2.6: Pengaturan informasi IP untuk eth0 secara manual |
config_eth0=( "192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" ) routes_eth0=( "default gw 192.168.0.1" ) |
Daftar Kode 2.7: Mendapatkan alamat IP untuk eth0 secara otomatis |
config_eth0=( "dhcp" ) dhcp_eth0="nodns nontp nonis" |
Jika anda memiliki banyak antarmuka jaringan, ulangi langkah-langkah di atas untuk config_eth1, config_eth2, dll.
Sekarang simpan konfigurasi anda kemudian keluar.
Agar antarmuka jaringan anda langsung diaktifkan ketika boot, anda perlu menambahkannya ke runlevel default.
Daftar Kode 2.8: Menambahkan net.eth0 ke runlevel default |
# rc-update add net.eth0 default
|
Daftar Kode 2.9: Menciptakan skrip init tambahan |
# cd /etc/init.d # ln -s net.lo net.eth1 # rc-update add net.eth1 default |
Daftar Kode 2.10: Membuka file /etc/hosts |
# nano -w /etc/hosts
|
Daftar Kode 2.11: Mengisi informasi jaringan |
(Baris ini mencantumkan sistem yang sekarang) 127.0.0.1 tux.homenetwork tux localhost (Cantumkan sistem-sistem lain yang ada di jaringan anda, semuanya harus memiliki IP statis untuk dicantumkan dengan cara seperti ini.) 192.168.0.5 jenny.homenetwork jenny 192.168.0.6 benny.homenetwork benny |
Jika anda tidak memiliki PCMCIA, anda dapat langsung melanjutkan ke Informasi Sistem. Pengguna PCMCIA sebaiknya membaca bagian berikut tentang PCMCIA.
Pengguna PCMCIA harus menginstal paket pcmciautils:
Daftar Kode 2.12: Instalasi pcmciautils |
# emerge pcmciautils
|
Daftar Kode 3.1: Menetapkan password root |
# passwd
|
Daftar Kode 3.2: Membuka /etc/rc.conf |
# nano -w /etc/rc.conf
|
Seperti yang dapat anda lihat, file ini berisi banyak komentar yang dapat membantu anda ketika mengatur variabel-variabel konfigurasi penting. Anda dapat mengkonfigurasi sistem anda untuk menggunakan unicode dan memilih editor default serta display manager (seperti gdm atau kdm).
Gentoo menggunakan /etc/conf.d/keymaps untuk menangani konfigurasi keyboard. Edit file ini untuk mengkonfigurasi keyboard anda.
Daftar Kode 3.3: Membuka /etc/conf.d/keymaps |
# nano -w /etc/conf.d/keymaps
|
Anda harus mencantumkan zona waktu yang sebelumnya telah anda salin ke /etc/localtime agar upgrade dari sys-libs/timezone-data dapat memperbarui /etc/localtime. Sebagai contoh, jika anda menggunakan zona waktu Jakarta, anda harus mencantumkan TIMEZONE="Asia/Jakarta" +
Setelah anda selesai mengkonfigurasi /etc/conf.d/keymaps, simpanlah kemudian keluar.
Gentoo menggunakan /etc/conf.d/clock untuk mengatur opsi jam (clock). Edit file ini sesuai kebutuhan anda.
Daftar Kode 3.4: Membuka /etc/conf.d/clock |
# nano -w /etc/conf.d/clock
|
Setelah selesai mengkonfigurasi /etc/conf.d/clock, simpanlah kemudian keluar.
Lanjutkan dengan Instalasi Utilitas Sistem yang Diperlukan.
9. Instalasi Utilitas Sistem yang Diperlukan
Ada beberapa utilitas yang tidak tersedia di stage3 karena sebagian paket yang lain memiliki kegunaan yang sama. Sekarang anda bebas memilih utilitas apa saja yang ingin anda instal.Utilitas pertama yang perlu anda pilih adalah utilitas yang menyediakan fasilitas logging untuk sistem anda. Unix dan Linux memiliki sejarah yang bagus sekali tentang kemampuan logging -- jika anda mau, anda dapat me-log segala hal yang terjadi di sistem anda di sebuah file log. Hal ini dilakukan oleh logger sistem.
Gentoo menyediakan beberapa logger sistem yang dapat anda pilih. Yaitu, sysklogd, yang merupakan logger sistem tradisional, syslog-ng, logger sistem advanced, dan metalog yang merupakan logger sistem yang sangat dapat dikonfigurasi. Logger-logger lainnya mungkin tersedia juga di Portage - jumlah paket yang tersedia selalu bertambah dalam hitungan hari.
Jika anda berencana untuk menginstal sysklogd atau syslog-ng, anda juga mungkin ingin menginstal logrotate setelah itu karena logger-logger sistem ini tidak menyediakan mekanisme rotasi untuk file-file log.
Untuk menginstal logger sistem pilihan anda, emerge-lah logger tersebut lalu tambahkan ke runlevel default dengan perintah rc-update. Contoh berikut ini akan menginstal syslog-ng. Tentu saja, gantikan dengan logger sistem pilihan anda:
Daftar Kode 1.1: Instalasi logger sistem |
# emerge syslog-ng # rc-update add syslog-ng default |
Gentoo menyediakan tiga daemon cron, yaitu: dcron, fcron dan vixie-cron. Cara menginstal utilitas ini sama dengan cara menginstal logger sistem. Namun begitu, dcron dan fcron memerlukan perintah konfigurasi tambahan, yaitu crontab /etc/crontab. Jika anda tidak yakin harus memilih yang mana, gunakanlah vixie-cron.
Kami hanya menyediakan vixie-cron untuk instalasi tanpa jaringan. Jika anda menginginkan daemon cron lainnya, anda dapat menunggu dan menginstal paket tersebut nantinya.
Daftar Kode 2.1: Instalasi cron daemon |
# emerge vixie-cron # rc-update add vixie-cron default (Hanya jalankan jika anda memilih dcron atau fcron) # crontab /etc/crontab |
Daftar Kode 3.1: Instalasi slocate |
# emerge slocate
|
Tabel berikut berisi beberapa utilitas yang perlu anda instal jika anda menggunakan filesystem tertentu:
Filesystem | Utilitas | Perintah Instalasi |
XFS | xfsprogs | emerge xfsprogs |
ReiserFS | reiserfsprogs | emerge reiserfsprogs |
JFS | jfsutils | emerge jfsutils |
Daftar Kode 4.1: Instalasi utilitas EVMS |
# USE="-gtk" emerge evms
|
Jika anda tidak memerlukan utilitas lain yang berhubungan dengan jaringan (mis. ppp atau klien dhcp), lanjutkan ke Konfigurasi Bootloader.
Jika anda ingin agar Gentoo mendapatkan alamat IP secara otomatis untuk antarmuka jaringan anda, maka anda perlu menginstal dhcpcd (atau klien DHCP yang lain -- bacalah Jaringan Modular untuk mengetahui klien DHCP yang tersedia). Jika anda tidak melakukannya sekarang, anda mungkin tidak akan dapat terhubung ke internet setelah instalasi selesai.
Daftar Kode 5.1: Instalasi dhcpcd |
# emerge dhcpcd
|
Daftar Kode 5.2: Instalasi ppp |
# emerge ppp
|
10. Konfigurasi Bootloader
Setelah kernel anda dikonfigurasi dan dikompilasi, serta file-file konfigurasi sistem yang penting telah diisi dengan benar, saatnya untuk menginstal sebuah program yang akan menjalankan kernel ketika komputer dinyalakan. Program tersebut adalah bootloader.Untuk x86, gentoo menyediakan GRUB dan LILO.
Namun sebelum kita menginstal bootloader, kami akan menunjukkan cara mengkonfigurasi framebuffer (pastinya dengan anggapan anda ingin menggunakannya). Dengan framebuffer, anda dapat menjalankan baris perintah Linux dengan beberapa fitur (terbatas), seperti menggunakan gambar bootsplash yang disediakan Gentoo).
Pertama, anda harus mengetahui jenis perangkat framebuffer apa yang sedang anda gunakan. Jika anda menggunakan kernel Gentoo yang telah ditambal (seperti gentoo-sources), anda akan memiliki kemungkinan untuk memilih vesafb-tng sebagai tipe driver VESA (yang merupakan default untuk kernel-kernel ini. Jika memang ini kasusnya, berarti anda menggunakan vesafb-tng dan tidak perlu menggunakan statemen vga. Jika bukan, berarti anda menggunakan driver vesafb dan perlu menggunakan statemen vga.
Statemen vga mengendalikan resolusi dan kedalaman warna layar framebuffer anda untuk vesafb. Seperti yang dijelaskan di /usr/src/linux/Documentation/fb/vesafb.txt (yang terinstal ketika anda menginstal paket source kernel), anda harus mencantumkan nomor VESA yang sesuai dengan resolusi dan kedalaman warna yang dibutuhkan.
Tabel di bawah ini menjabarkan resolusi-resolusi dan kedalaman warna dan menyesuaikannya dengan nilai yang harus anda cantumkan di statemen vga.
640x480 | 800x600 | 1024x768 | 1280x1024 | |
256 | 0x301 | 0x303 | 0x305 | 0x307 |
32k | 0x310 | 0x313 | 0x316 | 0x319 |
64k | 0x311 | 0x314 | 0x317 | 0x31A |
16M | 0x312 | 0x315 | 0x318 | 0x31B |
Statemen | Penjelasan |
ywrap | Dengan anggapan kartu grafis bisa melilit (wrap) di sekitar memori yang ada (yakni melanjutkan lagi dari awal ketika telah mencapai bagian akhir) |
mtrr:n | Pengaturan register MTRR. n bisa salah satu dari: 0 - disabled 1 - uncachable 2 - write-back 3 - write-combining 4 - write-through |
mode | (hanya uvesafb) Menentukan resolusi, kedalaman warna dan refresh rate. Sebagai contoh, 1024x768-32@85 untuk resolusi 1024x768, kedalaman warna 32 bit, dan refresh rate 85 Hz. |
Sekarang lanjutkan dengan instalasi GRUB. atau LILO.
Bagian paling penting dalam mempelajari GRUB adalah berkenalan dengan cara GRUB menamai harddisk dan partisi. Partisi Linux /dev/hda1 (untuk drive IDE) atau /dev/sda1 (untuk drive SATA/SCSI anda kemungkinan besar akan dinamai (hd0,0) oleh GRUB. Perhatikan tanda kurung di sekitar hd0,0 - tanda kurung tersebut diperlukan.
Harddisk dihitung mulai dari nol bukan "a" dan partisi-partisi dimulai dari nol bukan satu. Anda juga perlu mengetahui bahwa untuk perangkat hd, hanya harddisk yang dihitung, bukan perangkat atapi-ide seperti cdrom dan cd-rw. Selain itu, penamaan yang sama berlaku juga untuk perangkat SCSI. (Biasanya perangkat SCSI mendapatkan nomor yang lebih tinggi daripada perangkat IDE, kecuali jika bios dikonfigurasi untuk boot dari perangkat SCSI). Ketika anda mengatur BIOS untuk boot ke harddisk lain (misalkan slave pertama), harddisk itulah yang dianggap sebagai hd0.
Anggap anda mempunyai sebuah harddisk di /dev/hda, sebuah cdrom di /dev/hdb, sebuah cd-rw di /dev/hdc, sebuah harddisk ke dua di /dev/hdd, dan tidak ada perangkat SCSI; /dev/hdd7 akan dinamai (hd1,6). Mungkin kedengarannya rumit, tetapi walaupun rumit, GRUB menyediakan mekanisme tab completion yang sangat berguna bagi mereka yang memiliki banyak harddisk dan partisi, juga bagi mereka yang kurang mengerti tentang skema penomoran GRUB.
Setelah anda terbiasa dengan skema penomoran GRUB, sekarang saatnya untuk menginstal GRUB.
Untuk menginstal GRUB, pertama mari kita emerge paketnya:
Daftar Kode 2.1: Instalasi GRUB |
# emerge grub
|
Daftar Kode 2.2: Menulis file /boot/grub/grub.conf |
# nano -w /boot/grub/grub.conf
|
- grub.conf pertama diperuntukkan bagi anda yang tidak menggunakan genkernel untuk membangun kernel
- grub.conf kedua diperuntukkan bagi pengguna genkernel
Catatan: Jika filesystem root anda adalah JFS, anda harus menambahkan " ro" ke baris kernel karena JFS perlu me-replay log-nya sebelum dapat melakukan mount secara read-write. |
Daftar Kode 2.3: grub.conf untuk pengguna non-genkernel |
# Kernel yang akan di-boot secara default. 0 adalah pertama, 1 adalah kedua, dll. default 0 # Berapa detik GRUB harus menunggu sebelum kernel default di-boot. timeout 30 # Keren, gambar latar belakang agar tampilan lebih bagus :) # Beri tanda komentar ('#') jika anda tidak memiliki kartu video splashimage=(hd0,0)/grub/splash.xpm.gz title=Gentoo Linux 2.6.23-r8 # Partisi tempat imej kernel (atau sistem operasi) berada root (hd0,0) kernel /boot/kernel-2.6.23-gentoo-r8 root=/dev/hda3 title Gentoo Linux 2.6.23-r8 (rescue) # Partisi tempat imej kernel (atau sistem operasi) berada root (hd0,0) kernel /boot/kernel-2.6.23-gentoo-r8 root=/dev/hda3 init=/bin/bb # Empat baris berikutnya hanya digunakan jika anda melakukan dualboot dengan sistem Windows. # Pada contoh ini, Windows berada di partisi /dev/hda6. title Windows XP rootnoverify (hd0,5) makeactive chainloader +1 |
Daftar Kode 2.4: grub.conf untuk pengguna genkernel |
default 0
timeout 30
splashimage=(hd0,0)/grub/splash.xpm.gz
title Gentoo Linux 2.6.23-r8
root (hd0,0)
kernel /boot/kernel-genkernel-x86-2.6.23-gentoo-r8 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev
initrd /boot/initramfs-genkernel-x86-2.6.23-gentoo-r8
# Hanya jika anda ingin dualboot
title Windows XP
root (hd0,5)
makeactive
chainloader +1
|
Catatan: udev yang diletakkan di akhir baris kernel diperlukan untuk menyiasati bug pada beberapa versi genkernel jika anda menggunakan udev (yang merupakan default). |
Selain itu, jika anda menggunakan skema partisi yang berbeda dan tidak meletakkan /boot pada partisi terpisah, maka prefix (awalan) /boot yang digunakan pada contoh di atas benar-benar diperlukan. Jika anda mengikuti skema partisi yang kami sarankan, maka awalan /boot tidak diperlukan, karena symlink boot akan mengatasinya. Singkatnya, contoh-contoh di atas seharusnya bisa berfungsi, apakah anda menggunakan partisi /boot terpisah atau tidak.
Jika anda perlu menambahkan opsi-opsi lain ke kernel, tambahkan saja opsi-opsi tersebut di akhir perintah kernel. Kita telah menambahkan opsi (root=/dev/hda3 atau real_root=/dev/hda3), tetapi anda juga dapat menambahkan opsi-opsi lain lagi. Sebagai contoh, kita tambahkan opsi vga untuk dukungan framebuffer seperti yang telah kita bicarakan sebelumnya.
Jika anda menggunakan kernel 2.6.7 atau yang lebih baru dan anda men-jumper harddisk anda karena BIOS tidak mampu menangani harddisk besar, maka anda perlu menambahkan hdx=stroke.
Pengguna genkernel seharusnya tahu bahwa kernel mereka menggunakan opsi-opsi boot yang sama seperti CD Instalasi. Misalnya, jika anda memiliki perangkat SCSI, anda seharusnya menambahkan doscsi sebagai opsi kernel.
Sekarang, simpanlah file grub.conf tersebut dan keluar. Anda masih perlu menginstal GRUB di MBR (Master Boot Record) agar GRUB secara otomatis dijalankan ketika sistem anda di-boot.
Para pengembang GRUB menganjurkan penggunaan grub-install. Tetapi, jika karena satu dan lain hal grub-install gagal, anda tetap memiliki pilihan untuk menginstal GRUB secara manual.
Lanjutkan dengan Default: Instalasi GRUB dengan grub-install atau Alternatif: Instalasi GRUB dengan instruksi manual.
Untuk menginstal GRUB, anda perlu menjalankan perintah grub-install. Tetapi, grub-install tidak akan berfungsi karena kita berada di dalam lingkungan chroot. Kita perlu memperbarui /etc/mtab (file yang berisi informasi tentang semua filesystem yang telah di-mount) terlebih dahulu: untungnya, ada cara mudah untuk melakukannya - salin saja /proc/mounts ke /etc/mtab, kecuali baris rootfs jika anda tidak membuat partisi boot terpisah. Perintah berikut ini bisa digunakan pada kedua kasus.
Daftar Kode 2.5: Menciptakan /etc/mtab |
# grep -v rootfs /proc/mounts > /etc/mtab
|
Daftar Kode 2.6: Menjalankan grub-install |
# grub-install --no-floppy /dev/hda
|
Lanjutkan ke Reboot Sistem.
Untuk mulai mengkonfigurasi GRUB, ketik grub. Anda akan mendapatkan prompt baris perintah grub grub>. Sekarang, anda harus mengetikkan perintah-perintah yang benar untuk menginstal GRUB ke harddisk anda.
Daftar Kode 2.7: Menjalankan shell GRUB |
# grub --no-floppy
|
Catatan: Jika sistem anda tidak memiliki drive floppy, tambahkan opsi --no-floppy ke perintah di atas agar grub tidak mencari drive floppy (yang tidak ada). |
Mekanisme tab completion GRUB dapat digunakan di dalam GRUB. Sebagai contoh, jika anda mengetikkan "root (" diikuti oleh TAB, GRUB akan menampilkan sebuah daftar perangkat (mis. hd0). Jika anda mengetikkan "root (hd0," diikuti oleh TAB, anda akan mendapatkan daftar partisi yang tersedia untuk dipilih (mis. hd0,0).
Dengan menggunakan mekanisme tab completion ini, GRUB seharusnya tidak sulit untuk dikonfigurasi. Sekarang lanjutkan, dengan mengkonfigurasi GRUB :-)
Daftar Kode 2.8: Instalasi GRUB di MBR |
grub> root (hd0,0) (tuliskan tempat partisi /boot berada) grub> setup (hd0) (Instal GRUB di MBR) grub> quit (Keluar dari GRUB) |
Catatan: Jika anda ingin menginstal GRUB di partisi tertentu, bukan di MBR, anda harus mengganti perintah setup tadi agar GRUB menunjukkan partisi yang benar. Jika anda ingin menginstal GRUB di partisi /dev/hda3, maka perintahnya akan menjadi setup (hd0,2). Walaupun begitu, hanya sedikit pengguna yang ingin melakukan hal ini. |
Lanjutkan dengan Reboot Sistem.
LILO, singkatan dari LInux LOader, adalah bootloader Linux asli yang telah terpercaya. Namun begitu, LILO tidak memiliki beberapa fitur yang dimiliki oleh GRUB (yang juga menjadi alasan mengapa GRUB sangat populer saat ini). Alasan LILO masih tetap digunakan pada beberapa sistem adalah karena GRUB tidak dapat berfungsi dan LILO dapat berfungsi. Tentu saja, LILO masih digunakan juga karena beberapa orang sangat mengenal LILO dan ingin tetap menggunakannya. Untuk alasan apapun, Gentoo mendukung keduanya, dan sepertinya anda telah memutuskan untuk menggunakan LILO.
Instalasi LILO sangat mudah, gunakan saja emerge.
Daftar Kode 3.1: Instalasi LILO |
# emerge lilo
|
Daftar Kode 3.2: Menulis /etc/lilo.conf |
# nano -w /etc/lilo.conf
|
- Satu untuk para pengguna yang tidak menggunakan genkernel untuk menciptakan kernel.
- Satu lagi untuk pengguna genkernel.
Catatan: Jika filesystem root anda adalah JFS, anda harus menambahkan " ro" ke baris kernel karena JFS perlu me-replay log-nya sebelum bisa melakukan mount secara read-write. |
Daftar Kode 3.3: Contoh /etc/lilo.conf |
boot=/dev/hda # Instal LILO di MBR prompt # Berikan pengguna kesempatan untuk memilih entri lain timeout=50 # Tunggu 5 (lima) detik sebelum boot entri default default=gentoo # Setelah waktu tunggu selesai, boot entri "gentoo" # Untuk pengguna non-genkernel image=/boot/kernel-2.6.23-gentoo-r8 label=gentoo # Nama entri ini read-only # Mulai dengan root read-only. Jangan diubah! root=/dev/hda3 # Lokasi filesystem root image=/boot/kernel-2.6.23-gentoo-r8 label=gentoo.rescue # Nama untuk seksi ini read-only # Mulai dengan root read-only. Jangan diubah! root=/dev/hda3 # Lokasi filesystem root append="init=/bin/bb" # Menjalankan shell rescue statik Gentoo # Untuk pengguna genkernel image=/boot/kernel-genkernel-x86-2.6.23-gentoo-r8 label=gentoo read-only root=/dev/ram0 append="init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev" initrd=/boot/initramfs-genkernel-x86-2.6.23-gentoo-r8 # Dua baris berikutnya hanya digunakan jika anda dualboot dengan sistem Windows. # Pada contoh ini, Windows berada di partisi /dev/hda6. other=/dev/hda6 label=windows |
Catatan: udev yang diletakkan di akhir baris kernel diperlukan untuk menyiasati bug pada beberapa versi genkernel jika anda menggunakan udev (yang merupakan default). |
Catatan: Jika anda menggunakan skema partisi dan/atau imej kernel yang berbeda, maka sesuaikanlah dengan partisi/kernel anda. |
Daftar Kode 3.4: Menggunakan append untuk menambahkan opsi kernel |
image=/boot/kernel-2.6.23-gentoo-r8
label=gentoo
read-only
root=/dev/hda3
append="video=vesafb:mtrr,ywrap,1024x768-32@85"
|
Pengguna genkernel seharusnya tahu bahwa kernel mereka menggunakan opsi-opsi boot yang sama seperti LiveCD. Misalnya, jika anda memiliki perangkat SCSI, anda seharusnya menambahkan doscsi sebagai opsi kernel.
Sekarang simpanlah file tersebut dan keluar. Sebagai langkah terakhir, anda harus menjalankan perintah /sbin/lilo agar LILO menerapkan konfigurasi /etc/lilo.conf ke sistem anda (instal LILO ke disk). Perlu diingat bahwa anda harus menjalankan kembali /sbin/lilo setiap kali anda menginstal kernel baru atau melakukan perubahan pada menu!
Daftar Kode 3.5: Menyelesaikan instalasi LILO |
# /sbin/lilo
|
Sekarang lanjutkan ke Reboot Sistem.
Keluarlah dari lingkungan chroot dan unmount semua partisi yang dimount. Lalu ketik perintah ajaib yang telah anda tunggu-tunggu: reboot.
Daftar Kode 4.1: Unmount semua partisi dan reboot |
# exit cdimage ~# cd cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo cdimage ~# reboot |
Setelah anda reboot ke sistem Gentoo anda, selesaikan dengan Menyelesaikan Instalasi Gentoo.
11. Menyelesaikan Instalasi Gentoo
Bekerja sebagai root di sistem Unix/Linux sangatlah berbahaya dan sebaiknya dihindari sebisa mungkin. Karena itu, anda sangat dianjurkan untuk membuat sebuah akun user untuk penggunaan sehari-hari.Grup yang diikuti oleh user menyatakan aktifitas apa saja yang boleh dilakukan oleh user tersebut. Tabel di bawah ini berisi sejumlah grup penting yang mungkin ingin anda gunakan:
Grup | Penjelasan |
audio | Boleh mengakses perangkat audio |
cdrom | Boleh mengakses perangkat optikal secara langsung |
floppy | Boleh mengakses floppy secara langsung |
games | Boleh memainkan games |
portage | Boleh melakukan emerge --pretend |
usb | Boleh mengakses perangkat USB |
plugdev | Boleh me-mount dan menggunakan perangkat pluggable, seperti kamera dan stik USB |
video | Boleh mengakses perangkat untuk merekam video dan melakukan akselerasi hardware video |
wheel | Boleh menggunakan su |
Daftar Kode 1.1: Membuat akun user untuk penggunaan sehari-hari |
Login: root Password: (ketik password root) # useradd -m -G users,wheel,audio -s /bin/bash john # passwd john Password: (Tatapkan password untuk john) Re-enter password: (Ketik sekali lagi) |
Setelah anda menyelesaikan instalasi Gentoo dan reboot, jika semuanya berjalan dengan lacar, anda boleh menghapus tarbal stage3 dan snapshot Portage yang anda download. Letaknya ada di direktori (/)
Daftar Kode 2.1: Hapus tarbal stage3 |
# rm /stage3-*.tar.bz2*
|
Daftar Kode 2.2: Hapus snapshot Portage |
# rm /portage-latest.tar.bz2*
|
12. Kemanakah setelah ini?
Selamat! Sekarang anda sudah memiliki sistem Gentoo yang berfungsi. Tetapi, kemanakah setelah ini? Apa saja pilihan-pilihan anda sekarang? Apa yang harus dijelajahi terlebih dahulu? Gentoo menyediakan banyak sekali pilihan untuk para penggunanya, dan karena itu banyak fitur-fitur yang telah didokumentasikan (dan sedikit yang belum didokumentasikan).Anda sebaiknya membaca bagian selanjutnya dari Buku Pegangan Gentoo yang berjudul Bekerja dengan Gentoo yang menjelaskan cara menjaga software anda agar tetap up-to-date, cara menginstal software lain, apa itu flag USE, cara kerja sistem init Gentoo, dll.
Jika anda tertarik untuk mengoptimasi sistem anda untuk penggunaan desktop, atau anda ingin mempelajari cara mengkonfigurasi sistem anda menjadi sebuah sistem desktop yang berfungsi penuh, bacalah Sumber Dokumentasi Desktop Gentoo. Selain itu, anda juga mungkin ingin menggunakan panduan lokalisasi kami agar anda lebih betah bekerja dengan sistem anda.
Kami juga menyediakan Buku Pegangan Keamanan Gentoo yang sangat baik untuk dibaca.
Untuk mendapatkan daftar lengkap dari seluruh dokumentasi kami yang tersedia, periksa halaman Sumber Dokumentasi kami.
Anda tentu saja akan selalu diterima dengan senang hati di Forum Gentoo atau salah satu dari channel IRC Gentoo kami.
Kami juga memiliki beberapa milis yang terbuka untuk seluruh pengguna kami. Informasi tentang cara bergabung bisa anda dapatkan dari halaman tersebut.
Kami akan diam sekarang dan membiarkan anda menikmati sistem Gentoo anda :-)
B. Bekerja menggunakan Gentoo
1. Pengenalan Portage
Mungkin Portage adalah inovasi Gentoo yang paling dikenal dalam dunia manajemen software. Dengan fleksibilitasnya yang tinggi dan jumlah fitur yang banyak, Portage sering dianggap sebagai utilitas manajemen software terbaik yang tersedia untuk Linux.Portage ditulis dengan Python dan Bash, jadi sangat transparan kepada user, karena keduanya merupakan bahasa skript.
Kebanyakan user akan berkerja dengan Portage melalui utilitas emerge. Bab ini tidak dimaksudkan untuk menduplikasi informasi yang telah tersedia di manual emerge. Untuk mengetahui seluruh opsi-opsi emerge, silahkan baca manualnya"
Daftar Kode 1.1: Membaca manual emerge |
$ man emerge
|
Kapanpun anda meminta Portage untuk menjalankan beberapa aksi yang berhubungan dengan software, Portage akan menggunakan ebuild yang terdapat pada sistem anda sebagai basisnya. Oleh karena itu, sangatlah penting bagi anda untuk mengupdate ebuild-ebuild di sistem anda secara berkala agar Portage mengetahui software baru, update keamanan, dll.
Pohon Portage biasanya diupdate dengan rsync, sebuah utilitas transfer file berkembang. Memperbarui portage sangat mudah karena perintah emerge telah menyediakan sebuah front-end untuk rsync:
Daftar Kode 2.1: Memperbarui pohon portage |
# emerge --sync
|
Daftar Kode 2.2: Menjalankan emerge-webrsync |
# emerge-webrsync
|
Sebagai contoh, untuk mencari semua paket yang memiliki "pdf" pada namanya:
Daftar Kode 3.1: Mencari paket bernama pdf |
$ emerge --search pdf
|
Daftar Kode 3.2: Mencari paket yang berhubungan dengan pdf |
$ emerge --searchdesc pdf
|
Daftar Kode 3.3: Contoh output 'emerge --search' |
* net-print/cups-pdf Latest version available: 1.5.2 Latest version installed: [ Not Installed ] Size of downloaded files: 15 kB Homepage: http://cip.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/ Description: Provides a virtual printer for CUPS to produce PDF files. License: GPL-2 |
Daftar Kode 3.4: Instalasi gnumeric |
# emerge gnumeric
|
Daftar Kode 3.5: Instalasi palsu gnumeric |
# emerge --pretend gnumeric
|
Daftar Kode 3.6: Download source code untuk gnumeric |
# emerge --fetchonly gnumeric
|
Daftar Kode 3.7: Memeriksa keberadaan flag USE doc |
(alsa-lib hanya sebuah contoh, pastinya) # emerge -vp alsa-lib [ebuild N ] media-libs/alsa-lib-1.0.14_rc1 -debug +doc 698 kB |
Ketika paket telah terinstal, dokumentasinya biasanya dapat ditemukan di sebuah subdirektori yang bernama sama dengan nama paket di dalam direktori /usr/share/doc. Anda juga dapat melihat file apa saja yang telah terinstal dengan menggunakan utilitas equery yang merupakan bagian dari paket app-portage/gentoolkit.
Daftar Kode 3.8: Melihat dokumentasi sebuah paket |
# ls -l /usr/share/doc/alsa-lib-1.0.14_rc1 total 28 -rw-r--r-- 1 root root 669 May 17 21:54 ChangeLog.gz -rw-r--r-- 1 root root 9373 May 17 21:54 COPYING.gz drwxr-xr-x 2 root root 8560 May 17 21:54 html -rw-r--r-- 1 root root 196 May 17 21:54 TODO.gz (Atau gunakan equery:) # equery files alsa-lib | less media-libs/alsa-lib-1.0.9_rc3 * Contents of media-libs/alsa-lib-1.0.14_rc1: /usr /usr/bin /usr/bin/alsalisp (Output dipotong) |
Tapi, ada peringatan keras: Portage tidak akan memeriksa apakah paket yang ingin anda hapus tersebut dibutuhkan oleh paket yang lain. Bagaimanapun juga, Portage akan memperingatkan anda ketika anda ingin menghapus sebuah paket penting yang dapat merusak sistem jika anda membuangnya.
Daftar Kode 3.9: Menghapus gnumeric dari sistem |
# emerge --unmerge gnumeric
|
Untuk menjaga sistem anda agar tetap sempurna, (juga menginstal update keamanan terbaru) anda perlu memperbarui sistem anda secara berkala. Karena Portage hanya memeriksa ebuild-ebuild yang ada di pohon Portage anda, pertama-tama anda harus memperbarui pohon Portage anda. Ketika pohon Portage telah diperbarui, anda dapat memperbarui sistem anda dengan menjalankan perintah emerge --update world. Pada contoh berikut ini, kita juga akan menggunakan opsi --ask yang akan memerintahkan Portage untuk menampilkan daftar paket yang akan diperbarui kemudian menanyakan anda apakah anda ingin melanjutkan atau tidak:
Daftar Kode 3.10: Memperbarui sistem |
# emerge --update --ask world
|
Daftar Kode 3.11: Memperabui sistem secara menyeluruh |
# emerge --update --deep world
|
Jika anda pernah merubah flag-flag USE anda, mungkin anda juga ingin menambahkan opsi --newuse. Portage akan memeriksa apakah perubahan ini membutuhkan instalasi paket-paket baru atau kompilasi ulang paket yang telah telah terinstal:
Daftar Kode 3.12: Menjalankan update secara menyeluruh |
# emerge --update --deep --newuse world
|
Jika anda ingin menghapus paket seperti ini dari sistem anda, menjalankan emerge --unmerge untuk paket tersebut tidak akan terlalu banyak berpengaruh karena semua dependensinya masih dibiarkan di sistem.
Portage juga memiliki kemampuan untuk menghapus dependensi yang tidak lagi memiliki induknya, tapi karena keberadaan software saling bergantung satu sama lain dengan dinamis, pertama-tama anda perlu mengupdate sistem anda secara penuh, termasuk perubahan terbaru anda di flag-flag USE. Selanjutnya anda dapat menjalankan emerge --depclean untuk menghapus dependensi-dependensi tadi. Setelah ini selesai, anda perlu membangun ulang (rebuild) semua aplikasi yang terkait secara dinamis dengan software yang telah anda hapus tersebut.
Seluruh proses tersebut ditangani oleh tiga perintah berikut ini:
Daftar Kode 3.13: Menghapus dependensi lama |
# emerge --update --deep --newuse world # emerge --depclean # revdep-rebuild |
Daftar Kode 3.14: Instalasi paket gentoolkit |
# emerge gentoolkit
|
Dengan Portage, beberapa versi berbeda dari sebuah paket dapat diinstal di sistem yang sama. Jika distro lain sering mengganti nama paket-paket mereka dengan merujuk ke versi tersebut (mis. freetype dan freetype2), Portage menggunakan sebuah teknologi yang disebut SLOT. Sebuah ebuild menerangkan SLOT tertentu untuk versinya. Ebuild-ebuild yang memiliki SLOT-SLOT berbeda dapat bergandengan di dalam satu sistem yang sama. Sebagai contoh, paket freetype memiliki ebuild dengan SLOT="1" dan SLOT="2".
Terdapat juga beberapa paket yang menyediakan fungsionalitas sama, tetapi diimplementasikan dengan cara yang berbeda. Sebagai contoh, metalogd, sysklogd dan syslog-ng merupakan logger sistem. Aplikasi yang membutuhkan "sebuah logger sistem" tidak dapat bergantung hanya kepada metalogd, karena logger sistem yag lain juga sama bagusnya. Portage mengizinkan penggunaan virtual: setiap logger sistem menyediakan virtual/syslog agar aplikasi yang membutuhkan sebuah sistem logger dapat bergantung hanya kepada virtual/syslog.
Software yang terdapat di pohon Portage dapat dibagi menjadi tiga bagian. Secara default, sistem anda hanya menerima paket-paket yang dianggap stabil oleh Gentoo. Kebanyakan software, ketika dirilis, ditambahkan ke cabang percobaan, yang berarti masih dibutuhkan pengujian lebih jauh terhadap software ini sebelum dianggap stabil. Walaupun anda bisa melihat software ini di pohon Portage, Portage tidak akan memperbaruinya sebelum dipindahkan ke cabang stabil.
Beberapa software hanya tersedia untuk sebagian arsitektur. Atau, karena software-software tersebut tidak dapat berfungsi di arsitektur lain, atau juga karena dibutuhkan pengujian lebih jauh, atau karena para pengembang yang memelihara software tersebut tidak dapat memastikan jika paket tersebut dapat berfungsi di arstitektur lain.
Setiap instalasi Gentoo melekat pada sebuah profil tertentu yang berisi, di antara informasi lain, daftar paket yang dibutuhkan oleh sebuah sistem untuk dapat berfungsi dengan normal.
Daftar Kode 4.1: Peringatan Portage tentang paket-paket terblokir (dengan --pretend) |
[blocks B ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.2.2-r1) |
Daftar Kode 4.2: Peringatan Portage tentang paket-paket terblokir (tanpa --pretend) |
!!! Error: the mail-mta/postfix package conflicts with another package. !!! both can't be installed on the same system together. !!! Please use 'emerge --pretend' to determine blockers. |
Untuk memperbaiki sebuah blockage, anda memiliki pilihan untuk tidak menginstal paket yang diblokir, atau menghapus dahulu paket yang memblokir. Pada contoh di atas, anda dapat memilih untuk tidak menginstal postfix atau menghapus dahulu ssmtp.
Anda juga mungkin akan melihat paket penghalang dengan atom tertentu seperti <media-video/mplayer-bin-1.0_rc1-r2. Masalah ini dapat anda atasi dengan memperbarui paket penghalang.
Mungkin juga kedua paket yang konflik sama-sama belum terinstal. Pada kasus yang jarang terjadi ini, anda harus mencari tahu, mengapa anda ingin menginstal keduanya. Pada kebanyakan kasus, anda dapat menginstal salah satu dari kedua paket yang konflik tersebut. Jika tidak silahan kirimkan laporan bug di sistem pelacak bug Gentoo.
Daftar Kode 4.3: Peringatan Portage tentang paket-paket yang di-mask |
!!! all ebuilds that could satisfy "bootsplash" have been masked. |
Daftar Kode 4.4: Peringatan Portage tentang paket-paket yang dimask - alasan |
!!! possible candidates are: - gnome-base/gnome-2.8.0_pre1 (masked by: ~x86 keyword) - lm-sensors/lm-sensors-2.8.7 (masked by: -sparc keyword) - sys-libs/glibc-2.3.4.20040808 (masked by: -* keyword) - dev-util/cvsd-1.0.2 (masked by: missing keyword) - games-fps/unreal-tournament-451 (masked by: package.mask) - sys-libs/glibc-2.3.2-r11 (masked by: profile) |
- keyword ~arch berarti aplikasi tersebut belum cukup teruji untuk diletakkan di cabang stabil. Tunggulah beberapa hari/pekan lalu coba lagi.
- keyword -arch atau keyword -* berarti aplikasi tersebut tidak dapat berfungsi di arsitektur anda. Jika anda yakin sebaliknya, maka silakan buat laporan bug di website bugzilla kami.
- missing keyword berarti aplikasi tersebut belum diuji di arsitektur anda. Mintalah tim port arsitektur anda untuk menguji paket tersebut atau lakukan sendiri pengujiannya, kemudian laporkan hasil yang anda dapatkan ke website bugzilla kami.
- package.mask berarti paket ini telah dianggap rusak, tidak stabil, atau bahkan telah disarankan untuk tidak dipakai.
- profile berarti paket tersebut dianggap tidak cocok dengan profil yang anda gunakan. Aplikasi ini mungkin dapat merusak sistem anda jika anda menginstalnya, atau tidak kompatibel dengan profil yang anda gunakan.
Daftar Kode 4.5: Peringatan Portage tentang dependensi yang tidak ditemukan |
emerge: there are no ebuilds to satisfy ">=sys-devel/gcc-3.4.2-r4". !!! Problem with ebuild sys-devel/gcc-3.4.2-r2 !!! Possibly a DEPEND/*DEPEND problem. |
Daftar Kode 4.6: Peringatan Portage tentang nama-nama ebuild ambigu |
!!! The short ebuild name "aterm" is ambiguous. Please specify !!! one of the following fully-qualified ebuild names instead: dev-libs/aterm x11-terms/aterm |
Daftar Kode 4.7: Peringatan Portage tentang circular dependencies |
!!! Error: circular dependencies: ebuild / net-print/cups-1.1.15-r2 depends on ebuild / app-text/ghostscript-7.05.3-r1 ebuild / app-text/ghostscript-7.05.3-r1 depends on ebuild / net-print/cups-1.1.15-r2 |
Daftar Kode 4.8: Peringatan Portage tentang download yang gagal |
!!! Fetch failed for sys-libs/ncurses-5.4-r5, continuing...
(...)
!!! Some fetch errors were encountered. Please see above for details.
|
Silahkan coba kembali setelah satu jam untuk melihat apakah masalah ini telah teratasi.
Daftar Kode 4.9: Peringatan Portage tentang paket yang dilindungi oleh profil |
!!! Trying to unmerge package(s) in system profile. 'sys-apps/portage' !!! This could be damaging to your system. |
Terkadang, anda gagal ketika mencoba untuk meng-emerge sebuah paket, dan mendapatkan pesan error:
Daftar Kode 4.10: Kegagalan pemeriksaan digest |
>>> checking ebuild checksums !!! Digest verification failed: |
Ketika pemeriksaan digest gagal, jangan mencoba untuk men-digest ulang sendiri paket tersebut. Menjalankan ebuild foo digest tidak akan menyelesaikan permasalahan; bahkan bisa menjadikannya lebih parah.
Tetapi, tunggulah satu atau dua jam sampai pohon Portage diperbaiki. Kemungkinan besar kesalahan tersebut sudah diketahui, tapi juga dibutuhkan waktu yang agak lama untuk memperbaiki pohon Portage. Sambil menunggu, periksalah Bugzilla untuk melihat apakah ada orang yang telah melaporkan masalah tersebut atau belum. Jika belum, silakan laporkan bug untuk paket yang rusak tersebut.
Ketika anda telah melihat bahwa masalah tersebut sudah diatasi, anda mungkin ingin kembali mengsinkronkan pohon Portage anda untuk mendapatkan digest yang telah diperbaiki.
Penting: Hal ini bukan berarti anda boleh mensinkronkan pohon Portage anda berkali-kali! Seperti yang telah dinyatakan pada aturan rsync (ketika anda menjalankan emerge --sync), pengguna yang terlalu sering melakukan rsync bisanya akan diusir. Malahan lebih baik lagi jika anda menunggu sampai jadwal rsync anda selanjutnya agar anda tidak memberatkan server rsync. |
2. Flag USE
Ketika anda menginstal Gentoo (atau distribusi yang lain, atau bahkan sistem operasi yang lain), anda membuat pilihan berdasarkan lingkungan tempat anda bekerja. Pengaturan suatu server berbeda dari pengaturan workstation. Workstation untuk game juga berbeda dari workstation untuk render 3D.Hal ini tidak hanya berlaku untuk memilih paket apa saja yang akan anda instal, tetapi juga fitur apa yang harus didukung oleh paket-paket tertentu. Jika anda tidak membutuhkan OpenGL, mengapa anda harus repot-repot menginstal OpenGL dan mengaktifkan dukungan OpenGL pada hampir semua paket anda? Jika anda tidak ingin menggunakan KDE, mengapa anda harus melakukan kompilasi paket dengan dukungan untuk KDE jika paket tersebut bisa berjalan lancar tanpa dukungan itu?
Untuk membantu pengguna dalam menentukan apa saja yang akan diinstal/diaktifkan dan yang tidak, kami menginginkan pengguna menentukan lingkungannya sendiri dengan cara yang mudah. Hal ini akan memaksa pengguna untuk menentukan apa saja yang benar-benar diinginkannya dan memudahkan proses Portage, sistem pengaturan paket kami, untuk mengambil keputusan yang tepat.
Perhatikan flag USE. Flag tersebut adalah suatu kata kunci yang mengaktifkan dukungan dan informasi dependensi untuk suatu konsep tertentu. Jika anda mendefinisikan suatu flag USE, Portage tahu bahwa anda akan membutuhkan dukungan untuk beberapa kata kunci pilihan. Tentu saja hal ini akan mengubah informasi dependensi untuk sebuah paket.
Marilah kita melihat sebuah contoh khusus: kata kunci kde. Jika anda tidak memiliki kata kunci ini pada variabel USE anda, semua paket yang memiliki opsi dukungan KDE akan dikompilasi tanpa dukungan KDE. Semua paket yang memiliki dependensi opsi KDE akan diinstal tanpa instalasi pustaka KDE (sebagai ketergantungannya). Jika anda menggunakan kata kunci kde, maka paket tersebut akan dikompilasi dengan dukungan KDE, dan pustaka KDE akan diinstal sebagai dependensinya.
Dengan mendefinisikan kata-kata kunci secara benar, anda akan mendapatkan sistem yang sesuai dengan kebutuhan snda.
Terdapat dua jenis flag USE : flag USE global dan lokal.
- Sebuah flag USE global digunakan oleh beberapa paket, untuk keseluruhan sistem. Flag ini yang paling sering ditemui orang sebagai flag-flag USE.
- Sebuah flag USE lokal digunakan oleh suatu paket tunggal untuk membuat keputusan yang berkaitan dengan paket tertentu.
Daftar flag-flag USE lokal yang tersedia dapat ditemukan di /usr/portage/profiles/use.local.desc.
Dengan harapan anda dapat diyakinkan akan pentingnya flag USE, kami akan menginformasikan bagaimana cara mendeklarasikan flag USE.
Seperti yang telah disebutkan sebelumnya, semua flag USE dideklarasikan di dalam variabel USE. Untuk memudahkan user mencari dan memilih flag USE, kami telah memberikan sebuah pengaturan USE default. Pengaturan ini adalah kumpulan dari flag USE yang kami rasa sering digunakan oleh user Gentoo. Setting default ini dideklarasikan pada file make.defaults, yang merupakan bagian dari profil anda.
Profil yang digunakan oleh sistem anda ditunjukkan oleh simlink make.profile. Setiap profil bekerja di atas profil lain yang lebih luas, hasil akhirnya adalah rangkuman dari seluruh profil. Profil teratas adalah profil base (/usr/portage/profiles/base).
Mari kita lihat pengaturan USE default untuk profil 2004.3:
Daftar Kode 2.1: Variabel USE make.defaults untuk profil 2004.3 |
(Contoh ini merupakan rangkuman dari setting di profil base,
default-linux, default-linux/x86 dan default-linux/x86/2004.3)
USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
foomaticdb gdbm gif gpm gtk imlib jpeg kde gnome libg++ libwww mad
mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt
quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib"
|
Untuk mengubah pengaturan default ini, anda perlu menambahkan atau mengubah kata kunci pada variabel USE. Hal ini dilakukan secara global dengan mendefinisikan variabel USE pada /etc/make.conf. Dalam variabel ini, Anda menambahkan flag USE tambahan yang Anda butuhkan, atau membuang flag USE yang tidak anda butuhkan. Yang kedua ini dapat dilakukan dengan menambahkan kata kunci dengan tanda minus ("-").
Sebagai contoh, untuk membuang dukungan untuk KDE dan QT tetapi menambahkan dukungan untuk ldap, variabel USE berikut dapat didefinisikan pada /etc/make.conf:
Daftar Kode 2.2: Contoh pengaturan USE di /etc/make.conf |
USE="-kde -qt3 -qt4 ldap" |
Sebagai contoh, jika anda tidak ingin dukungan berkdb secara global tetapi anda menginginkannya untuk mysql, anda harus menambahkan:
Daftar Kode 2.3: Contoh /etc/portage/package.use |
dev-db/mysql berkdb |
Daftar Kode 2.4: Contoh lain /etc/portage/package.use |
dev-php/php -java |
Sebagai contoh, kita akan menonaktifkan java untuk sementara dari pengaturan USE selama instalasi seamonkey.
Daftar Kode 2.5: Menggunakan USE sebagai variabel lingkungan |
# USE="-java" emerge seamonkey
|
- Pengaturan USE default yang ditentukan di file make.defaults sebagai bagian dari profil anda
- Pengaturan USE yang didefinisikan ditentukan di /etc/make.conf
- Pengaturan USE yang ditentukan oleh pengguna di /etc/portage/package.use
- Pengaturan USE yang ditentukan oleh pengguna sebagai variabel lingkungan
Daftar Kode 2.6: Menjalankan emerge --info |
# emerge --info
|
Daftar Kode 2.7: Memperbarui seluruh sistem |
# emerge --update --deep --newuse world
|
Peringatan: emerge --depclean adalah langkah yang berbahaya dan sebaiknya digunakan dengan sangat hati-hati. Periksa kembali daftar paket-paket "usang" yang ditampilkan untuk memastikan agar Portage tidak menghapus paket-paket yang anda perlukan. Pada contoh berikut ini, kami menambahkan opsi -p agar depclean hanya menampilkan daftar paket-paket tanpa menghapusnya. |
Daftar Kode 2.8: Menghapus paket-paket usang |
# emerge -p --depclean
|
Daftar Kode 2.9: Menjalankan revdep-rebuild |
# revdep-rebuild
|
Mari kit gunakan seamonkey sebagai contoh: flag USE saja yang digunakan? Untuk mengetahuinya, kita menggunakan emerge dengan opsi --pretend dan --verbose:
Daftar Kode 3.1: Melihat flag USE yang digunakan |
# emerge --pretend --verbose seamonkey
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild R ] www-client/seamonkey-1.0.7 USE="crypt gnome java -debug -ipv6
-ldap -mozcalendar -mozdevelop -moznocompose -moznoirc -moznomail -moznopango
-moznoroaming -postgres -xinerama -xprint" 0 kB
|
Daftar Kode 3.2: Instalasi gentoolkit |
# emerge gentoolkit
|
Daftar Kode 3.3: Menggunakan equery untuk melihat flag USE yang digunakan |
# equery uses =gnumeric-1.6.3 -a [ Searching for packages matching =gnumeric-1.6.3... ] [ Colour Code : set unset ] [ Legend : Left column (U) - USE flags from make.conf ] [ : Right column (I) - USE flags packages was installed with ] [ Found these USE variables for app-office/gnumeric-1.6.3 ] U I - - debug : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see http://www.gentoo.org/proj/en/qa/backtraces.xml. - - gnome : Adds GNOME support + + python : Adds support/bindings for the Python language - - static : !!do not set this during bootstrap!! Causes binaries to be + statically linked instead of dynamically |
3. Fitur-fitur Portage
Portage memiliki berbagai fitur tambahan yang dapat menjadikan pengalaman anda dengan Gentoo lebih asyik. Kebanyakan dari fitur ini bergantung pada beberapa software yang dapat meningkatkan performa, kehandalan, dan keamanan sistem,...Untuk mengaktifkan atau menonaktifkan fitur-fitur tertentu Portage, anda perlu mengedit variabel FEATURES di file /etc/make.conf yang berisi keyword fitur, dipisahkan dengan spasi. Pada beberapa kasus, anda juga perlu menginstal utilitas tambahan yang diperlukan oleh fitur tersebut.
Tidak semua fitur yang didukung Portage kami jelaskan di sini. Untuk gambaran secara menyeluruh, silahkan baca manual make.conf:
Daftar Kode 1.1: Membaca manual make.conf |
$ man make.conf
|
Daftar Kode 1.2: Mengetahui FEATURES yang telah digunakan |
$ emerge --info | grep FEATURES
|
Anda dapat memperoleh informasi lebih lanjut tentang distcc (dan informasi bagaimana menjalankannya pada Gentoo) di Dokumentasi Distcc Gentoo kami.
Distcc dilengkapi dengan sebuah monitor grafis untuk memonitor tugas-tugas yang dikirimkan oleh komputer Anda untuk kompilasi. Jika anda menggunakan Gnome maka tambahkan 'gnome' pada variabel USE anda. Jika anda tidak menggunakan Gnome dan tetap ingin memiliki monitor ini, maka anda harus menambahkan 'gtk' pada variabel USE anda.
Daftar Kode 2.1: Instalasi Distcc |
# emerge distcc
|
Sekarang jalankan distcc-config dan masukkan daftar dari server-server distcc yang tersedia. Sebagai contoh sederhana, kami ganggap server distcc yang tersedia adalah 192.168.1.102 (host ini), 192.168.1.103 dan 192.168.1.104 (dua host "remote"):
Daftar Kode 2.2: Konfigurasi distcc untuk menggunakan tiga server distcc yang tersedia |
# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"
|
Daftar Kode 2.3: Menjalankan daemon distcc |
# rc-update add distccd default # /etc/init.d/distccd start |
Jika anda tertarik untuk lebih mengenal ccache, silahkan kunjungi website ccache.
Untuk menginstal ccache, jalankan emerge ccache:
Daftar Kode 3.1: Instalasi ccache |
# emerge ccache
|
Daftar Kode 3.2: Edit CCACHE_SIZE di /etc/make.conf |
CCACHE_SIZE="2G" |
Daftar Kode 3.3: Melihat statistik ccache |
# CCACHE_DIR="/var/tmp/portage" ccache -s
|
Bagaimanapun juga, ketika anda menjalankan ccache, lokasi default ${HOME}/.ccache akan digunakan, itulah sebabnya anda perlu mengatur variabel CCACHE_DIR ketika ingin melihat statistik ccache (Portage).
Jika anda ingin menggunakan ccache untuk kompilasi non-Portage, tambahkan /usr/lib/ccache/bin di awal variabel PATH anda (sebelum /usr/bin). Ini dapat dilakukan dengan mengedit .bash_profile di direktori home anda. Penggunaan .bash_profile adalah salah satu cara untuk mendefinisikan variabel PATH.
Daftar Kode 3.4: Edit .bash_profile |
PATH="/usr/lib/ccache/bin:/opt/bin:${PATH}"
|
Untuk menciptakan sebuah paket prebuilt, anda dapat menggunakan quickpkg jika paket tersebut telah terinstal di sistem anda, atau emerge dengan opsi --buildpkg atau --buildpkgonly.
Jika anda ingin agar Portage selalu menciptakan paket prebuilt untuk setiap software yang anda instal, tambahkan buildpkg ke variabel FEATURES.
Dukungan yang lebih luas untuk pembuatan kumpulan paket prebuilt dapat dilakukan dengan catalyst. Untuk info lebih lanjut tentang catalyst, bacalah FAQ Catalyst.
Walaupun Gentoo tidak menyediakannya, anda dapat menciptakan sebuah repositori pusat tempat anda menyimpan paket-paket prebuilt. Jika anda ingin menggunakan repositori ini, anda perlu memberitahukannya kepada Portage dengan menambahkan variabel PORTAGE_BINHOST yang menunjuk ke repositori tersebut. Sebagai contoh, jika paket-paket prebuilt tersimpan di ftp://buildhost/gentoo:
Daftar Kode 4.1: Set PORTAGE_BINHOST di /etc/make.conf |
PORTAGE_BINHOST="ftp://buildhost/gentoo" |
Sebagai contoh, untuk menginstal gnumeric dari paket prebuilt:
Daftar Kode 4.2: Instalasi paket prebuilt gnumeric |
# emerge --usepkg --getbinpkg gnumeric
|
Daftar Kode 4.3: Membaca manual emerge |
# man emerge
|
Ketika Portage dijalankan sebagai root, FEATURES="userfetch" akan mengizinkan Portage untuk menanggalkan hak root. Ini merupakan sebuah peningkatan kecil untuk keamanan sistem.
4. Skrip Init
Ketika sistem anda boot, anda akan melihat banyak teks yang beterbangan. Jika anda memperhatikan dengan benar, anda akan mengetahui bahwa teks ini adalah teks yang selalu ditampilkan setiap kali sistem anda boot. Urutan dalam semua proses ini disebut boot sequences dan (lebih kurang) didefenisikan secara statis.Pertama-tama, bootloader akan memuat imej kernel yang telah anda tentukan di konfigurasi bootloader ke dalam memori, setelah itu bootloader memerintahkan CPU untuk menjalankan kernel. Ketika kernel telah dimuat dan dialankan, bootloader akan menginisialisasi semua struktur dan tugas-tugas khusus kernel dan memulai proses init.
Proses ini kemudian akan memastikan bahwa semua filesystem (yang didefenisikan dalam /etc/fstab) dimuat dan siap digunakan. Kemudian beberapa skrip yang berada pada /etc/init.d akan dijalankan, yang akan memulai servis yang anda perlukan untuk menghasilkan suatu sistem yang sukses di-boot.
Terakhir, setelah semua skrip dijalankan, init mengaktifkan terminal-terminal (dalam banyak kasus ini berupa konsol virtual yang tersembunyi di dalam Alt-F1, Alt-F2, dst) dengan melampirkan proses khusus yang disebut agetty padanya. Proses ini akan memastikan bahwa anda dapat login melalui terminal-terminal ini dengan menjalankan login.
init tidak hanya menjalankan skrip yang ada di dalam /etc/init.d secara acak. Bahkan tidak menjalankan semua skrip yang berada di dalam /etc/init.d, melainkan hanya skrip yang telah diperintahkan untuk dijalankan saja. Skrip yang akan dijalankan ditentukan dengan melihat isi /etc/runlevels.
Pertama-tama, init menjalankan semua skrip dari /etc/init.d yang mempunyai symlink di /etc/runlevels/boot. Biasanya, skrip dijalankan sesuai dengan urutan abjad, tetapi beberapa skrip mempunyai dependensi di dalamnya, memberitahukan kepada sistem bahwa skrip yang lain harus dijalankan terlebih dahulu sebelum ia dapat dijalankan.
Ketika semua skrip yang direferensikan oleh /etc/runlevels/boot telah dijalankan, init melanjutkannya dengan menjalankan skrip yang memiliki symlink di /etc/runlevels/default. Lagi-lagi, init akan menggunakan urutan abjad untuk menentukan skrip mana yang akan dijalankan lebih dulu, kecuali jika suatu skrip mempunyai dependensi di dalamnya yang menyebabkan perubahan urutan agar skrip-skrip dijalankan dengan urutan yang benar.
Tentu saja init tidak memutuskan semuanya sendirian. Diperlukan sebuah file konfigurasi yang menentukan tindakan apa saja yang harus diambil. File konfigurasi ini adalah /etc/inittab.
Jika anda mengingat urutan boot yang telah kami jelaskan, anda akan mengingat bahwa tindakan init yang pertama adalah melakukan mount semua filesystem. Tindakan ini ditentukan pada baris berikut ini dalam /etc/inittab:
Daftar Kode 1.1: Baris inisialisasi sistem pada /etc/inittab |
si::sysinit:/sbin/rc sysinit |
Kedua, init menjalankan semua skrip yang mempunyai symlink di /etc/runlevels/boot yang ditentukan pada baris berikut ini:
Daftar Kode 1.2: Inisialisasi sistem, lanjutan |
rc::bootwait:/sbin/rc boot |
Sekarang init akan memeriksa file konfigurasinya untuk melihat runlevel apa yang perlu dijalankan. Untuk memutuskan hal ini, maka baris berikut ini dari /etc/inittab akan dibaca:
Daftar Kode 1.3: Baris init default |
id:3:initdefault: |
Daftar Kode 1.4: Defenisi runlevel |
l0:0:wait:/sbin/rc shutdown l1:S1:wait:/sbin/rc single l2:2:wait:/sbin/rc nonetwork l3:3:wait:/sbin/rc default l4:4:wait:/sbin/rc default l5:5:wait:/sbin/rc default l6:6:wait:/sbin/rc reboot |
Ketika rc selesai dijalankan, init menentukan konsol virtual apa yang perlu diaktifkan dan perintah apa yang perlu dijalankan pada setiap konsol:
Daftar Kode 1.5: Defenisi konsol virtual |
c1:12345:respawn:/sbin/agetty 38400 tty1 linux c2:12345:respawn:/sbin/agetty 38400 tty2 linux c3:12345:respawn:/sbin/agetty 38400 tty3 linux c4:12345:respawn:/sbin/agetty 38400 tty4 linux c5:12345:respawn:/sbin/agetty 38400 tty5 linux c6:12345:respawn:/sbin/agetty 38400 tty6 linux |
Di Gentoo, terdapat tujuh runlevel yang didefenisikan, tiga runlevel internal, dan empat runlevel yang didefenisikan user. Runlevel internal terdiri dari sysinit, shutdown dan reboot dan melakukan hal-hal yang sama dengan nama mereka: inisialisasi sistem, mematikan sistem dan reboot sistem.
Runlevel yang didefenisikan user berada di dalam subdirektori /etc/runlevels: boot, default, nonetwork dan single. Runlevel boot memulai semua servis penting untuk sistem yang akan digunakan oleh runlevel-runlevel lainnya. Sisa tiga runlevel dibedakan dari servis yang dimulai: default digunakan untuk penggunaan sehari-hari, nonetwork digunakan bila koneksi jaringan tidak diperlukan, dan single digunakan ketika Anda harus memperbaiki sistem.
Skrip yang dimulai oleh proses rc disebut skrip init. Setiap skrip pada /etc/init.d dapat dieksekusi dengan argumen start, stop, restart, pause, zap, status, ineed, iuse, needsme, usesme atau broken.
Untuk memulai, menghentikan atau memulai kembali suatu servis (dan semua servis yang bergantung padanya), start, stop dan restart harus digunakan:
Daftar Kode 1.6: Memulai postfix |
# /etc/init.d/postfix start
|
Catatan: Hanya servis yang memerlukan servis yang diberikan yang akan dihentikan atau dimulai ulang. Servis lain yang bergantung padanya (yang menggunakan servis ini tetapi tidak memerlukannya) tidak akan diutak-atik. |
Daftar Kode 1.7: Menghentikan postfix tetapi membiarkan servis yang bergantung padanya tetap berjalan |
# /etc/init.d/postfix pause
|
Daftar Kode 1.8: Informasi status postfix |
# /etc/init.d/postfix status
|
Daftar Kode 1.9: Reset informasi status postfix |
# /etc/init.d/postfix zap
|
Daftar Kode 1.10: Melihat daftar semua servis yang dibutuhkan oleh postfix |
# /etc/init.d/postfix ineed
|
Daftar Kode 1.11: Melihat daftar semua servis yang membutuhkan postfix |
# /etc/init.d/postfix needsme
|
Daftar Kode 1.12: Melihat daftar dependensi yang tidak tersedia untuk postfix |
# /etc/init.d/postfix broken
|
Dengan rc-update anda dapat menambah dan menghapus skrip init dari suatu runlevel. Utilitas rc-update kemudian akan secara otomatis memerintahkan skrip depscan.sh untuk membangun ulang pohon dependensi.
Anda telah menambahkan beberapa skrip init pada runlevel "default" ketika melakukan instalasi Gentoo. Pada saat itu, mungkin anda sama sekali tidak mempunyai bayangan "default" itu untuk apa, tetapi sekarang anda seharusnya sudah tahu. Skrip rc-update membutuhkan argumen kedua yang mendefenisikan aksi: add, del atau show.
Untuk menambah atau menghapus sebuah skrip init, berikan argumen add atau del kepada rc-update, diikuti dengan skrip init dan runlevel. Sebagai contoh:
Daftar Kode 2.1: Menghapus postfix dari runlevel default |
# rc-update del postfix default
|
Daftar Kode 2.2: Menampilkan informasi skrip init |
# rc-update -v show
|
Skrip init dapat menjadi begitu rumit. Oleh karena itu akan menjadi sangat tidak menarik bagi user untuk mengedit skrip init secara langsung, karena akan membuatnya menjadi rentan terhadap kesalahan. Bagaimanapun juga, pengaturan servis tersebut tetaplah penting. Contohnya, Anda mungkin ingin memberikan opsi lebih untuk servis itu sendiri.
Alasan kedua untuk memiliki pengaturan ini di luar skrip init adalah agar dapat melakukan update skrip init tanpa harus khawatir dibatalkannya perubahan pada pengaturan anda.
Gentoo memberikan cara mudah untuk mengatur suatu servis: setiap skrip init yang dapat dikonfigurasi, mempunyai suatu file di dalam /etc/conf.d. Contohnya, skrip init apache2 (bernama /etc/init.d/apache2) mempunyai suatu file konfigurasi yang bernama /etc/conf.d/apache2, yang dapat berisi opsi-opsi yang ingin anda berikan kepada server Apache 2 ketika memulai servis tersebut:
Daftar Kode 3.1: Variable yang didefenisikan pada /etc/conf.d/apache2 |
APACHE2_OPTS="-D PHP5" |
Tidak. Menulis skrip init biasanya tidak diperlukan, karena Gentoo telah menyediakan skrip init siap pakai untuk semua servis yang disediakan. Tetapi, anda mungkin telah menginstal suatu servis tanpa menggunakan Portage, sehingga anda harus membuat sendiri skrip initnya.
Jangan gunakan skrip init yang disediakan oleh servis tersebut bila tidak disebutkan secara jelas bahwa skrip tersebut ditulis untuk Gentoo: skrip init Gentoo tidak kompatibel dengan skrip init yang digunakan oleh distro lain!
Layout dasar dari sebuah skrip init ditunjukkan di bawah ini.
Daftar Kode 4.1: Layout dasar skrip init |
#!/sbin/runscript depend() { (Informasi dependensi) } start() { (Perintah penting untuk memulai servis) } stop() { (Perintah penting untuk menghentikan servis) } restart() { (Perintah penting untuk memulai kembali servis) } |
Terdapat dua dependensi yang dapat Anda defenisikan: use dan need. Seperti yang telah kami sebutkan sebelumnya, dependensi need lebih ketat daripada dependensi use. Mengikuti tipe dependensi ini, anda memasukkan servis yang dibutuhkan atau dependensi virtual.
Dependensi virtual adalah suatu dependensi yang diberikan oleh suatu servis, tetapi tidak melulu cuma bisa diberikan oleh servis itu saja. Skrip anda dapat bergantung pada logger sistem, tetapi terdapat banyak logger sistem yang tersedia (metalogd, syslog-ng, sysklogd, ...). Karena anda tidak dapat menjalankan semuanya (tidak ada sistem yang menginstal dan menjalankan semua logger sistem ini dalam satu waktu) kami memastikan bahwa semua servis ini menyediakan sebuah dependensi virtual.
Mari kita lihat informasi dependensi untuk servis postfix.
Daftar Kode 4.2: Informasi dependensi postfix |
depend() { need net use logger dns provide mta } |
- membutuhkan dependensi net (virtual) (yang disediakan oleh - misalnya - /etc/init.d/net.eth0)
- menggunakan dependensi logger (virtual) (yang disediakan oleh - misalnya - /etc/init.d/syslog-ng)
- menggunakan dependensi dns (virtual) (yang disediakan oleh - misalnya - /etc/init.d/named)
- menyediakan dependensi mta (virtual) (yang umum untuk semua server mail)
Sebagai contoh, kita akan melihat setting dari servis Portmap:
Daftar Kode 4.3: Fungsi depend() pada servis portmap |
depend() { need net before inetd before xinetd } |
Daftar Kode 4.4: Menjalankan skrip init sebagai skrip pertama pada runlevel |
depend() { before * } |
Daftar Kode 4.5: Contoh fungsi depend() |
depend() { need localmount after bootmisc } |
Daftar Kode 4.6: Contoh fungsi start() |
start() { ebegin "Starting my_service" start-stop-daemon --start --quiet --exec /path/to/my_service \ --pidfile /path/to/my_pidfile eend $? } |
Catatan: Pastikan agar --exec benar-benar memanggil sebuah servis, bukannya skrip shell yang menjalankan servis kemudian berhenti -- inilah yang seharusnya dijalankan oleh skrip init. |
Fungsi lain yang dapat anda defenisikan adalah: stop() dan restart(). Anda tidak diharuskan untuk mendefenisikan fungsi-fungsi ini! Sistem init kita cukup cerdas untuk mengisi fungsi-fungsi ini secara otomatis jika anda sudah menggunakan start-stop-daemon.
Walaupun anda tidak harus menciptakan fungsi stop(), berikut ini adalah contohnya:
Daftar Kode 4.7: Contoh fungsi stop() |
stop() { ebegin "Stopping my_service" start-stop-daemon --stop --exec /path/to/my_service \ --pidfile /path/to/my_pidfile eend $? } |
Daftar Kode 4.8: Servis yang menjalankan skrip foo |
start() { ebegin "Starting my_script" start-stop-daemon --start --exec /path/to/my_script \ --pidfile /path/to/my_pidfile --name foo eend $? } |
Daftar Kode 4.9: Membaca manual start-stop-daemon |
# man start-stop-daemon
|
Jika anda ingin skrip init anda mendukung opsi yang lebih advanced daripada opsi-opsi yang telah kami sediakan, anda harus menambahkan opsi tersebut pada variabel opts, dan membuat suatu fungsi dengan nama yang sama dengan opsi tersebut. Contohnya, untuk mendukung sebuah opsi bernama restartdelay:
Daftar Kode 4.10: Menambahkan dukungan opsi restartdelay |
opts="${opts} restartdelay"
restartdelay() {
stop()
sleep 3 # Tunggu 3 detik sebelum menjalankan lagi
start()
}
|
- /etc/conf.d/<skrip init anda>
- /etc/conf.d/basic
- /etc/rc.conf
Banyak pengguna laptop yang mengetahui situasi ini: di rumah anda memerlukan net.eth0 sementara di perjalanan, anda tidak memerlukannya (karena tidak ada jaringan yang tersedia). Dengan Gentoo, anda dapat mengubah tingkah laku runlevel agar sesuai keinginan anda.
Contoh, anda dapat membuat suatu runlevel "default" kedua yang memiliki skrip init yang berbeda di dalamnya. Kemudian, pada saat boot anda dapat memilih runlevel default mana yang ingin anda gunakan.
Pertama-tama, buatlah direktori runlevel untuk runlevel "default" anda yang kedua. Sebagai contoh kami akan membuat runlevel offline:
Daftar Kode 5.1: Membuat direktori runlevel |
# mkdir /etc/runlevels/offline
|
Daftar Kode 5.2: Menambahkan skrip init yang diperlukan |
(Salin seluruh servis dari runlevel default ke runlevel offline) # cd /etc/runlevels/default # for service in *; do rc-update add $service offline; done (Menghapus servis yang tidak diperlukan dari runlevel offline) # rc-update del net.eth0 offline (Menampilkan servis aktif dari runlevel offline) # rc-update show offline (Contoh sebagian output) acpid | offline domainname | offline local | offline net.eth0 | |
Daftar Kode 5.3: Menonaktifkan peluncuran servis di /etc/conf.d/rc |
RC_COLDPLUG="yes"
(Selanjutnya, tentukan servis yang tidak ingin langsung anda jalankan
RC_PLUG_SERVICES="!net.eth0"
|
Catatan: Untuk mendapatkan info lanjutan tentang hal ini, bacalah komentar di dalam file /etc/conf.d/rc. |
Daftar Kode 5.4: Menambahkan sebuah entri untuk runlevel offline |
title Gentoo Linux Offline Usage
root (hd0,0)
kernel (hd0,0)/kernel-2.4.25 root=/dev/hda3 softlevel=offline
|
Menggunakan bootlevel sangat sejalan dengan softlevel. Perbedaannya di sini hanyalah anda mendefenisikan runlevel "boot" yang kedua dan bukan runlevel "default" yang ke dua.
5. Variabel Lingkungan
Variabel lingkungan adalah nama obyek yang berisi informasi yang digunakan oleh satu aplikasi atau lebih. Banyak user (khususnya mereka yang baru mengenal Linux) merasa hal ini agak aneh atau tidak dapat diatur. Pendapat ini tidak benar: dengan menggunakan variabel lingkungan, kita dengan mudah dapat melakukan perubahan konfigurasi untuk satu aplikasi atau lebih.Tabel berikut berisi daftar variabel yang digunakan oleh sistem Linux berikut penjelasannya. Contoh nilai ditunjukkan setelah tabelnya.
Variabel | Penjelasan |
PATH | Variabel ini berisi daftar direktori, yang dipisahkan oleh titik dua, yang digunakan oleh sistem anda untuk mencari file yang dapat dieksekusi. Jika anda memasukkan suatu nama file yang dapat dieksekusi (seperti ls, rc-update atau emerge) tetapi file ini ternyata tidak terdapat pada daftar direktori, maka sistem tidak akan menjalankan file ini (kecuali jika anda menuliskan path lengkap dari perintah tersebut, seperti /bin/ls). |
ROOTPATH | Variabel ini memiliki fungsi yang sama dengan PATH, tetapi hanya berisi daftar direktori yang akan diperiksa ketika user-root menjalankan sebuah perintah. |
LDPATH | Variabel ini berisi daftar direktori, yang dipisahkan oleh titik dua, yang digunakan oleh linker dinamis untuk mencari pustaka (library). |
MANPATH | Varibel ini berisi daftar direktori, yang dipisahkan oleh titik dua, yang digunakan oleh perintah man untuk mencari halaman manual. |
INFODIR | Variabel ini berisi daftar direktori, yang dipisahkan oleh titik dua, yang digunakan oleh perintah info untuk mencari halaman info. |
PAGER | Variable ini berisi path dari program yang digunakan untuk menunjukkan isi dari suatu file (mis. less atau more). |
EDITOR | Variabel ini berisi path dari program yang digunakan untuk mengubah isi dari suatu file (mis. nano atau vi). |
KDEDIRS | Variabel ini berisi daftar direktori, yang dipisahkan oleh titik dua, yang berisi materi-materi khusus KDE. |
CONFIG_PROTECT | Variabel ini berisi daftar direktori, yang dipisahkan oleh spasi, yang harus dilindungi oleh Portage selama update. |
CONFIG_PROTECT_MASK | Variabel ini berisi daftar direktori, yang dipisahkan oleh spasi, yang tidak boleh dilindungi oleh Portage selama update. |
Daftar Kode 1.1: Contoh definisi variabel |
PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin" ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3" MANPATH="/usr/share/man:/usr/local/share/man" INFODIR="/usr/share/info:/usr/local/share/info" PAGER="/usr/bin/less" EDITOR="/usr/bin/vim" KDEDIRS="/usr" CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf \ /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ \ /usr/share/texmf/tex/platex/config/ /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf |
Contohnya, ketika anda menginstal gcc, file 05gcc akan diciptakan oleh ebuild, yang berisi definisi dari variabel-variabel berikut:
Daftar Kode 2.1: /etc/env.d/05gcc |
PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2" ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2" MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man" INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info" CC="gcc" CXX="g++" LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3" |
Contohnya, ketika gcc diperbarui, file /etc/env.d/05gcc juga akan langsung diperbarui tanpa campur tangan user.
Hal ini bukan hanya menguntungkan Portage, tetapi juga anda sebagai pengguna. Kadang-kadang anda mungkin akan diminta untuk melakukan pengaturan variabel lingkungan dari keseluruhan sistem. Contohnya, kita gunakan variabel http_proxy. Daripada berpusing ria dengan /etc/profile, anda sekarang cukup membuat suatu file (/etc/env.d/99local) dan memasukkan definisi anda di dalamnya:
Daftar Kode 2.2: /etc/env.d/99local |
http_proxy="proxy.server.com:8080" |
Beberapa file yang berada di dalam /etc/env.d mendefinisikan variabel PATH. Hal ini tidak salah: ketika anda menjalankan env-update, beberapa definisi akan ditambahkan sebelum variabel lingkungan diperbarui, sehingga memudahkan paket (atau pengguna) untuk menambahkan variabel lingkungannya sendiri tanpa mempengaruhi nilai variabel yang telah ada.
Skrip env-update akan menambahkan nilai-nilai dalam urutan abjad ke dalam file /etc/env.d. Nama-nama file harus dimulai dengan dua angka desimal.
Daftar Kode 2.3: Urutan update yang digunakan oleh env-update |
00basic 99kde-env 99local +-------------+----------------+-------------+ PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin" |
Ketika Anda menjalankan env-update, skrip ini akan menciptakan semua variabel lingkungan dan menempatkannya di /etc/profile.env (yang digunakan oleh /etc/profile). Skrip ini juga akan mengambil informasi dari variabel LDPATH dan menggunakannya untuk membuat /etc/ld.so.conf. Setelah itu, skrip ini akan menjalankan ldconfig untuk membuat kembali file /etc/ld.so.cache yang digunakan oleh linker dinamis.
Jika anda ingin mendapatkan hasil env-update sesegera mungkin setelah anda menjalankan skripnya, jalankan perintah berikut untuk memperbarui lingkungan anda. Pengguna yang menginstal sendiri Gentoo-nya mungkin masih mengingatnya dari instruksi instalasi:
Daftar Kode 2.4: Memperbarui lingkungan |
# env-update && source /etc/profile
|
Catatan: Perintah di atas hanya akan memperbarui variabel di terminal yang sedang anda gunakan, konsol-konsol baru, dan turunannya. Jadi jika anda bekerja di lingkungan X11, anda perlu mengetikkan source /etc/profile di semua terminal baru yang anda buka, atau restart X agar semua terminal mengetahui variabel baru. Jika anda menggunakan sebuah login manager, jadilah user root kemudian jalankan /etc/init.d/xdm restart. Jika tidak, anda perlu logout dan login kembali agar X menerapkan semua variabel baru. |
Penting: Anda tidak boleh menggunakan variabel shell ketika menentukan variabel lain. Artinya, penggunaan FOO="$BAR" ($BAR adalah variabel lain) dilarang. |
Daftar Kode 3.1: Memperluas PATH untuk penggunaan lokal dalam ~/.bashrc |
(Titik dua yang tidak diikuti oleh nama direktori dianggap sebagai direktori kerja sekarang)
PATH="${PATH}:/home/my_user/bin:"
|
Kadang-kadang diperlukan definisi yang lebih ketat. Anda mungkin ingin dapat menggunakan binari dari direktori sementara yang anda buat tanpa menggunakan path ke binari tersebut atau mengubah ~/.bashrc untuk kebutuhan beberapa saat tersebut.
Dalam kasus ini, anda dapat mendefinisikan variabel PATH pada sesi anda sekarang ini dengan menggunakan perintah export. Selama anda tidak logout, maka variabel PATH tetap akan menggunakan setting sementara tersebut.
Daftar Kode 3.2: Mendefinisikan variabel lingkungan khusus per sesi |
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"
|
C. Bekerja dengan Portage
1. File dan Direktori
Portage memiliki sebuah konfigurasi default yang ditempatkan di /etc/make.globals. Ketika anda melihat isi file ini, anda akan mengetahui bahwa semua konfigurasi portage ditangani oleh variabel-variabel. Variabel apa yang dibaca oleh Portage dan apa arti setiap variabel akan kita diskusikan nanti.Karena banyak perintah konfigurasi yang berbeda untuk setiap arsitektur, Portage juga memiliki file-file konfigurasi default yang merupakan bagian dari profil anda. Profil yang anda gunakan ditunjukkan oleh symlink /etc/make.profile; semua konfigurasi portage diatur di file make.defaults milik profil anda dan semua profil parent. Kita akan berbicara tentang profil dan /etc/make.profile nanti.
Jika anda berencana untuk mengganti sebuah variabel konfigurasi, jangan merubah isi file /etc/make.globals atau make.defaults. Tapi ubahlah isi file /etc/make.conf yang memiliki hak lebih tinggi daripada file-file tersebut di atas. Anda juga akan menemukan file /etc/make.conf.example. Seperti namanya, file ini hanya merupakan file konfigurasi contoh - portage tidak membaca isi file ini.
Anda juga dapat mendefinisikan sebuah variabel konfigurasi Portage sebagai variabel lingkungan, tapi kami tidak menganjurkan penggunaannya.
Kita telah menemui direktori /etc/make.profile. Sebenarnya ini bukan sebuah direktori, tapi sebuah link symbolik yang menunjuk ke sebuah profil yang secara default adalah salah satu dari isi /usr/portage/profiles, walaupun anda juga dapat membuat profil anda sendiri. Profil yang ditunjuk oleh symlink ini adalah profil yang digunakan oleh sistem anda.
Sebuah profil berisi informasi spesifik arsitektur untuk Portage, seperti daftar paket yang dapat digunakan dan yang tidak dapat digunakan (di-mask) oleh sistem, dll.
Jika anda ingin merubah tingkah laku portage ketika menginstal software, anda perlu mengedit file-file di /etc/portage. Anda sangat dianjurkan untuk menggunakan file-file di /etc/portage dan tidak merubah tingkah laku portage melalui variabel lingkungan!
Di dalam /etc/portage anda dapat menciptakan file-file berikut ini:
- package.mask berisi daftar paket yang tidak pernah ingin anda instal dengan portage
- package.unmask berisi daftar paket yang ingin anda instal walaupun para pengembang Gentoo sangat tidak menyarankan anda untuk menginstalnya
- package.keywords berisi daftar paket yang ingin anda instal walaupun paket ini dianggap belum cocok dengan arsitektur anda.
- package.use berisi flag-flag USE yang ingin anda gunakan pada paket-paket tertentu tanpa menggunakannya untuk seluruh sistem
Daftar Kode 1.1: Membaca manual Portage |
$ man portage
|
Semua kegunaan ini memiliki lokasi default yang telah dikenal baik, tapi dapat anda ganti sesuai keinginan anda melalui file /etc/make.conf. Selanjutnya di bab ini, kami hanya akan menjelaskan kegunaan khusus dari setiap lokasi yang digunakan Portage dan bagaimana cara merubah penempatannya di sistem anda.
Dokumen ini tidak dibuat untuk digunakan sebagai referensi. Jika anda ingin mengetahui secara mendalam, silahkan baca manual portage dan make.conf.
Daftar Kode 1.2: Membaca manual portage dan make.conf |
$ man portage $ man make.conf |
Jika anda merubah variabel PORTDIR, anda juga mungkin ingin merubah variabel-variabel berikut ini karena perubahan pada variabel PORTDIR tidak akan mempengaruhinya. Hal ini disebabkan oleh cara Portage menangani variabel-variabel: PKGDIR, PKGDIR, DISTDIR, RPMDIR.
Walaupun secara default portage tidak menggunakan binari prebuilt, portage sangat mendukungnya. Ketika anda meminta portage untuk bekerja dengan paket prebuilt, portage akan mencarinya di /usr/portage/packages. Lokasi ini didefinisikan oleh variabel PKGDIR.
Secara default, source code diletakkan di /usr/portage/distfiles. Lokasi ini didefinisikan oleh variabel DISTDIR.
Portage menyimpan status (paket-paket apa saja yang telah terinstal, file apa milik paket mana,...) sistem anda di /var/db/pkg. Jangan merubah file-file ini karena dapat mengacaukan pengetahuan portage tentang sistem anda!
Cache portage (berisi waktu modifikasi, paket-paket virtual, informasi urutan dependensi, ...) ditempatkan di /var/cache/edb. Lokasi ini bernar-benar merupakan cache: anda dapat menghapusnya kapan saja jika anda sedang tidak melakukan kompilasi yang berhubungan dengan portage.
Secara default, file-file sementara portage diletakkan di /var/tmp. Lokasi ini didefinisikan oleh variabel PORTAGE_TMPDIR.
Jika anda merubah variabel PORTAGE_TMPDIR, anda juga mungkin perlu merubah variabel-variabel berikut ini karena perubahan pada variabel PORTAGE_TMPDIR tidak mempengaruhinya. Hal ini disebabkan oleh cara Portage menangani variabel BUILD_PREFIX.
Portage menciptakan direktori kompilasi khusus untuk setiap paket yang diinstal di dalam /var/tmp/portage. Lokasi ini didefinisikan oleh variabel BUILD_PREFIX.
Secara default, portage menginstal semua file ke filesystem yang sedang digunakan (/), tapi anda dapat merubahnya dengan variabel lingkungan ROOT. Ini berguna jika anda ingin menciptakan imej build baru.
Portage dapat menciptakan file log untuk setiap ebuild, tapi hanya jika variabel PORT_LOGDIR diatur untuk menunjuk ke sebuah lokasi yang dapat ditulis oleh portage (user portage). Secara default, variabel ini tidak ditentukan. Jika anda tidak menentukan PORT_LOGDIR, maka anda tidak akan mendapatkan log kompilasi dengan logger sistem saat ini, namun anda mungkin akan mendapatkan beberapa log dari elog baru. Jika anda tidak mendefinisikan PORT_LOGDIR dan anda menggunakan elog, anda akan mendapatkan log kompilasi dan log lain yang disimpan oleh elog, seperti yang dijelaskan di bawah ini.
Portage menyediakan kendali yang mantap atas logging dengan menggunakan elog:
- PORTAGE_ELOG_CLASSES: Di sinilah tempat anda menentukan pesan apa saja yang ingin anda log. Anda dapat menggunakan kombinasi yang dipisahkan oleh spasi dari info, warn, error, log dan qa.
- info: Me-log pesan-pesan "einfo" yang ditampilkan oleh ebuild
- warn: Me-log pesan-pesan "ewarn" yang ditampilkan oleh ebuild
- error: Me-log pesan-pesan "eerror" yang ditampilkan oleh ebuild
- log: Me-log pesan-pesan "elog" yang ada pada beberapa ebuild
- qa: Me-log pesan-pesan "QA Notice" yang ditampilkan oleh ebuild
- PORTAGE_ELOG_SYSTEM: Variabel ini menentukan modul(-modul) yang akan memproses pesan-pesan log. Jika dikosngkan, logging akan dinonaktifkan. Anda dapat menggunakan kombinasi yang dipisahkan dengan spasi dari save, custom, syslog, dan save_summary, dan mail_summary. Anda harus memilih paling tidak satu modul untuk menggunakan elog.
- save: Opsi ini akan menyimpan satu log untuk tiap paket di $PORT_LOGDIR/elog, atau /var/log/portage/elog jika $PORT_LOGDIR tidak didefinisikan.
- custom: Mengirimkan semua pesan ke perintah yang ditentukan oleh pengguna di variabel $PORTAGE_ELOG_COMMAND; hal ini akan kita diskusikan nanti.
- syslog: Mengirimkan semua pesan ke logger sistem yang terinstal.
- mail: Mengirimkan semua pesan ke mailserver yang ditentukan oleh pengguna di variabel $PORTAGE_ELOG_MAILURI; hal ini akan kita diskusikan nanti. Fitur-fitur mail elog membutuhkan >=portage-2.1.1.
- save_summary: Mirip dengan save, tetapi semua pesan akan digabungkan di $PORT_LOGDIR/elog/summary.log, atau /var/log/portage/elog/summary.log jika $PORT_LOGDIR tidak ditetapkan.
- mail_summary: Mirip dengan mail, tetapi semua pesan akan digabungkan dalam satu e-mail ketika emerge selesai.
- PORTAGE_ELOG_COMMAND: Variabel ini hanya digunakan ketika modul custom digunakan. Di sinilah tempat anda untuk menentukan perintah yang akan memproses pesan-pesan elog. Catat bahwa anda boleh menggunakan dua variabel: ${PACKAGE} adalah nama dan versi paket, sedangkan ${LOGFILE} adalah path absolut ke logfile. Berikut ini adalah contohnya:
- PORTAGE_ELOG_COMMAND="/path/to/logger -p '\${PACKAGE}' -f '\${LOGFILE}'"
- PORTAGE_ELOG_MAILURI: Variabel ini berisi pengaturan untuk modul mail seperti alamat, user, password, mailserver, dan nomor port. Aturan defaultnya adalah "root@localhost localhost".
- Berikut ini adalah contoh untuk server smtp yang membutuhkan username dan otentikasi berbasis password pada sebuah port tertentu (defaultnya adalah port 25):
- PORTAGE_ELOG_MAILURI="user@some.domain username:password@smtp.some.domain:995"
- PORTAGE_ELOG_MAILFROM: Untuk mengatur alamat "from" di mail log; defaultnya adalah "portage" jika tidak diset.
- PORTAGE_ELOG_MAILSUBJECT: Untuk menciptakan baris subject di mail log. Anda dapat menggunakan dua variabel: ${PACKAGE} akan menampilkan nama dan versi paket, sedangkan ${HOST} merupakan nama domain yang terkualifikasi dari host tempat Portage dijalankan.
- Berikut ini adalah contoh penggunaannya:
- PORTAGE_ELOG_MAILSUBJECT="paket \${PACKAGE} telah sukes diinstal di \${HOST} dengan beberapa pesan"
Penting: Jika anda telah menggunakan enotice dengan Portage-2.0.*, anda harus benar-benar membuang enotice karena tidak kompatibel dengan elog. |
2. Konfigurasi dengan Variabel
Sebagaimana yang telah dijelaskan sebelumnya, Portage sangat dapat dikonfigurasi dengan berbagai macam variable yang harus didefinisikan di file /etc/make.conf. Silakan baca manual make.conf untuk informasi yang lebih lengkap.Daftar Kode 1.1: Membaca manual make.conf |
$ man make.conf
|
- CFLAGS & CXXFLAGS mendefinisikan flag-flag compiler untuk kompilasi C and C++
- CHOST mendefinisikan informasi host tempat kompilasi untuk skrip configure aplikasi
- MAKEOPTS dibawa ke perintah make dan biasanya digunakan untuk menentukan jumlah parallelism yang digunakan selama kompilasi. Info lebih lanjut tentang opsi-opsi make dapat anda baca di halaman manual make
Ketika Portage telah selesai melakukan merge versi terbaru dari sebuah software, Portage akan menghapus file-file usang milik versi lama dari sistem anda. Portage akan memberikan watu 5 detik kepada user sebelum melakukan unmerge versi lama. Waktu 5 detik ini didefinisikan di variabel CLEAN_DELAY.
Anda dapat memerintahkan emerge untuk menggunakan beberapa opsi tertentu ketika dijalankan dengan menggunakan variabel EMERGE_DEFAULT_OPTS. Beberapa opsi yang mungkin berguna adalah --ask, --verbose, --tree, dll.
Portage akan menimpa file-file dengan file dari versi baru sebuah software jika file-file tersebut tidak ditempatkan di lokasi yang dilindungi. Lokasi yang dilindungi ini didefinisikan oleh variabel CONFIG_PROTECT dan biasanya merupakan lokasi file-file konfigurasi. Urutan direktori dipisahkan oleh spasi.
Portage akan merubah nama sebuah file yang akan ditimpa dari lokasi ini lalu memberikan peringatan kepada user tentang keberadaan file (yang kemungkinan merupakan) konfigurasi yang lebih baru.
Anda dapat mengetahui pengaturan CONFIG_PROTECT saat ini dari output perintah emerge --info:
Daftar Kode 3.1: Melihat pengaturan CONFIG_PROTECT |
$ emerge --info | grep 'CONFIG_PROTECT='
|
Daftar Kode 3.2: Info lebih lanjut tentang perlindungan file konfigurasi |
$ man emerge
|
Ketika data atau informasi yang diminta tidak tersedia di sistem anda, Portage akan mengambilnya dari internet. Lokasi server untuk berbagai macam data dan informasi didefinisikan di variabel-variabel berikut ini:
- GENTOO_MIRRORS mendefinisikan daftar lokasi server yang menyimpan source code (distfiles)
- PORTAGE_BINHOST mendefinisikan sebuah server khusus yang menyimpan paket-paket prebuilt untuk sistem anda
- SYNC mendefinisikan sebuah server khusus yang akan digunakan Portage untuk mendapatkan pohon Portage.
Daftar Kode 4.1: Informasi lebih lanjut tentang mirrorselect |
# mirrorselect --help
|
Ketika portage perlu mendownload source code, secara default wget akan digunakan. Anda dapat menggantinya dengan variabel FETCHCOMMAND.
Portage dapat melanjutkan proses download source code yang terputus. Secara default, wget digunakan untuk ini, tapi anda dapat menggantinya dengan variabel RESUMECOMMAND.
Pastikan agar variabel FETCHCOMMAND dan RESUMECOMMAND anda menempatkan source code di lokasi yang benar. Di dalam variabel ini, anda harus menggunakan \${URI} dan \${DISTDIR} untuk menunjuk ke lokasi source code dan lokasi distfiles secara berurutan.
Anda juga dapat mendifinisikan opsi-opsi khusus untuk protokol tertentu dengan variabel FETCHCOMMAND_HTTP, FETCHCOMMAND_FTP, RESUMECOMMAND_HTTP, RESUMECOMMAND_FTP, dll.
Anda tidak dapat merubah perintah rsync yang digunakan Portage untuk memperbarui pohon Portage, tapi anda dapat mengatur beberapa variabel yang berhubungan dengan perintah rsync:
- PORTAGE_RSYNC_OPTS mendefinisikan nilai variabel default yang digunakan ketika rsync dijalankan, dipisahkan dengan koma. Variabel ini sebaiknya tidak anda ganti kecuali anda benar-benar mengerti dengan apa yang sedang anda lakukan. Catat bahwa beberapa opsi yang benar-benar diperlukan akan selalu digunakan walaupun variabel PORTAGE_RSYNC_OPTS kosong.
- PORTAGE_RSYNC_EXTRA_OPTS dapat digunakan untuk opsi-opsi tambahan ketika melakukan sync. Semua opsi dipisahkan dengan spasi.
- --timeout=<number>: opsi ini mendefinisikan jumlah detik yang boleh digunakan oleh koneksi rsync untuk idle sebelum rsync menganggap koneksi telah time-out. Default variabel ini adalah 180, tetapi, pengguna dialup atau pengguna komputer lambat boleh mengaturnya ke 300 atau yang lebih tinggi.
- --exclude-from=/etc/portage/rsync_excludes: Opsi ini menunjuk ke sebuah file yang berisi daftar paket dan/atau kategori yang harus diabaikan oleh proses update. Di sini, opsi ini menunjuk ke /etc/portage/rsync_excludes. Silakan baca Menggunakan Subset Pohon Portage untuk mengetahui sintaks yang digunakan oleh file ini.
- --quiet: Mengurangi output di layar
- --verbose: Menampilkan sebuah daftar file lengkap
- --progress: Menampilkan ukuran progres untuk setiap file
- PORTAGE_RSYNC_RETRIES menentukan berapa kali rsync harus mencoba kembali untuk melakukan koneksi ke mirror yang ditunjuk oleh variable SYNC sebelum menyerah. Default variabel ini adalah 3.
Anda dapat mengganti cabang default dengan menggunakan variabel ACCEPT_KEYWORDS. Defaultnya adalah cabang stabil untuk arsitektur anda. Informasi lebih lanjut tentang cabang-cabang software Gentoo dapat anda temukan pada bab selanjutnya.
Anda dapat mengaktifkan beberapa fitur portage dengan variabel FEATURES. Fitur-fitur Portage telah kita diskusikan pada bab-bab sebelumnya, seperti Fitur-fitur portage.
Dengan variabel PORTAGE_NICENESS, anda dapat mengurangi nilai "nice" yang digunakan portage. Nilai PORTAGE_NICENESS akan ditambahkan ke nilai nice saat ini.
Untuk info lebih lanjut tentang nilai nice, baca halaman manual nice:
Daftar Kode 6.1: Info lebih lanjut tentang nice |
$ man nice
|
3. Mencampur Cabang-cabang Software
Variabel ACCEPT_KEYWORDS mendefinisikan cabang software apa yang anda gunakan di sistem anda. Defaultnya adalah cabang stabil untuk arsitektur anda, sebagai contoh x86.Kami anjurkan anda untuk hanya menggunakan cabang stabil. Bagaimanapun juga, jika anda tidak terlalu peduli dengan stabilitas dan anda ingin membantu Gentoo dengan cara melaporkan bug ke http://bugs.gentoo.org, silakan baca terus.
Jika anda ingin menggunakan software yang lebih baru, anda boleh mempertimbangkan untuk menggunakan cabang percobaan. Agar Portage menggunakan cabang ini, tambahkan tanda ~ di depan arsitektur anda.
Cabang percobaan benar-benar merupakan cabang yang berarti nama itu - Percobaan. Jika sebuah paket masih dalam masa percobaan, berarti para pengembang merasa bahwa paket ini telah berfungsi tapi belum dicoba secara seksama. Anda boleh menjadi orang pertama yang menemukan bug pada paket ini dan dapat membuat laporan bug agar para pengembang mengetahuinya.
Tetapi waspadalah, anda mungkin akan mendapatkan masalah stabilitas, penanganan paket yang tidak sempurna (mis. ketergantungan yang keliru/tidak tersedia), terlalu sering update (yang mengakibatkan seringnya kompilasi) atau paket rusak. Jika anda tidak tahu cara kerja Gentoo dan cara memecahkan masalah, kami anjurkan anda untuk tetap menggunakan cabang stabil.
Sebagai contoh, untuk memilih cabang percobaan arsitektur x86, edit /etc/make.conf:
Daftar Kode 1.1: Pengaturan variabel ACCEPT_KEYWORDS |
ACCEPT_KEYWORDS="~x86" |
Anda dapat meminta Portage untuk mengizinkan cabang percobaan bagi paket-paket tertentu namun tetap menggunakan cabang stabil untuk paket lainnya. Untuk ini, tambahkan kategori dan nama paket yang ingin anda gunakan dari cabang percobaan di dalam file /etc/portage/package.keywords. Anda juga dapat menciptakan sebuah direktori (dengan nama yang sama) dan menulis sebuah file yang berisi daftar nama-nama paket di dalam direktori tersebut. Sebagai contoh, untuk menggunakan gnumeric dari cabang percobaan:
Daftar Kode 2.1: Pengaturan /etc/portage/package.keywords untuk gnumeric, baris penuh |
app-office/gnumeric ~x86 |
Pada kasus manapun, jika anda menambahkan informasi versi, anda harus menggunakan sebuah operator. Jika anda tidak memasukkan nomor versi, anda tidak boleh menggunakan operator.
Pada contoh berikut ini, kita akan meminta Portage untuk mengizinkan gnumeric-1.2.13:
Daftar Kode 2.2: Mengizinkan sebuah versi percobaan tertentu dari gnumeric |
=app-office/gnumeric-1.2.13 ~x86 |
Ketika sebuah paket disembunyikan oleh para pengembang Gentoo dan anda masih ingin menggunakannnya dengan tidak mempedulikan semua alasan yang disebutkan di file package.mask (secara default ditempatkan oleh /usr/portage/profiles), tambahkan baris yang sama persis di lokasi file /etc/portage/package.unmask atau file yang berada di dalam direktori tersebut.
Sebagai contoh, jika =net-mail/hotwayd-0.8 disembuyikan, anda dapat menginstalnya dengan menambahakan baris yang sama di lokasi package.unmask:
Daftar Kode 3.1: /etc/portage/package.unmask |
=net-mail/hotwayd-0.8 |
Sebagai contoh, jika anda tidak ingin Portage untuk menginstal source kernel yang lebih baru dari gentoo-sources-2.6.8.1, tambahkan baris berikut ini ke lokasi package.mask:
Daftar Kode 3.2: Contoh /etc/portage/package.mask |
>sys-kernel/gentoo-sources-2.6.8.1 |
4. Utilitas Tambahan Portage
dispatch-conf adalah utilitas yang dapat anda gunakan untuk menggabungkan file-file ._cfg0000_<name>. File-file seperti ini adalah file yang diciptakan oleh Portage ketika Portage ingin menimpa sebuah file di dalam direktori yang tercantum padan variabel CONFIG_PROTECT.Dengan dispatch-conf, anda dapat menggabungkan file konfigurasi baru sambil mengetahui semua perubahan yang terjadi. dispatch-conf menyimpan perbedaan dari file-file konfigurasi sebagai tambalan atau dengan mengguanakan sistem revisi RCS. Artinya, jika anda melakukan kesalahan ketika melakukan pembaruan file konfigurasi, anda dapat membatalkan perubahan yang telah anda lakukan dengan menggunakan versi terdahulu dari file konfigurasi kapanpun anda ingin.
Ketika menggunakan dispatch-conf, anda dapat memerintahkannya untuk membiarkan file konfigurasi apa adanya, menggunakan file konfigurasi baru, menyunting file konfigurasi lama, atau menggabungkan perbedaan antara file baru dan lama secara interaktif. dispatch-conf juga memiliki beberapa fitur lain:
- Menggabungkan file konfigurasi secara otomatis jika update hanya berisi komentar tambahan
- Menggabungkan file konfigurasi secara otomatis jika update hanya berisi tambahan spasi
Daftar Kode 1.1: Menjalankan dispatch-conf |
# dispatch-conf
|
Untuk mendapatkan informasi lebih rinci, bacalah manual dispatch-conf. Manual ini berisi cara menggabungkan file konfigurasi lama dan baru secara interaktif, cara menyunting file konfigurasi, cara mengetahui perbedaan anatara kedua file, dan masih banyak lagi.
Daftar Kode 1.2: Membaca manual dispatch-conf |
$ man dispatch-conf
|
Tidak seperti dispatch-conf, etc-update tidak menyimpan file konfigurasi lama setelah anda melakukan pembaruan. Untuk itu berhati-hatilah!
Daftar Kode 2.1: Menjalankan etc-update |
# etc-update
|
Daftar Kode 2.2: Opsi-opsi etc-update |
Please select a file to edit by entering the corresponding number. (-1 to exit) (-3 to auto merge all remaining files) (-5 to auto-merge AND not use 'mv -i'): |
Sebagai contoh, kita memilih file konfigurasi /etc/pear.conf:
Daftar Kode 2.3: Memperbarui file konfigurasi |
Beginning of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
[...]
End of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
1) Replace original with update
2) Delete update, keeping original as is
3) Interactively merge original with update
4) Show differences again
|
Tidak ada gunanya merincikan seluruh proses penggabungan interaktif di sini. Untuk alasan kelengkapan, kami akan memberikan daftar perintah yang bisa anda gunakan ketika anda menggabungkan dua file secara interaktif. Anda akan disambut dengan dua baris (baris asli, dan baris dari file baru) dan sebuah prompt tempat anda memasukkan salah satu dari perintah berikut ini:
Daftar Kode 2.4: Perintah-perintah yang tersedia untuk penggabungan interaktif |
ed: Edit then use both versions, each decorated with a header. eb: Edit then use both versions. el: Edit then use the left version. er: Edit then use the right version. e: Edit a new version. l: Use the left version. r: Use the right version. s: Silently include common lines. v: Verbosely include common lines. q: Quit. |
Dengan quickpkg, anda dapat membuat arsip dari paket yang telah terinstal di sistem anda. Arsip-arsip ini bisa digunakan sebagai paket prebuilt. Menjalankan quickpkg sangat mudah, tambahkan saja nama paket yang ingin anda arsipkan:
Sebagai contoh, untuk mengarsipkan curl, arts dan procps:
Daftar Kode 3.1: Contoh penggunaan quickpkg |
# quickpkg curl arts procps
|
5. Beralih dari Pohon Portage Resmi
Anda boleh memperbarui beberapa categori/paket secara selektif dan membiarkan kategori/paket lainnya. Kita lakukan ini dengan cara melarang rsync untuk memperbarui kategori/paket tersebut ketika emerge --sync dijalankan.Anda perlu mendefinisikan nama file yang berisi pengecualian di variabel --exclude-from pada file /etc/make.conf anda.
Daftar Kode 1.1: Mendefinisikan file pengecualian di /etc/make.conf |
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes" |
Daftar Kode 1.2: Mengecualikan semua game di /etc/portage/rsync_excludes |
games-*/* |
Anda dapat meminta Portage untuk menggunakan ebuild yang tidak tersedia secara resmi di pohon Portage. Ciptakan sebuah direktori (mis. /usr/local/portage) sebagai tempat anda menyimpan ebuild dari pihak ketiga. Gunakan struktur direktori yang sama seperti pohon Portage resmi!
Kemudian definisikan PORTDIR_OVERLAY di /etc/make.conf agar menunjuk ke direktori tadi. Ebuild-ebuild ini akan dimasukkan ke akun portage ketika anda menggunakannya, dan tidak akan dihapus ketika anda melakukan emerge --sync.
Untuk pengguna yang memiliki beberapa overlay, atau ingin mencoba paket yang belum masuk ke pohon portage resmi, atau mungkin hanya ingin menggunakan ebuild tidak resmi dari berbagai sumber, paket app-portage/gentoolkit-dev dapat menyediakan perintah gensync untuk anda, sebuah tool yang dapat membantu anda menjaga gudang (repositori) overlay agar tetap up-to-date.
Dengan gensync anda dapat memperbarui semua repositori anda sekaligus, atau hanya memilih sebagian saja. Setiap repositori harus memiliki sebuah file .syncsource di dalam direktori konfigurasi /etc/gensync/ yang berisi lokasi repositori, nama, ID, dll.
Anggaplah anda ingin menggunakan dua repositori tambahan yang bernama java (untuk ebuild-ebuild java yang sedang dikembangkan) dan entapps (untuk aplikasi yang dikembangkan oleh perusahaan anda). Anda dapat memperbarui kedua repositori ini dengan perintah berikut:
Daftar Kode 2.1: Menggunakan gensync untuk memperbarui beberapa repositori |
# gensync java entapps
|
Sebagai contoh, jika anda ingin memberitahukan portage tentang gentoo-sources-2.6.11.6 yang telah anda instal sendiri, tambahkan baris berikut ini ke file /etc/portage/profile/package.provided:
Daftar Kode 3.1: Baris contoh untuk package.provided |
sys-kernel/gentoo-sources-2.6.11.6 |
D. Konfigurasi Jaringan Gentoo
1. Siap Memulai
Catatan: Dokumen ini menganggap anda telah mengkonfigurasi kernel beserta modul-modulnya untuk hardware anda dan anda mengetahui nama antarmuka jaringan anda. Kami juga menganggap anda ingin mengkonfigurasi eth0, tetapi bisa juga eth1, wlan0, dll. |
Catatan: Dokumen ini mengharuskan anda untuk menggunakan baselayout-1.11.11 atau yang lebih baru. |
Daftar Kode 1.1: Menciptakan symlink net.eth0 ke net.lo |
# cd /etc/init.d # ln -s net.lo net.eth0 |
Daftar Kode 1.2: Contoh-contoh untuk /etc/conf.d/net |
# Untuk DHCP config_eth0=( "dhcp" ) # Untuk IP statis menggunakan notasi CIDR config_eth0=( "192.168.0.7/24" ) routes_eth0=( "default gw 192.168.0.1" ) # Untuk IP statis menggunakan notasi netmask config_eth0=( "192.168.0.7 netmask 255.255.255.0" ) routes_eth0=( "default gw 192.168.0.1" ) |
Catatan: Jika anda tidak menentukan konfigurasi untuk antarmuka jaringan anda, maka DHCP akan digunakan. |
Catatan: CIDR adalah singkatan dari Classless InterDomain Routing. Pada awalnya, alamat IPv4 diklasifikasikan sebagai A, B, atau C. Sistem klasifikasi terdahulu tidak mempertimbangkan popularitas Internet, dan sedang dalam bahaya besar karena hampir kehabisan alamat unik baru. CIDR merupakan skema pengalamatan yang mengizinkan satu alamat IP untuk dipecah menjadi banyak alamat IP. Alamat IP CIDR terlihat seperti alamat IP biasa kecuali berakhir dengan sebuah garis miring yang diikuti dengan nomor; misalnya 192.168.0.0/16. CIDR dijelaskan di RFC 1519. |
Daftar Kode 1.3: Memulai dan menghentikan skrip-skrip jaringan |
# /etc/init.d/net.eth0 start # /etc/init.d/net.eth0 stop |
Penting: Ketika menghadapi permasalahan jaringan, anda sebaiknya menetapkan RC_VERBOSE="yes" di /etc/conf.d/rc agar bisa mendapatkan informasi lebih rinci tentang apa yang terjadi. |
Daftar Kode 1.4: Konfigurasi antarmuka jaringan agar dimuat ketika boot |
# rc-update add net.eth0 default # rc |
2. Konfigurasi Advanced
Variabel config_eth0 merupakan jantung dari konfigurasi antarmuka jaringan. Variabel ini merupakan instruksi level tinggi untuk mengkonfigurasi antarmuka jaringan (eth0 pada contoh ini). Setiap perintah di daftar instruksi akan dijalankan secara berurutan. Antarmuka akan dianggap OK jika paling tidak salah satu perintah berhasil dijalankan.Berikut ini merupakan daftar instruksi built-in.
Perintah | Penjelasan |
null | Tidak melakukan apa-apa |
noop | Jika antarmuka telah menyala dan telah memiliki alamat, maka batalkan konfigurasi dengan sukses |
sebuah alamat IPv4 atau IPv6 | Menambahkan alamat ke antarmuka |
dhcp, adsl atau apipa (atau sebuah perintah khusus dari modul pihak ketiga) | Jalankan modul yang menyediakan perintah. Misalnya dhcp akan menjalankan modul yang menyediakan DHCP, bisa berupa dhcpcd, udhcpc, dhclient atau pump. |
Anda dapat merangkai perintah-perintah ini bersamaan. berikut ini adalah beberapa contoh nyata.
Daftar Kode 1.1: Contoh-contoh konfigurasi |
# Menambahkan tiga alamat IPv4 config_eth0=( "192.168.0.2/24" "192.168.0.3/24" "192.168.0.4/24" ) # Menambahkan satu alamat IPv4 dan dua alamat IPv6 config_eth0=( "192.168.0.2/24" "4321:0:1:2:3:4:567:89ab" "4321:0:1:2:3:4:567:89ac" ) # Tetap menggunakan alamat dari kernel, kecuali antarmuka kemudian # mati, maka berikan alamat lain melalui DHCP. Jika DHCP gagal, maka # tambahkan sebuah alamat tetap dari APIPA config_eth0=( "noop" "dhcp" ) fallback_eth0=( "null" "apipa" ) |
Catatan: Ketika menggunakan modul ifconfig dan menambahkan lebih dari satu alamat, alias-alias antarmuka diciptakan untuk setiap alamat tambahan. Jadi dengan dua contoh di atas, anda akan mendapatkan antarmuka eth0, eth0:1 dan eth0:2. Anda tidak dapat melakukan hal-hal khusus dengan antarmuka ini karena kernel dan program lain hanya akan menganggap eth0:1 dan eth0:2 sebagai eth0. |
Penting: Urutan fallback sangatlah penting! Jika kita tidak menentukan opsi null maka perintah apipa hanya akan dijalankan jika perintah noop gagal. |
Nilai | Penjelasan |
none | Servis net selalu dianggap menyala |
no | Opsi ini pada dasarnya berarti bahwa paling tidak salah satu dari servis net.* selain net.lo harus menyala. Ini dapat digunakan oleh pengguna laptop yang memiliki satu WIFI dan satu NIC statis, dan hanya ingin menyalakan salah satu saja pada setiap waktu agar servis net dianggap telah menyala. |
lo | Opsi ini sama dengan opsi no, tetapi net.lo juga dihitung. Ini berguna bagi anda yang tidak peduli tentang antarmuka mana yang harus dinyalakan ketika boot. |
yes | Untuk opsi ini, SEMUA antarmuka jaringan HARUS dinyalakan agar servis net dianggap menyala. |
Jawabannya adalah dengan membuat sendiri fungsi depend() anda di /etc/conf.d/net.
Daftar Kode 2.1: Dependensi net.br0 di /etc/conf.d/net |
# Anda boleh menggunakan dependensi apapun (use, after, before)
# seperti tertera di skrip-skrip yang telah ada
depend_br0() {
need net.eth0 net.eth1
}
|
Nama-nama variabel selalu dinamis. Biasanya nama-nama ini mengikuti struktur variable_${interface|mac|essid|apmac}. Misalnya, variabel dhcpcd_eth0 berisi opsi-opsi dhcpcd untuk eth0 dan dhcpcd_essid berisi nilai untuk opsi-opsi dhcpcd ketika salah satu antarmuka melakukan koneksi ke "essid" ESSID.
Bagaimanapun juga, tidak ada aturan baku yang menyatakan nama-nama antarmuka haruslah ethx. Malahan, banyak antarmuka nirkabel yang memiliki nama seperti wlanx, rax, dan ethx. Juga, beberapa antarmuka yang dapat didefinisikan oleh pengguna seperti bridge dapat dinamakan apa saja, seperti foo. Agar lebih menarik, Access Point nirkabel boleh diberi nama yang berisi karakter bukan alpha-numeric - ini penting karena anda dapat mengkonfigurasi parameter jaringan per ESSID.
Kelemahan dari semua ini adalah, Gentoo menggunakan variabel bash untuk jaringan - dan bash tidak dapat menggunakan karakter apapun di luar alpha-numeric Inggris. Untuk menyiasati keterbatasan ini, kita akan mengganti semua karakter yang bukan alpha-numeric Inggris menjadi karakter _.
Kelemahan lain dari bash ialah isi dari variabel - beberapa karakter harus di-escape. Hal ini bisa kita dapatkan dengan menempatkan karakter \ di depan karakter yang perlu di-escape. Berikut ini merupakan karakter yang perlu di-escape dengan cara tersebut di atas: ", ' dan \.
Pada contoh berikut ini kita menggunakan ESSID nirkabel karena ESSID ini dapat menggunakan karakter terbanyak. Kita akan menggunakan ESSID My "\ NET:
Daftar Kode 3.1: Contoh nama variabel |
(# Ini bisa, tetapi domain-nya salah) dns_domain_My____NET="My \"\\ NET" (# Variabel di atas menetapkan domain dns ke My "\ NET ketika sebuah # kartu wireless terhubung ke sebuah AP yang ESSID-nya adalah My "\ NET) |
3. Jaringan Modular
Kami sekarang mendukung skrip-skrip jaringan modular, yang berarti kita dapat menambahkan dukungan untuk jenis antarmuka baru dan konfigurasi modul sambil menjaga kompatibilitas dengan antarmuka yang telah ada.Modul-modul akan langsung dimuat jika paket yang dibutuhkan telah terinstal. Jika di sini anda menentukan sebuah modul yang tidak memiliki paket yang dibutuhkan, maka anda akan mendapatkan pesan error yang memberitahukan paket apa yang perlu anda instal. Idealnya, anda hanya perlu menggunakan pengaturan modul jika anda telah menginstal dua paket atau lebih yang menyediakan servis yang sama dan anda mengutamakan salah satu dari yang lainnya.
Catatan: Semua pengaturan yang kita bicarakan di sini tersimpan di /etc/conf.d/net, kecuali ditentukan di tempat lain. |
Daftar Kode 1.1: Urutan modul |
# Mendahulukan iproute2 daripada ifconfig modules=( "iproute2" ) # Anda juga dapat menentukan modul lain untuk sebuah antarmuka. # Pada kasus ini kita mendahulukan udhcpc daripada dhcpcd modules_eth0=( "udhcpc" ) # Anda juga dapat menentukan modul apa yang tidak ingin anda # gunakan - misalnya anda boleh menggunakan sebuah permohonan atau linux-wlan-ng # untuk mengendalikan konfigurasi wireless tetapi anda masih ingin mengatur # jaringan per ESSID yang terasosiasi dengannya. modules=( "!iwconfig" ) |
ifconfig merupakan default Gentoo saat ini dan diikutsertakan pada profil sistem. iproute2 merupakan sebuah palet yang lebih powerful dan fleksibel, tetapi tidak diikutsertakan secara default.
Daftar Kode 2.1: Instalasi iproute2 |
# emerge sys-apps/iproute2 # Untuk mendahulukan iproute2 dari ifconfig jika keduanya terinstal modules=( "iproute2" ) |
Daftar Kode 2.2: Contoh-contoh ifconfig dan iproute2 |
config_eth0=( "192.168.0.2/24" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0" )
# Kita juga dapat menentukan broadcast
config_eth0=( "192.168.0.2/24 brd 192.168.0.255" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" )
|
DHCP bisa didapatkan dari dhclient, dhcpcd, pump atau udhcpc. Setiap modul DHCP memiliki kelebihan dan kekurangannya masing-masing - berikut ini adalah daftar singkatnya.
Modul DHCP | Paket | Kelebihan | Kekurangan |
dhclient | net-misc/dhcp | Diciptakan oleh ISC, yang membuat software BIND DNS. Sangat fleksibel | Konfigurasinya terlalu rumit, software-nya agak besar, tidak bisa mendapatkan server NTP dari DHCP, tidak mengirimkan nama host secara default |
dhcpcd | net-misc/dhcpcd | Default Gentoo sejak lama, tidak bergantung pada utilitas lain, masih terus dikembangkan oleh Gentoo | Terkadang lambat, tidak berjalan di belakang ketika lease infinit |
pump | net-misc/pump | Ringan, tidak bergantung pada utilitas lain | Tidak lagi diurus oleh pembuatnya, kurang stabil, terutama untuk modem, tidak bisa mendapatkan server NIS dari DHCP |
udhcpc | net-misc/udhcp | Ringan - klien DHCP terkecil, diciptakan untuk embedded system | Kurang teruji - tidak ada distro yang menggunakannya secara default, tidak dapat menentukan timeout di atas 3 detik |
Untuk mengirimkan opsi-opsi tertentu ke modul DHCP, gunakan modul_eth0="..." (gantikan modul dengan modul DHCP yang anda gunakan - mis. dhcpcd_eth0).
Kita akan mencoba DHCP dan menjadikannya sedikit agnostik - kami mendukung perintah-perintah berikut dengan menggunakan variabel dhcp_eth0. Defaultnya tidak di-set:
- release - melepas alamat IP untuk digunakan lagi
- nodns - jangan menimpa /etc/resolv.conf
- nontp - jangan menimpa /etc/ntp.conf
- nonis - jangan menimpa /etc/yp.conf
Daftar Kode 3.1: Contoh konfigurasi DHCP di /etc/conf.d/net |
# Hanya diperlukan jika anda memiliki lebih dari satu modul DHCP modules=( "dhcpcd" ) config_eth0=( "dhcp" ) dhcpcd_eth0="-t 10" # Timeout setelah 10 detik dhcp_eth0="release nodns nontp nonis" # Dapatkan hanya satu alamat |
Catatan: dhcpcd, udhcpc dan pump mengirimkan nama host saat ini ke server DHCP secara default, jadi anda tidak perlu menentukannya lagi. |
Daftar Kode 4.1: Instalasi paket ppp |
# emerge net-dialup/ppp
|
Catatan: Jika anda membutuhkan PPPoA, maka anda harus menggunakan >=baselayout-1.12.x. |
Daftar Kode 4.2: Menciptakan skrip net dan PPP |
# ln -s /etc/init.d/net.lo /etc/init.d/net.ppp0 # ln -s /etc/init.d/net.lo /etc/init.d/net.eth0 |
Sekarang kita perlu mengkonfigurasi /etc/conf.d/net.
Daftar Kode 4.3: Pengaturan dasar PPPoE |
config_eth0=( null ) (Menentukan antarmuka ethernet) config_ppp0=( "ppp" ) link_ppp0="eth0" (Menentukan antarmuka ethernet) plugins_ppp0=( "pppoe" ) username_ppp0='user' password_ppp0='password' pppd_ppp0=( "noauth" "defaultroute" "usepeerdns" "holdoff 3" "child-timeout 60" "lcp-echo-interval 15" "lcp-echo-failure 3" noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp ) depend_ppp0() { need net.eth0 } |
Daftar Kode 4.4: Contoh /etc/ppp/pap-secrets |
# Tanda * penting
"username" * "password"
|
Penting: Bacalah seksi ADSL dan PPP di /etc/conf.d/net.example. File ini berisi penjelasan mendalam tentang semua pengaturan PPP yang kemungkinan besar anda perlukan |
Ini hanya berguna untuk LAN yang tidak memiliki server DHCP dan anda tidak melakukan koneksi langsung ke internet dan ke semua komputer lain yang menggunakan APIPA.
Untuk dukungan APIPA, emerge net-misc/iputils atau net-analyzer/arping.
Daftar Kode 5.1: Konfigurasi APIPA di /etc/conf.d/net |
# Gunakan DHCP dulu - jika gagal maka gunakan APIPA config_eth0=( "dhcp" ) fallback_eth0=( "apipa" ) # Gunakan APIPA saja config_eth0=( "apipa" ) |
Bonding digunakan untuk meningkatkan bandwidth jaringan, jika anda memiliki dua kartu jaringan yang digunakan pada jaringan yang sama, anda dapat mem-bond keduanya agar aplikasi anda menganggapnya sebagai satu kartu jaringan tetapi kedua-duanya benar-benar digunakan.
Daftar Kode 6.1: Konfigurasi bonding di /etc/conf.d/net |
# Untuk mem-bond beberapa antarmuka slaves_bond0="eth0 eth1 eth2" # Anda mungkin tidak ingin menentukan sebuah IP pada antarmuka # yang di-bond config_bond0=( "null" ) # Dependensi pada eth0, eth1 dan eth2 karena masing-masing mungkin # memerlukan konfigurasi tambahan depend_bond0() { need net.eth0 net.eth1 net.eth2 } |
Bridging digunakan untuk menggabungkan dua jaringan. Sebagai contoh, anda mungkin memiliki sebuah server yang terhubung ke internet melalui modem ADSL dan sebuah kartu akses wireless agar komputer lain dapat terhubung ke internet melalui modem ADSL tersebut. Anda dapat menciptakan sebuah jembatan (bridge) untuk menghubungkan kedua antarmuka tersebut.
Daftar Kode 7.1: Konfigurasi bridge di /etc/conf.d/net |
# Konfigurasi bridge - baca "man brctl" brctl_br0=( "setfd 0" "sethello 0" "stp off" ) # Untuk menambahkan port ke bridge br0 bridge_br0="eth0 eth1" # Anda perlu mengkonfigurasi port ke nilai null agar dhcp # tidak dinyalakan config_eth0=( "null" ) config_eth1=( "null" ) # Terakhir berikan alamat pada bridge - anda juga dapat # menggunakan DHCP config_br0=( "192.168.0.1/24" ) # Dependensi pada eth0 dan eth1 karena masing-masing mungkin # memerlukan konfigurasi tambahan depend_br0() { need net.eth0 net.eth1 } |
Penting: Untuk penggunaan lebih dari satu pengaturan bridge, anda mungkin perlu membaca dokumentasi Nama Variabel. |
Daftar Kode 8.1: Contoh penggantian alamat MAC |
# Untuk mengatur alamat MAC antarmuka mac_eth0="00:11:22:33:44:55" # Untuk mengacak hanya 3 bytes terakhir mac_eth0="random-ending" # Untuk mengacak di antara tipe koneksi fisik yang sama (mis. fibre, # copper, wireless), semua vendor mac_eth0="random-samekind" # Untuk mengacak tipe koneksi fisik apapun (mis. fibre, # copper, wireless), semua vendor mac_eth0="random-anykind" # Acak penuh - PERINGATAN: beberapa alamat MAC yang diciptakan mungkin # TIDAK berfungsi dengan benar mac_eth0="random-full" |
Daftar Kode 9.1: Konfigurasi tunnelling di /etc/conf.d/net |
# Untuk tunnel GRE iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255" # Untuk tunnel IPIP iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255" # Untuk mengkonfigurasi antarmuka config_vpn0=( "192.168.0.2 peer 192.168.1.1" ) |
Virtual LAN merupakan grup perangkat jaringan yang bertingkah seakan-akan mereka terhubung ke satu segmen jaringan - walaupun mungkin tidak. Anggota VLAN hanya dapat melihat anggota lain pada VLAN yang sama yang dibagi pada jaringan fisik yang sama.
Daftar Kode 10.1: Konfigurasi VLAN di /etc/conf.d/net |
# Menentukan jumlah VLAN untuk antarmuka # Pastikan ID VLAN anda TIDAK terlapis nol vlans_eth0="1 2" # Anda juga dapat mengkonfigurasi VLAN # bacalah manual vconfig vconfig_eth0=( "set_name_type VLAN_PLUS_VID_NO_PAD" ) vconfig_vlan1=( "set_flag 1" "set_egress_map 2 6" ) # Konfigurasi antarmuka seperti biasa config_vlan1=( "172.16.3.1 netmask 255.255.254.0" ) config_vlan2=( "172.16.2.1 netmask 255.255.254.0" ) |
Penting: Untuk penggunaan lebih dari satu pengaturan VLAN, anda mungkin perlu membaca dokumentasi Nama Variabel. |
4. Jaringan Nirkabel
Untuk saat ini kami mendukung pengaturan wireless dengan wireless-tools atau wpa_supplicant. Hal yang perlu diingat adalah anda melakukan konfigurasi untuk jaringan wireless pada basis global dan bukan pada basis antarmuka.wpa_supplicant adalah pilihan terbaik, tetapi tidak mendukung semua driver. Untuk melihat daftar driver yang didukung, kunjungilah website wpa_supplicant. Selain itu, wpa_supplicant untuk saat ini hanya dapat melakukan koneksi ke ESSID yang telah anda konfigurasikan.
wireless-tools mendukung hampir semua driver, tetapi tidak dapat melakukan koneksi ke Akses Point khusus WPA.
Peringatan: Driver linux-wlan-ng tidak didukung oleh baselayout untuk saat ini. Ini karena linux-wlan-ng memiliki konfigurasinya sendiri yang sangat berbeda dengan driver yang lain. Pengembang linux-wlan-ng dikabarkan akan mengganti pengaturan mereka menjadi seperti wireless-tools - jika hal ini terjadi, anda mungkin dapat menggunakan linux-wlan-ng dengan baselayout. |
Daftar Kode 2.1: Instalasi wpa_supplicant |
# emerge net-wireless/wpa_supplicant
|
Penting: Anda harus mengaktifkan CONFIG_PACKET pada kernel anda agar wpa_supplicant dapat berfungsi. |
Daftar Kode 2.2: Konfigurasi /etc/conf.d/net untuk wpa_supplicant |
# Mendahulukan wpa_supplicant daripada wireless-tools modules=( "wpa_supplicant" ) # Penting bagi kita untuk memberitahukan kepada wpa_supplicant tentang # driver mana yang harus digunakan karena modul ini masih kurang pintar memilih wpa_supplicant_eth0="-Dmadwifi" |
Catatan: Jika anda menggunakan driver host-ap, anda harus menempatkan kartu anda di modus Managed sebelum dapat digunakan oleh wpa_supplicant dengan benar. Anda boleh menggunakan iwconfig_eth0="mode managed" untuk ini di /etc/conf.d/net. |
Daftar Kode 2.3: Contoh /etc/wpa_supplicant/wpa_supplicant.conf |
# Baris di bawah ini tidak akan diganti kecuali jika tidak berfungsi ctrl_interface=/var/run/wpa_supplicant # Pastikan agar hanya root yang dapat membaca konfigurasi WPA ctrl_interface_group=0 # Biarkan wpa_supplicant mencari dan memilih AP ap_scan=1 # kasus sederhana: WPA-PSK, PSK sebagai passphrase ASCII, izinkan # semua angka yang benar network={ ssid="simple" psk="very secret passphrase" # Semakin besar prioritas, semakin cepat kita akan dicocokkan priority=5 } # Sama seperti sebelumnya, tetapi meminta pencarian SSID khusus (untuk # AP yang menolak untuk mem-broadcast SSID) network={ ssid="second ssid" scan_ssid=1 psk="very secret passphrase" priority=2 } # Hanya WPA-PSK yang digunakan. Semua kombinasi angka diterima network={ ssid="example" proto=WPA key_mgmt=WPA-PSK pairwise=CCMP TKIP group=CCMP TKIP WEP104 WEP40 psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb priority=2 } # Koneksi plaintext (bukan WPA, bukan IEEE 802.1X) network={ ssid="plaintext-test" key_mgmt=NONE } # Koneksi kunci WEP yang dibagi (bukan WPA, bukan IEEE 802.1X) network={ ssid="static-wep-test" key_mgmt=NONE wep_key0="abcde" wep_key1=0102030405 wep_key2="1234567890123" wep_tx_keyidx=0 priority=5 } # Koneksi kunci WEP yang dibagi (bukan WPA, bukan IEEE 802.1X) # menggunakan otentikasi Shared Key IEEE 802.11 network={ ssid="static-wep-test2" key_mgmt=NONE wep_key0="abcde" wep_key1=0102030405 wep_key2="1234567890123" wep_tx_keyidx=0 priority=5 auth_alg=SHARED } # Jaringan IBSS/ad-hoc dengan WPA-None/TKIP network={ ssid="test adhoc" mode=1 proto=WPA key_mgmt=WPA-NONE pairwise=NONE group=TKIP psk="secret passphrase" } |
Konfigurasi Wireless Tools dikendalikan oleh beberapa variabel utama. Contoh konfigurasi di bawah ini akan cukup menjelaskan apa saja yang anda perlukan. Satu hal yang perlu diingat adalah bahwa tidak ada konfigurasi berarti "melakukan koneksi ke akses poin tidak ter-enkripsi yang paling kuat" - kita akan selalu mencoba untuk menghubungkan anda ke sesuatu.
Daftar Kode 3.1: Instalasi wireless-tools |
# emerge net-wireless/wireless-tools
|
Catatan: Walaupun anda dapat menempatkan pengaturan wireless anda di file /etc/conf.d/wireless, panduan ini menganjurkan anda untuk menempatkannya di /etc/conf.d/net. |
Penting: Anda wajib membaca dokumentasi Nama Variabel. |
Daftar Kode 3.2: Contoh pengaturan iwconfig di /etc/conf.d/net |
# Mendahulukan iwconfig daripada wpa_supplicant modules=( "iwconfig" ) # Konfigurasi kunci WEP untuk Akses Poin bernama ESSID1 dan ESSID2 # Anda boleh mengkonfigurasi sampai 4 kunci WEP, tapi hanya satu yang akan # aktif pada satu waktu, jadi kita memberikan indeks default [1] ke kunci set [1] # kemudian kembali mengganti kunci aktif ke [1] # Kita melakukan ini kalau-kalau anda menggunakan ESSID yang lain untuk menggunakan # kunci WEP selain 1 # # Meletakkan s; di depan kunci berarti kunci ini merupakan kunci ASCII, jika tidak # berarti kunci HEX # # enc menentukan keterbukaan keamanan (paling aman) # enc menolak kemapanan yang ditentukan (paling tidak aman) key_ESSID1="[1] s:yourkeyhere key [1] enc open" key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted" # Contoh di bawah ini hanya akan berfungsi ketika kita mencari # akses poin yang tersedia # Terkadang ditemukan lebih dari satu akses poin, jadi kita perlu # menentukan urutan untuk melakukan koneksi preferred_aps=( "ESSID1" "ESSID2" ) |
Anda dapat memilih untuk hanya melakukan koneksi ke akses poin yang anda inginkan atau tidak. Secara default, jika semua konfigurasi gagal tetapi kita dapat melakukan koneksi ke akses poin yang tidak ter-enkripsi, maka kita akan terhubung. Ini diatur oleh variabel associate_order. Berikut ini merupakan tabel nilai dan cara mengaturnya.
Nilai | Penjelasan |
any | Tingkah-laku default |
preferredonly | Kita hanya akan melakukan koneksi ke AP yang terlihat di daftar |
forcepreferred | Kita akan memaksa untuk melakukan koneksi ke AP yang ada di daftar jika tidak ditemukan dalam pencarian |
forcepreferredonly | Jangan mencari AP - tetapi langsung mencoba melakukan koneksi ke salah satu |
forceany | Sama denganforcepreferred + koneksikan ke AP lain yang tersedia |
Daftar Kode 3.3: Contoh blacklist_aps dan unique_ap |
# Terkadang anda sama sekali tidak ingin terhubung ke AP tertentu blacklist_aps=( "ESSID3" "ESSID4" ) # Jika anda memiliki lebih dari satu kartu wireless, anda dapat # menentukan apakah anda mengizinkan masing-masing kartu untuk diasosiasikan # dengan AP yang sama atau tidak # Nilai-nilainya adalah "yes" dan "no" # Default adalah "yes" unique_ap="yes" |
Daftar Kode 3.4: fallback ke modus ad-hoc |
adhoc_essid_eth0="This Adhoc Node" |
Daftar Kode 3.5: Contoh konfigurasi ad-hoc/master |
# Pengaturan modus- bisa managed (default), ad-hoc atau master # Tidak semua driver mendukung semua modus mode_eth0="ad-hoc" # Set ESSID antarmuka # Pada modus managed, ini memaksa antarmuka untuk hanya mencoba dan melakukan # koneksi ke ESSID yang ditentukan essid_eth0="This Adhoc Node" # Kita menggunakan channel 3 jika anda tidak menentukan apapun channel_eth0="9" |
Penting: Berikut ini merupakan salinan asli dari dokumentasi wavelan BSD di Dokumentasi NetBSD. Terdapat 14 channel yang mungkin; Kami diberitahukan bahwa channel 1-11 legal untuk Amerika Utara, channel 1-13 untuk hampir seluruh Eropa, channel 10-13 untuk Prancis, dan hanya channel 14 untuk Jepang. Jika ragu, silakan baca dokumentasi kartu wireless atau akses poin anda. Pastikan agar channel yang anda pilih sama dengan channel akses poin anda (atau kartu lain pada sebuah jaringan ad-hoc). Default untuk kartu yang dijual di Amerika Utara dan kebanyakan negara Eropa adalah 3; 11 untuk Prancis, dan 14 untuk Jepang. |
Variabel | Nilai Default | Penjelasan |
iwconfig_eth0 | Baca manual iwconfig untuk rincian tentang apa yang harus dikirimkan ke iwconfig | |
iwpriv_eth0 | Baca manual iwpriv untuk rincian tentang apa yang harus dikirimkan ke iwpriv | |
sleep_scan_eth0 | 0 | Jumlah detik untuk istirahat sebelum mencoba melakukan pencarian. Ini diperlukan ketika driver/firmware memerlukan waktu untuk aktif sebelum dapat digunakan. |
sleep_associate_eth0 | 5 | Jumlah detik untuk menunggu sampai antarmuka diasosiasikan dengan akses poin sebelum berpindah ke AP selanjutnya |
associate_test_eth0 | MAC | Beberapa driver tidak me-reset alamat MAC yang terasosiasi dengan yang tidak benar ketika kehilangan atau mencoba melakukan asosiasi. Beberapa driver tidak me-reset level kualitas ketika kehilangan atau mencoba melakukan asosiasi. Pengaturan yang dibolehkan adalah MAC, quality dan all. |
scan_mode_eth0 | Beberapa driver perlu melakukan pencarian pada modus ad-hoc, jadi jika pencarian gagal, coba gunakan ad-hoc di sini | |
iwpriv_scan_pre_eth0 | Kirimkan beberapa perintah iwpriv ke antarmuka sebelum melakukan pencarian. Baca manual iwpriv untuk perinciannya. | |
iwpriv_scan_post_eth0 | Kirimkan beberapa perintah iwpriv ke antarmuka setelah melakukan pencarian. Baca manual iwpriv untuk perinciannya. |
Catatan: Ini berfungsi jika anda menggunakan WPA Supplicant atau Wireless Tools. |
Penting: Anda perlu membaca dokumentasi Nama Variabel. |
Daftar Kode 4.1: Menentukan setting jaringan per-ESSID |
config_ESSID1=( "192.168.0.3/24 brd 192.168.0.255" ) routes_ESSID1=( "default via 192.168.0.1" ) config_ESSID2=( "dhcp" ) fallback_ESSID2=( "192.168.3.4/24" ) fallback_route_ESSID2=( "default via 192.168.3.1" ) # Kita dapat menentukan nameserver dan yang lainnya # CATATAN: DHCP akan menimpa pengaturan ini, kecuali jika dilarang dns_servers_ESSID1=( "192.168.0.1" "192.168.0.2" ) dns_domain_ESSID1="some.domain" dns_search_domains_ESSID1="search.this.domain search.that.domain" # Menentukan dengan alamat MAC Akses Poin # Berguna jika anda pergi ke lokasi berbeda yang memiliki ESSID sama config_001122334455=( "dhcp" ) dhcpcd_001122334455="-t 10" dns_servers_001122334455=( "192.168.0.1" "192.168.0.2" ) |
5. Menambahkan Kegunaan
Empat fungsi dapat didefinisikan yang nantinya akan dipanggil di sekeliling operasi start/stop. Fungsi-fungsi dipanggil dengan nama antarmuka dulu agar satu fungsi dapat mengendalikan banyak antarmuka.Nilai hasil untuk fungsi preup() dan predown() harus 0 (sukses) untuk mengindikasikan bahwa konfigurasi atau penghapusan konfigurasi antarmuka dapat dilanjutkan. Jika preup() memberikan nilai selain nol, maka konfigurasi antarmuka akan dibatalkan. Jika predown() memberikan hasil selain nol, maka antarmuka tidak akan diizinkan untuk melanjutkan penghapusan konfigurasi.
Nilai hasil untuk fungsi postup() dan postdown() akan diabaikan karena tidak ada yang perlu dilakukan jika fungsi-fungsi ini mengindikasikan kegagalan.
${IFACE} diisi dengan antarmuka ketika sedang dinyalakan/dimatikan. ${IFVAR} adalah ${IFACE} yang dikonversikan ke nama-nama variabel yang diizinkan oleh bash.
Daftar Kode 1.1: Contoh-contoh fungsi pre/post up/down |
preup() { # Percobaan untuk link di antarmuka sebelum dinyalakan. Ini hanya # akan bekerja pada beberapa kartu jaringan dan membutuhkan paket ethtool. if ethtool ${IFACE} | grep -q 'Link detected: no'; then ewarn "No link on ${IFACE}, aborting configuration" return 1 fi # Jangan lupa berikan nilai 0 jika sukses return 0 } predown() { # Default pada skrip adalah menguji root NFS dan melarang antarmuka # untuk dimatikan pada kasus tersebut. Perlu diketahui bahwa jika anda # menentukan sebuah fungsi predown() anda akan menindih logika tersebut. Ini # dia, jika anda memang menginginkannya... if is_net_fs /; then eerror "root filesystem is network mounted -- can't stop ${IFACE}" return 1 fi # Jangan lupa berikan nilai 0 jika sukses return 0 } postup() { # Fungsi ini dapat digunakan, misalnya, untuk melakukan pendaftaran # ke sebuah servis DNS dinamis. Kemungkinan lainnya ialah untuk # mengirim/menerima email ketika antarmuka telah dinyalakan. return 0 } postdown() { # Fungsi ini dicantumkan hanya untuk kelengkapan.... Penulis belum # pernah mendapatkan ide untuk melakukan apapun dengannya ;-) return 0 } |
Catatan: Ini tidak akan bekerja dengan Permohonan WPA - tetapi variabel ${ESSID} dan ${ESSIDVAR} tersedia di fungsi postup(). |
Nilai hasil dari fungsi preassociate() harus berupa 0 (sukses) untuk mengindikasikan bahwa konfigurasi atau penghapusan konfigurasi antarmuka dapat dilanjutkan. Jika preassociate() memberikan nilai bukan nol, maka konfigurasi antarmuka akan dibatalkan.
Nilai hasil dari fungsi postassociate() akan diabaikan karena tidak ada yang perlu dilakukan jika fungsi ini mengindikasikan kegagalan.
${ESSID} di-set ke ESSID yang tepat dari AP yang anda hubungi. ${ESSIDVAR} merupakan ${ESSID} yang dikonversikan ke nama-nama variabel yang diizinkan oleh bash.
Daftar Kode 2.1: Fungsi-fungsi asosiasi pre/post |
preassociate() { # Fungsi-fungsi di bawah ini menambahkan dua variabel konfigurasi # leap_user_ESSID dan leap_pass_ESSID. Ketika keduanya dikonfigurasikan untuk # ESSID yang dihubungi maka kita akan menjalankan skrip CISCO LEAP local user pass eval user=\"\$\{leap_user_${ESSIDVAR}\}\" eval pass=\"\$\{leap_pass_${ESSIDVAR}\}\" if [[ -n ${user} && -n ${pass} ]]; then if [[ ! -x /opt/cisco/bin/leapscript ]]; then eend "For LEAP support, please emerge net-misc/cisco-aironet-client-utils" return 1 fi einfo "Waiting for LEAP Authentication on \"${ESSID//\\\\//}\"" if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then ewarn "Login Failed for ${user}" return 1 fi fi return 0 } postassociate() { # Fungsi ini dicantumkan hanya untuk kelengkapan.... Penulis belum # pernah mendapatkan ide untuk melakukan apapun dengannya ;-) return 0 } |
Catatan: ${ESSID} dan ${ESSIDVAR} tidak tersedia di fungsi predown() dan postdown(). |
6. Manajemen Jaringan
Jika anda dan komputer anda selalu berpindah tempat, anda mungkin tidak selalu menancpkan kabel ethernet atau mendapatkan akses point. Anda juga mungkin ingin agar jaringan langsung dapat digunakan ketika kabel ethernet ditancapkan atau sebuah akses point ditemukan.Di sini anda akan menemukan beberapa tool yang dapat membantu anda untuk mengaturnya.
Catatan: Dokumen ini hanya menjelaskan ifplugd, tetapi ada alternatif lain seperti netplug. netplug adalah alternatif yang lebih ringan dari ifplugd, tetapi mensyaratkan agar driver jaringan dari kernel telah berfungsi dengan benar. |
Daftar Kode 2.1: Instalasi ifplugd |
# emerge sys-apps/ifplugd
|
Daftar Kode 2.2: Contoh konfigurasi ifplug |
# Ganti eth0 dengan antarmuka jaringan yang akan dimonitor ifplugd_eth0="..." (Untuk mengawasi antarmuka wireless) ifplugd_eth0="--api-mode=wlan" |
Daftar Kode 2.3: Instalasi openresolv |
# emerge openresolv
|
Tidak ada komentar:
Posting Komentar