Gentoo Logo

Buku Pegangan Instalasi Gentoo Linux PPC 2007.0 Tanpa Jaringan

Daftar Isi:

  • Instalasi Gentoo
    Di bagian ini, anda akan belajar cara menginstal Gentoo pada sistem anda.
    1. Tentang Proses Instalasi Gentoo Linux
      Bab ini akan memperkenalkan metode instalasi pada bagian ini.
    2. Boot CD Instalasi Universal
      Dengan CD Instalasi Universal kami, anda dapat boot sistem anda ke sebuah lingkungan yang dapat anda gunakan untuk menginstal Gentoo.
    3. Konfigurasi Jaringan
      Jika anda membutuhkan jaringan, di sinilah cara konfigurasi jaringan (dan internet) dijelaskan.
    4. Mempersiapkan Disk
      Untuk menginstal Gentoo, anda harus menyediakan partisi-partisi yang diperlukan. Bab ini menjelaskan cara mempartisi disk agar dapat digunakan.
    5. Menyalin File-file Instalasi Gentoo
      Bab ini menjelaskan cara mengekstrak arsip stage3 dan mengkonfigurasi Portage.
    6. Chroot ke dalam Sistem Dasar Gentoo
      Setelah file stage3 diekstrak, kita akan melakukan chroot ke dalam sistem baru dan mengubah variabel USE.
    7. Konfigurasi Kernel
      Kernel Linux adalah jantung dari setiap distro. Bab ini menjelaskan cara mengkonfigurasi kernel.
    8. Konfigurasi Sistem
      Anda perlu mengedit beberapa file-file konfigurasi penting. Pada bab ini, anda diberikan garis besar tentang file-file ini beserta penjelasannya.
    9. Instalasi Utilitas Sistem yang Diperlukan
      Seperti yang dijelaskan sebelumnya, konsep utama Gentoo adalah pilihan. Pada bab ini, kami membantu anda memilih dan menginstal beberapa utilitas penting.
    10. Konfigurasi Bootloader
      Ada beberapa bootloader yang tersedia. Setiap bootloader memiliki cara konfigurasi khusus. Bab ini menjelaskan semua kemungkinan bagi anda dan memandu anda dalam proses mengkonfigurasi sebuah bootloader sesuai dengan kebutuhan anda.
    11. Menyelesaikan Instalasi Gentoo
      Anda hampir selesai. Kita hanya perlu membuat satu (atau lebih) pengguna di sistem dan menginstal paket-paket prebuilt (opsional).
    12. Kemanakah setelah ini?
      Sekarang anda telah memiliki sistem Gentoo; Selanjutnya apa?
  • Bekerja menggunakan Gentoo
    Belajar cara menggunakan Gentoo: menginstal software, mengubah variabel, mengubah tingkah laku portage, dll.
    1. Pengenalan Portage
      Bab ini menjelaskan cara "sederhana" yang harus diketahui seorang pengguna untuk memelihara software pada sistemnya.
    2. Flag USE
      Flag USE sangat penting di Gentoo. Pada bab ini, anda akan belajar cara menggunakan flag USE dan mengetahui cara interaksi flag USE dengan sistem anda.
    3. Fitur-fitur Portage
      Kenali fitur-fitur yang dimiliki Portage, seperti kompilasi terdistribusi, ccache, dan masih banyak lagi.
    4. Skrip Init
      Gentoo menggunakan sebuah format skrip init khusus yang, di antara fitur-fitur lain, menyediakan pilihan berdasarkan dependensi dan skrip init virtual. Bab ini menjelaskan seluruh aspek tersebut dan cara bekerja dengan skrip-skrip ini.
    5. Variabel Lingkungan
      Menggunakan Gentoo, anda dapat dengan mudah menangani variabel lingkungan sistem. Bab ini menjelaskan cara melakukannya, dan juga menjabarkan beberapa variabel yang sering digunakan.
  • Bekerja dengan Portage
    "Bekerja dengan Portage" melingkupi penjelasan mendalam tentang Portage, Alat Pengatur Software Gentoo.
    1. File dan Direktori
      Jika anda ingin lebih mengenal Portage, anda harus mengetahui dimana portage meletakkan file dan data-datanya.
    2. Konfigurasi dengan Variabel
      Portage dapat dikonfigurasi dengan bermacam-macam variabel yang bisa anda atur di file konfigurasi sebagai variabel lingkungan.
    3. Mencampur Cabang-cabang Software
      Gentoo menyediakan software yang terpisah di beberapa cabang, berdasarkan kestabilan dan dukungan arsitektur (jenis CPU). "Mencampur Cabang-cabang Software" akan memberikan anda informasi tentang cara mengkonfigurasi dan mengesampingkan pemisahan cabang-cabang secara individual.
    4. Utilitas Tambahan Portage
      Portage memiliki beberapa utilitas tambahan yang mungkin bisa membuat pengalaman anda dengan Gentoo lebih asyik. Baca terus untuk mengetahui cara menggunakan dispatch-conf dan utilitas lain.
    5. Beralih dari Pohon Portage Resmi
      "Beralih dari Pohon Portage Resmi" memberikan anda beberapa tips dan trik bagaimana cara menggunakan Pohon Portage anda sendiri, bagaimana cara mensinkronisasi hanya kategori yang anda inginkan, menyuntikkan paket, dll.
  • Konfigurasi Jaringan Gentoo
    Sebuah panduan mendalam tentang jaringan di Gentoo.
    1. Siap Memulai
      Panduan berisi cara mengaktifkan antarmuka jaringan dengan cepat pada kebanyakan lingkungan umum.
    2. Konfigurasi Lebih Lanjut
      Disini kita akan belajar bagaimana sebuah konfigurasi bekerja - anda harus mengetahui ini sebelum belajar tentang jaringan modular.
    3. Modular Networking
      Gentoo menyediakan jaringan kerja yang fleksibel untuk anda - di sini anda akan diberi pengetahuan tentang pemilihan klien DHCP yang berbeda, pengaturan bonding, bridging, VLAN dan banyak lagi.
    4. Jaringan Nirkabel
      Jaringan nirkabel sedikit rumit. Mudah-mudahan kami bisa membantu anda untuk dapat menjalankannya!
    5. Menambahkan Kegunaan
      Jika anda suka berpetualang, anda bisa menambahkan beberapa kegunaan jaringan anda sendiri.
    6. Manajemen Jaringan
      Untuk para pengguna laptop atau yang sering memindahkan komputer mereka ke jaringan kerja yang berbeda.

A. Instalasi Gentoo

1. Tentang Proses Instalasi Gentoo Linux

1.a. Pendahuluan

Selamat Datang!

Pertama-tama, selamat datang di Gentoo. Anda akan memasuki dunia yang penuh dengan pilihan dan performa. Konsep Gentoo adalah tentang pilihan. Ketika anda menginstal Gentoo, hal ini akan diperjelas kepada anda beberapa kali -- anda dapat memilih sejauh mana anda ingin mengkompilasi sistem, cara menginstal Gentoo, logger sistem apa yang anda inginkan, dll.

Gentoo adalah metadistro modern yang kencang dengan disain yang rapi dan fleksibel. Gentoo dibangun dengan free software dan tidak akan menyembunyikan apapun yang berada dibalik Gentoo dari para penggunanya. Portage, sistem pengatur paket yang digunakan Gentoo, ditulis dengan Python, yang berarti anda dapat dengan mudah melihat dan memodifikasi kode sumbernya. Sistem paket Gentoo menggunakan source code (walaupun dukungan terhadap paket-paket jadi diikutsertakan juga) dan konfigurasi Gentoo menggunakan file teks biasa. Dengan kata lain, keterbukaan berada 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, buatlah laporan di bug.

Bagaimana Proses Instalasi Diorganisasi?

Proses instalasi Gentoo dapat dirangkum dalam 10 langkah, yang berkaitan dengan bab 2 sampai 11. Setiap langkah menghasilkan sebuah situasi tertentu:

  • Setelah langkah 1, anda akan berada di sebuah lingkungan kerja yang siap untuk menginstal Gentoo
  • Setelah langkah 2, koneksi internet anda akan siap digunakan untuk menginstal Gentoo
  • Setelah langkah 3, harddisk anda akan telah siap untuk melakukan proses instalasi Gentoo
  • Setelah langkah 4, lingkungan instalasi anda telah disiapkan dan anda akan siap untuk 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
  • 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, pilihan bootloader anda telah terinstal dan terkonfigurasi, dan anda sudah berada di sistem Gentoo baru anda
  • Setelah langkah 10, sistem Gentoo Linux anda telah siap untuk dijelajahi

Ketika anda diberikan beberapa pilihan, kami mencoba sebaik mungkin untuk menjelaskan apa kelebihan dan kelemahan dari setiap pilihan tersebut. Lalu, kami akan melanjutkan dengan pilihan default, dapat dikenali dengan tanda "Default: " pada judulnya. Kemungkinan lain akan ditandai dengan "Alternatif: ". Jangan berasumsi bahwa default merupakan apa yang kami rekomendasikan. Hal tersebut adalah apa yang kami percaya akan digunakan oleh kebanyakan pengguna.

Kadang-kadang anda dapat menjalankan langkah opsional. Langkah-langkah tersebut ditandai dengan "Opsional: " dan tidak diperlukan untuk menginstal Gentoo. Bagaimanapun juga, beberapa langkah opsional tergantung pada pilihan anda sebelumnya. Kami akan menginformasikan kepada anda kapan hal ini terjadi, yaitu sewaktu anda memilih, dan sesaat sebelum langkah opsional dijelaskan.

Apa saja pilihan saya?

Anda dapat menginstal Gentoo dengan berbagai cara. Anda dapat mendownload dan menjalankan instalasi dengan salah satu CD instalasi kami, dari sebuah distro yang telah terinstal, dari CD bootable (mis. Knoppix), dari lingkungan boot jaringan, dari floppy pertolongan, dll.

Dokumen ini menjelaskan proses instalasi menggunakan CD Instalasi Gentoo, sebuah CD bootable yang berisi semua yang anda perlukan untuk menginstal Gentoo. Ada dua macam CD Instalasi, yaitu InstallCD dan LiveCD Installer. InstallCD merupakan sebuah lingkungan minimal yang hanya berisi paket-paket yang diperlukan untuk menginstal Gentoo Linux. Sedangkan LiveCD merupakan sebuah lingkungan Gentoo Linux yang dapat digunakan untuk berbagai keperluan, salah satunya untuk menginstal Gentoo Linux. Untuk saat ini, LiveCD belum tersedia bagi semua arsitektur. Jika arsitektur anda tidak memiliki LiveCD, maka dokumen ini menunjuk ke InstallCD Universal bagi anda.

Bagaimanapun juga, metode instalasi pada dokumen ini tidak menggunakan paket-paket terbaru yang tersedia; jika anda menginginkannya, anda harus mengikuti petunjuk di Buku Pegangan Gentoo.

Untuk cara instalasi lain, silahkan membaca Panduan Instalasi Alternatif kami. Kami juga menyediakan sebuah dokumen Tips & Trik yang mungkin bisa bermanfaat. Jika anda merasa petunjuk instalasi ini terlalu panjang, gunakanlah Panduan Instalasi Singkat kami yang tersedia di Sumber Dokumentasi jika arsitektur anda memilikinya.

Menemui Masalah?

Jika anda menemui masalah dalam proses instalasi (atau dokumentasi instalasi), silakan periksa errata dari Gentoo Release Engineering Project kami, kunjungi sistem bugtracking kami dan periksa jika bug tersebut telah diketahui (dilaporkan) atau belum. Jika belum, silahkan laporkan sebuah bug tentang masalah tersebut agar kami dapat memperbaikinya. Jangan takut terhadap para developer yang ditugaskan pada bug anda -- mereka biasanya tidak memakan orang.

Catat bahwa, walaupun dokumen yang sedang anda baca ini adalah arsitektur-spesifik, dokumen ini akan tetap memiliki referensi ke arsitektur lain juga. Hal ini dikarenakan banyak bagian dari Buku Pegangan Gentoo menggunakan kode sumber yang sama/umum di semua arsitektur (untuk menghindari duplikasi usaha dan kekurangan resource pengembangan). Kami akan berusaha untuk mengurangi seminimum mungkin agar tidak terjadi kebingungan.

Jika anda tidak yakin apakah masalah anda adalah masalah-user (beberapa error yang anda perbuat karena tidak membaca dokumentasi dengan benar) atau masalah-software (beberapa error yang kami perbuat karena tidak memeriksa instalasi/dokumentasi dengan hati-hati), anda dapat bergabung dan bertanya di #gentoo di irc.freenode.net. Tentu saja, anda tidak harus jika tidak mau :)

Jika anda memiliki pertanyaan tentang Gentoo, periksalah FAQ kami, yang tersedia di Dokumentasi Gentoo. Anda dapat juga melihat FAQ di forum Gentoo. Jika anda tidak dapat menemukan jawaban di sana, cobalah bertanya di #gentoo, channel IRC kami di irc.freenode.net. Ya, beberapa dari kami adalah orang aneh yang hanya bermalas-malasan di IRC :-)

1.b. Instalasi Cepat Dengan Gentoo Reference Platform

Apa itu Gentoo Reference Platform?

Gentoo Reference Platform, mulai dari sini kita sebut GRP, merupakan sebuah snapshot dari paket jadi yang dapat diinstal oleh para pengguna (anda!) ketika menjalankan instalasi Gentoo Linux untuk mempercepat proses instalasi. GRP berisi semua paket yang dibutuhkan untuk mendapatkan instalasi Gentoo yang berfungsi penuh. GRP tidak hanya berisi paket-paket yang anda perlukan untuk mendapatkan instalasi dasar, tetapi paket-paket besar lainnya (seperti xorg-x11, GNOME, OpenOffice, Mozilla, ...) juga tersedia.

Namun, paket-paket jadi ini tidak dipelihara selamanya. Paket-paket ini hanya merupakan snapshot yang dirilis bersamaan dengan rilis baru Gentoo agar anda bisa mendapatkan lingkungan yang berfungsi penuh dalam waktu yang cukup singkat. Nantinya anda dapat memperbarui sistem sambil menggunakan Gentoo.

Bagaimana Portage Menangani Paket-paket GRP

Pohon Portage - kumpulan ebuild (file-file yang berisi semua informasi tentang sebuah paket, seperti deskripsi, website, URL kode sumber, petunjuk kompilasi, dependensi, dll) - harus disetarakan dengan kumpulan GRP: versi ebuild yang ada harus sama dengan paket GRP.

Oleh karena itu, anda hanya dapat merasakan keuntungan dari paket GRP yang disediakan oleh Gentoo jika anda mengikuti cara instalasi ini. GRP tidak tersedia bagi anda yang ingin menggunakan paket-paket dengan versi terbaru.

Apakah GRP Tersedia?

Tidak semua arsitektur menyediakan paket GRP. Bukan berarti GRP tidak didukung pada arsitektur tersebut, tetapi kami tidak memiliki sumber daya yang cukup untuk membuat dan menguji paket-paket GRP.

Untuk saat ini kami menyediakan paket-paket GRP untuk arsitektur-arsitektur berikut ini:

  • Arsitektur amd64 (amd64). Catatan: Paket-paket ini sekarang tersedia di LiveCD Installer.
  • Arsitektur ppc (ppc32)
  • Arsitektur sparc (sparc64)
  • Arsitektur x86 (athlon, athlon-xp, athlon-mp, pentium-pro, pentium2, pentium3, pentium4 dan pentium-m). Catatan: Paket-paket untuk i386 tersedia di LiveCD Installer.

Jika arsitektur (atau subarsitektur) anda tidak terlampir pada daftar di atas, berarti anda tidak mendapatkan pilihan untuk melakukan instalasi GRP.

Sekarang mari kita lanjutkan dengan Boot InstallCD Universal/LiveCD Installer

2. Boot CD Instalasi Universal

2.a. Kebutuhan Hardware

Pendahuluan

Sebelum kita mulai, pertama-tama mari kita tuliskan hardware yang anda perlukan untuk menginstal Gentoo dengan sukses di komputer anda.

Kebutuhan Hardware

Komputer Apple NewWorld Power/PowerPC microprocessors (G3, G4, G5) mis. iMac, eMac, iBook PowerBook, Xserver, PowerMac
Komputer Apple OldWorld Komputer Apple yang menggunakan Open Firmware di bawah revisi 3, seperti Beige G3, PCI PowerMac dan PCI PowerBook. Clone Aplle berbasis PCI juga didukung
Genesi Pegasos I/II, Open Desktop Workstation, Efika
IBM RS/6000, iSeries, pSeries
Memori Paling sedikit 64 MB
Ruang disk 1.5 GB (belum termasuk swap)
Swap Paling sedikit 256 MB

Jangan lupa baca FAQ PPC Gentoo untuk mendapatkan bantuan dalam masalah-masalah terkait instalasi atau jika anda tidak yakin PowerPC jenis apa yang sedang anda gunakan sekarang.

2.b. CD Instalasi Universal Gentoo

Pendahuluan

Gentoo Linux dapat diinstal dengan menggunakan file tarbal stage3. Tarbal ini adalah sebuah arsip yang berisi lingkungan minimal yang dapat anda gunakan untuk menginstal Gentoo Linux dengan sukses di komputer anda.

Instalasi dengan file tarbal stage1 dan stage2 tidak didokumentasikan lagi di Buku Pegangan Gentoo - bacalah FAQ Gentoo.

CD Instalasi Universal Gentoo

CD Instalasi Universal adalah media bootable yang berisi sistem Gentoo. Anda dapat boot ke Linux dengan CD ini. Selama proses boot berlangsung, hardware anda akan dikenali dan modul yang dibutuhkan akan dimuat. CD Instalasi Gentoo diperlihara oleh para pengembang Gentoo.

Kedua CD Instalasi yang kami sediakan saat ini adalah:

  • CD Instalasi Universal Gentoo, berisi semua yang anda butuhkan untuk menginstal Gentoo. CD ini menyediakan stage3 untuk arsitektur-arsitektur yang umum, kode sumber untuk aplikasi tambahan yang anda perlukan, dan tentunya petunjuk instalasi untuk arsitektur anda.
  • CD Instalasi Minimal Gentoo, hanya berisi lingkungan minimal yang dapat anda gunakan untuk boot dan mengkonfigurasi jaringan agar anda dapat terhubung ke internet. CD ini tidak berisi file-file tambahan lainnya dan tidak dapat digunakan untuk metode instalasi yang sedang kita lakukan.

Gentoo juga menyediakan CD Paket. CD ini bukanlah CD Instalasi, tapi sebuah sumber tambahan yang berguna ketika melakukan instalasi tanpa internet. CD ini berisi paket-paket jadi (dikenal juga dengan kumpulan GRP) yang bisa anda gunakan untuk menginstal aplikasi tambahan dengan cepat (mis. OpenOffice.org, KDE, GNOME, ....) setelah melakukan instalasi tanpa internet dan sebelum anda memperbarui pohon Portage.

Penggunaan Paket CD akan akan dijelaskan nanti pada dokumen ini.

2.c. Download, Burn dan Boot CD Instalasi Universal Gentoo

Download dan Burn CD Instalasi

Anda dapat mendownload CD Instalasi (dan, jika anda mau, CD Paket juga) dari salah satu mirror kami. CD Instalasi berada di direktori releases/ppc/2007.0/ppc32/installcd; sedangkan CD Paket berada di releases/ppc/2007.0/ppc32/packagecd.

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.

Setelah mendownload file tersebut, anda dapat memastikan apakah hasil download anda rusak atau tidak.

  • Anda dapat memeriksa MD5 checksum-nya dan membandingkannya dengan MD5 checksum yang kami sediakan (mis.dengan utilitas md5sum di Linux/Unix atau md5sum untuk Windows). Cara memeriksa MD5 checksum di Mac OS X dijelaskan di FAQ PPC Gentoo.
  • Anda dapat memeriksa tanda kriptografi yang kami sediakan. Tetapi sebelumnya anda harus mengambil kunci publik yang kami gunakan (0x17072058).

Untuk mendapatkan kunci publik kami dengan aplikasi GnuPG, jalankan perintah berikut:

Daftar Kode 3.1: Mendapatkan kunci publik

$ gpg --keyserver subkeys.pgp.net --recv-keys 0x17072058

Sekarang, periksa tandanya:

Daftar Kode 3.2: Memeriksa tanda kriptografi

$ gpg --verify <signature file> <downloaded iso>

Untuk menyalin file ISO yang telah didownload, anda harus menggunakan metode raw-burning. Caranya tergantung pada program yang anda gunakan. Kami hanya akan menjelaskan cdrecord dan K3B di sini; informasi lebih lanjut bisa anda temukan di FAQ Gentoo kami.

  • Dengan cdrecord, anda hanya perlu mengetikkan cdrecord dev=/dev/hdc <file iso yang baru di-download> (gantikan /dev/hdc dengan drive CD-RW anda).
  • Dengan K3B, pilih Tools > Burn CD Image. Kemudian, anda dapat mencari file ISO anda di bagian "Image to Burn". Terakhir, klik Start.

Default: Boot CD Instalasi dengan Yaboot

Pada komputer NewWorld, masukkan CD Instalasi di CD-ROM lalu reboot sistem. Ketika system-start-bell berbunyi, tekan dan tahan 'C' sampai CD memuat isinya.

Setelah CD Instalasi selesai dimuat, anda akan disambut dengan pesan selamat datang yang ramah dan sebuah prompt boot: pada bagian bawah layar.

Kami menyediakan sebuah kernel generik, ppc32. Kernel ini dibangun dengan dukungan untuk multi-CPU, tapi juga bisa digunakan untuk komputer single-CPU.

Anda dapat menggunakan beberapa opsi kernel pada prompt ini. Tabel berikut ini berisi daftar opsi-opsi boot yang dapat anda gunakan:

Opsi Boot Penjelasan
video Opsi ini mengambil salah satu tag dari beberapa merek berikut: nvidiafb, radeonfb, rivafb, atyfb, aty128 atau ofonly. Anda dapat menambahkan nilai resolusi dan refresh rate serta kedalam warna yang ingin anda gunakan setelah tag ini. Misalnya, video=radeonfb:1280x1024@75-32 akan memilih frame buffer ATI Radeon pada resolusi 1280x1024 dengan refresh rate 5Hz dan kedalaman warna 32 bit. Jika anda kurang yakin dengan apa yang harus dipilih dan pengaturan default tidak berfungsi, cobalah video=ofonly
nol3 Menonaktifkan cache level 3 pada beberapa PowerBook (diperlukan paling tidak 17")
dofirewire Mengaktifkan dukungan untuk perangkat IEEE1394 (FireWire), seperti harddisk eksternal.
dopcmcia Jika anda ingin menggunakan perangkat PCMCIA selama instalasi (mis. kartu jaringan PCMCIA), anda harus mengaktifkan opsi ini.

Untuk menggunakan opsi-opsi tersebut di atas, pada prompt boot:, ketik apple diikuti dengan opsi yang ingin anda gunakan. Pada contoh di bawah ini, kami akan memaksa kernel untuk menggunakan framebuffer Open Firmware, bukan driver khusus.

Daftar Kode 3.3: Memaksakan penggunaan framebuffer Open Firmware

boot: apple video=ofonly

Jika anda tidak ingin menambahkan opsi apapun tekan saja enter pada prompt ini, maka sebuah lingkungan lengkap Gentoo Linux akan dimuat dari CD. Lanjutkan dengan Dan Ketika Anda Sudah Boot....

Alternatif: Boot CD Instalasi di Pegasos

Pada komputer Pegasos, masukkan CD, dan ketik boot cd /boot/menu pada prompt SmartFirmware. Perintah ini akan membuka sebuah menu boot tempat anda dapat memilih beberapa konfigurasi video. Jika anda memerlukan opsi boot tertentu, anda dapat menambahkannya pada baris perintah sama seperti boot dengan Yaboot. Sebagai contoh: boot cd /boot/pegasos video=radeonfb:1280x1024@75 mem=256M. Opsi default kernel (kalau-kalau ada yang tidak beres dan anda memerlukannya) telah dikonfigurasi dengan console=ttyS0,115200 console=tty0 init=/linuxrc looptype=squashfs loop=/image.squashfs cdroot root=/dev/ram0.

Alternatif: Boot CD Instalasi dengan BootX

Jika anda menggunakan OldWorld Mac, bagian bootable pada livecd tidak dapat digunakan. Solusi paling mudah adalah menggunakan MacOS 9 atau yang lebih lama untuk bootstrap ke sebuah lingkungan Linux dengan utilitas bernama BootX.

Pertama, download BootX lalu ekstrak. Salin BootX Extension dari hasil ekstrak tadi ke Extensions Folder dan BootX App Control Panel ke Control Panels, keduanya terletak di System Folder MacOS anda. Kemudian, ciptakan sebuah folder bernama "Linux Kernels" pada System folder anda lalu salin kernel apple dari CD ke folder ini. Terakhir, salin apple.igz dari folder boot CD Instalasi ke System Folder MacOS.

Untuk menyiapkan BootX, jalankan BootX App Control Panel. Pilih dialog Options lalu beri tanda cek pada Use Specified RAM Disk dan pilih apple.igz System Folder anda. Kembali ke layar utama dan pastikan agar ukuran ramdisk paling sedikit 32000. Terakhir, tetapkan argumen kernel seperti yang tertera di bawah ini:

Daftar Kode 3.4: Argumen kernel BootX

cdroot root=/dev/ram0 init=linuxrc loop=image.squashfs looptype=squashfs console=tty0

Catatan: Parameter kernel pada seksi Yabot di atas juga bisa digunakan di sini. Anda dapat menambahkan opsi apa saja pada argumen kernel di atas.

Periksa sekali lagi untuk memastikan apakah pengaturan anda sudah benar lalu simpan konfigurasi tersebut. Tekan tombol Linux pada bagian atas jendela. Jika semuanya berjalan dengan baik, sistem akan boot ke CD Instalasi. Lanjutkan dengan Dan Ketika Anda Sudah Boot...

Dan Ketika Anda Sudah Boot...

Anda akan disambut dengan prompt root ("#") pada konsol saat ini. Anda juga dapat berpindah konsol dengan menekan Alt-F2, Alt-F3 dan Alt-F4. Kembalilah ke konsol pertama anda dengan menekan Alt-F1. Karena layout keyboard, anda mungkin perlu menekan Alt-fn-Fx pada komputer Apple.

Jika anda menginstal Gentoo pada sebuah sistem yang menggunakan keyboard non-US, gunakan loadkeys untuk memuat keymap pada keyboard anda. Untuk melihat keymap apa saja yang tersedia, jalankan ls /usr/share/keymaps/i386. Pada komputer NewWorld atau Pegasos jangan gunakan keymap yang ada di ppc atau mac karena keymap ini untuk komputer OldWorld berbasis ADB.

Daftar Kode 3.5: Melihat keymap yang tersedia

(PPC menggunakan keymap x86 pada kebanyakan sistem. Keymap mac/ppc
  yang disediakan di CD adalah untuk keymap ADB dan tidak bisa digunakan dengan
  kernel CD Instalasi.)
# ls /usr/share/keymaps/i386

Sekarang muat keymap pilihan anda:

Daftar Kode 3.6: Load keymap

# loadkeys be-latin1

Sekarang lanjutkan dengan Konfigurasi Hardware Tambahan.

Konfigurasi Hardware Tambahan

Ketika CD Instalasi boot, semua hardware anda akan dikenali dan modul-modul kernel yang diperlukan akan dimuat untuk mendukungnya. Pada kebanyakan kasus, proses tersebut sukses. Tetapi, pada beberapa kasus lainnya, proses tersebut mungkin tidak memuat berhasil modul kernel yang anda butuhkan secara otomatis. Jika proses pengenalan perangkat PCI melewatkan beberapa hardware, anda harus memuat sendiri modul kernel yang diperlukan.

Pada contoh berikut ini, kita akan mencoba memuat modul airport. Modul ini hanya mendukung kartu Airport lama (802.11b). Airport Extreme (802.11g) tidak didukung di CD Instalasi karena alasan larangan distribusi firmware.

Daftar Kode 3.7: Memuat modul airport

# modprobe airport

Pada iMac lama, terkadang kartu jaringan tidak dapat dikenali dengan benar. Gunakan driver BMAC:

Daftar Kode 3.8: Memuat modul bmac

# modprobe bmac

Opsional: Tweak Performa Hard Disk

Jika anda adalah pengguna advance, anda mungkin ingin men-tweak performa harddisk IDE anda dengan hdparm. Anda dapat memeriksa performa harddisk anda dengan opsi -tT (jalankan beberapa kali untuk mendapatkan nilai yang lebih tepat):

Daftar Kode 3.9: Memeriksa performa harddisk

# hdparm -tT /dev/hda

Untuk melakukan tweak, anda dapat menggunakan salah satu contoh berikut (atau coba sendiri) yang menggunakan /dev/hda sebagai harddisk (gantikan dengan disk anda):

Daftar Kode 3.10: Tweak performa harddisk

Aktifkan 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

Opsional: Akun User

Jika anda berencana untuk memberikan akses kepada orang lain untuk masuk ke lingkungan instalasi anda atau ingin chat menggunakan irssi tanpa akses root (untuk alasan keamanan), anda harus membuat user yang diperlukan dan mengganti password root.

Untuk mengganti password root, gunakan perintah passwd:

Daftar Kode 3.11: Mengganti password root

# passwd
New password: (Masukkan password baru)
Re-enter password: (Ketikkan sekali lagi)

Untuk membuat akun baru, pertama-tama kita masukkan identitasnya, diikuti dengan password. Kita dapat menggunakan perintah useradd dan passwd. Pada contoh berikut, kita akan membuat akun user dengan nama "john".

Daftar Kode 3.12: Membuat akun user

# useradd -m -G users john
# passwd john
New password: (Masukkan password john)
Re-enter password: (Ketikkan sekali lagi)

Anda dapat mengganti id user anda dari root menjadi user yang baru dibuat dengan perintah su:

Daftar Kode 3.13: Mengganti id user

# su - john

Opsional: Membaca Dokumentasi ketika Instalasi

Jika anda ingin membaca Buku Pegangan Gentoo (dari CD ataupun online) ketika instalasi, pastikan anda telah membuat akun user baru (baca Opsional: Akun User). Lalu tekan Alt-F2 untuk masuk ke terminal baru dan log in.

Jika anda ingin membaca dokumentasi di CD, anda dapat langsung menjalankan links atau bahkan links -g untuk browser grafis framebuffer untuk membacanya:

Daftar Kode 3.14: Membaca dokumentasi di CD

# links /mnt/cdrom/docs/handbook/html/index.html

Bagaimanapun juga, kami menganjurkan anda menggunakan Buku Pegangan Gentoo versi online karena lebih baru daripada versi di CD. Anda dapat membacanya menggunakan links juga, tetapi hanya setelah anda menyelesaikan bab Konfigurasi Jaringan (jika tidak, anda tidak akan dapat terhubung ke internet untuk membaca dokumentasi):

Daftar Kode 3.15: Membaca Dokumentasi online

# links http://www.gentoo.org/doc/id/handbook/2007.0/handbook-ppc.xml

Anda dapat kembali ke terminal awal dengan menekan Alt-F1.

Opsional: Menjalankan Daemon SSH

Jika anda ingin mengizinkan pengguna lain untuk mengakses komputer anda ketika proses instalasi Gentoo (mungkin ia akan membantu anda menginstal Gentoo, ataupun melakukannya untuk anda), anda perlu membuat sebuah akun untuknya, atau memberitahukan password root anda (hanya lakukan jika anda benar-benar mempercayainya).

Untuk menjalankan daemon SSH, jalankan perintah berikut:

Daftar Kode 3.16: Menjalankan daemon SSH

# /etc/init.d/sshd start

Untuk dapat menggunakan sshd, pertama anda harus menyiapkan jaringan. Lanjutkan dengan bab berikutnya tentang Konfigurasi Jaringan.

3. Konfigurasi Jaringan

3.a. Apakah anda memerlukan jaringan?

Siapa yang tidak memerlukan jaringan?

Secara umum, anda tidak memerlukan jaringan untuk menginstal Gentoo dengan CD Universal atau LiveCD Installer. Namun, ada beberapa situasi yang mengharuskan anda memiliki koneksi internet:

  • File stage3 yang berada di CD Universal tidak cocok dengan arsitektur anda dan anda harus mendownload file stage3 yang sesuai
  • File stage3 yang berada di LiveCD Installer tidak cocok dengan arsitektur anda dan anda harus mendownload file stage3 yang sesuai
  • Anda perlu menginstal aplikasi jaringan tertentu untuk melakukan koneksi ke internet yang tidak tersedia di CD Universal atau LiveCD Installer, tetapi didukung oleh CD (mis. anda dapat melakukan koneksi ke internet menggunakan CD tetapi file yang anda perlukan tidak tersedia di CD)
  • Anda menginginkan bantuan dari jauh selama instalasi (dengan SSH atau percakapan langsung dengan IRC)

Apakah saya membutuhkan jaringan?

Untuk mengetahui apakah file stage3 untuk arsitektur anda tersedia dan anda sedang menggunakan CD Universal, lihatlah isi direktori /mnt/cdrom/stages dan periksa apakah salah satu stage di direktori tersebut cocok dengan arsitektur anda. Jika tidak, anda masih memiliki pilihan untuk menggunakan stage3 milik arsitektur yang kompatibel dengan arsitektur anda.

File stage3 yang dibangun untuk LiveCD Installer x86 telah dioptimasi untuk i686 atau yang lebih baru dan menggunakan NPTL. File stage3 yang dibangun untuk LiveCD Installer amd64 dioptimasi untuk penggunaan umum amd64 dan menggunakan NPTL.

Jika anda ingin menggunakan file stage3 yang dioptimasi untuk arsitektur anda dan file stage3 pilihan anda tidak tersedia, maka anda memerlukan koneksi internet untuk mendownload file stage3 yang sesuai.

Jadi, jika anda tidak memerlukan jaringan, anda dapat melewatkan sisa dari bab ini dan berlanjut dengan Mempersiapkan Disk. Jika anda memerlukannya, lanjutkan dengan seksi konfigurasi jaringan di bawah ini.

3.b. Deteksi Otomatis Jaringan

Mungkin telah berfungsi?

Jika sistem anda tersambung ke jaringan Ethernet dengan server DHCP, kemungkinan besar konfigurasi jaringan anda sudah diatur secara otomatis. Jika benar, anda seharusnya sudah bisa menggunakan berbagai perintah jaringan pada CD Instalasi seperti ssh, scp, ping, irssi, wget, links, dll.

Jika jaringan anda telah dikonfigurasi, maka perintah /sbin/ifconfig akan menampilkan beberapa antarmuka jaringan selain lo, seperti eth0:

Daftar Kode 2.1: Output /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

Opsional: Konfigurasi Proxy

Jika anda mengakses internet melalui proxy, anda mungkin perlu mengatur proxy tersebut sewaktu instalasi. Untuk mengatur proxy, anda dapat dengan mudah menetapkan variabel yang berisi informasi server proxy tersebut.

Pada kebanyakan kasus, anda hanya perlu menetapkan variabel dengan menggunakan nama host server tersebut. Sebagai contoh, kami menganggap proxy anda bernama proxy.gentoo.org dengan port 8080.

Daftar Kode 2.2: Menetapkan 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"

Jika proxy anda membutuhkan username dan password, anda harus menggunakan syntaks berikut ketika menetapkan variabel proxy:

Daftar Kode 2.3: Menambahkan username/password pada variabel proxy

http://username:password@proxy.gentoo.org:8080

Tes Koneksi Jaringan

Anda mungkin ingin mencoba untuk melakukan ping ke server DNS ISP anda (dapat ditemukan di /etc/resolv.conf) dan salah satu website pilihan anda, untuk memastikan bahwa paket-paket yang dikirimkan dapat mencapai jaringan (internet), resolusi nama DNS berfungsi, dll.

Daftar Kode 2.4: Tes Koneksi Jaringan

# ping -c 3 www.gentoo.org

Jika anda sudah bisa menggunakan jaringan anda, anda dapat melewati sisa dari seksi ini dan melanjutkan dengan Mempersiapkan Disk. Jika tidak, maka lanjutkan.

3.c. Konfigurasi Jaringan secara Otomatis

Jika koneksi jaringan anda tidak dapat langsung berfungsi, pada beberapa media instalasi, anda dapat menggunakan net-setup (untuk jaringan biasa atau wireless), pppoe-setup (untuk pengguna ADSL) atau pptp (untuk pengguna PPTP - hanya tersedia pada x86).

Jika media instalasi yang anda gunakan tidak memiliki utilitas-utilitas tersebut, atau jaringan anda masih belum berfungsi, lanjutkan ke Konfigurasi Jaringan secara Manual.

Default: Menggunakan net-setup

Cara paling mudah untuk menyiapkan koneksi jaringan anda jika tidak dapat dikonfigurasi secara otomatis adalah dengan menjalankan skrip net-setup:

Daftar Kode 3.1: Menjalankan skrip net-setup

# net-setup eth0

net-setup akan mengajukan beberapa pertanyaan tentang lingkungan jaringan anda. Setelah selesai, anda seharusnya akan mendapatkan koneksi jaringan yang berfungsi. Tes koneksi jaringan anda seperti yang dijelaskan di atas. Jika koneksi jaringan anda telah berfungsi, selamat! Anda sekarang sudah siap untuk menginstal Gentoo. Lewati sisa dari seksi ini dan lanjutkan dengan Mempersiapkan Disk.

Jika koneksi jaringan anda masih belum berfungsi, lanjutkan dengan Konfigurasi Jaringan secara Manual.

Alternatif: Menggunakan PPP

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 disediakan untuk mengkonfigurasi jaringan anda. Anda akan ditanyakan tentang perangkat 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 3.2: Menggunakan rp-pppoe

# pppoe-setup
# pppoe-start

Jika masih tidak berfungsi, periksa lagi apakah anda sudah mengetikkan username dan password anda dengan benar, dengan memeriksa file /etc/ppp/pap-secrets atau /etc/ppp/chap-secrets, dan pastikan kalau apakah anda sudah menggunakan perangkat jaringan yang tepat. Jika perangkat jaringan anda tidak ditemukan, anda harus memuat modulnya secara manual. Jika anda mendapatkan masalah ini, anda harus melanjutkan dengan Konfigurasi Jaringan secara Manual yang menjelaskan cara memuat modul perangkat jaringan.

Jika semua berjalan dengan lancar, lanjutkan dengan Mempersiapkan Disk.

Alternatif: Menggunakan PPTP

Catatan: Dukungan PPTP hanya tersedia untuk x86

Jika anda memerlukan dukungan PPTP, anda dapat menggunakan utilitas pptpclient yang disediakan di CD Instalasi. Tetapi, pertama-tama anda harus memastikan 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 3.3: Edit file /etc/ppp/chap-secrets

# nano -w /etc/ppp/chap-secrets

Lalu, ubah file /etc/ppp/options.pptp seperlunya:

Daftar Kode 3.4: Edit file /etc/ppp/options.pptp

# nano -w /etc/ppp/options.pptp

Setelah semuanya selesai, jalankan perintah pptp (diikuti dengan opsi-opsi yang tidak dapat anda tetapkan di options.pptp) untuk melakukan koneksi ke server:

Daftar Kode 3.5: Koneksi ke server dial-in

# pptp <server ip>

Sekarang, lanjutkan dengan Mempersiapkan Disk.

3.d. Konfigurasi Jaringan secara Manual

Memuat modul Jaringan yang Tepat

Ketika CD Instalasi boot, seluruh hardware akan dicoba untuk dikenali modul-modul kernel yang diperlukan akan dimuat untuk mendukungnya. Pada kebanyakan kasus, proses ini sukses. Tetapi, pada beberapa kasus lainnya, CD Instalasi mungkin gagal memuat modul kernel yang anda perlukan.

Jika net-setup atau ppoe-setup gagal, mungkin kartu jaringan anda tidak dapat ditemukan secara otomatis. Ini berarti anda harus memuat modul kernel yang diperlukan secara manual.

Untuk mengetahui modul-modul kernel apa saja yang kami sediakan untuk jaringan, gunakan perintah berikut:

Daftar Kode 4.1: Memeriksa modul-modul yang tersedia

# ls /lib/modules/`uname -r`/kernel/drivers/net

Jika anda menemukan driver bagi kartu jaringan anda, gunakan perintah modprobe untuk memuat modul tersebut:

Daftar Kode 4.2: Menggunakan modprobe untuk memuat modul kernel

(Sebagai contoh, kita muat modul pcnet32)
# modprobe pcnet32

Gunakan ifconfig untuk memeriksa apakah kartu jaringan anda sudah dikenal. Contoh output dari kartu jaringan yang dikenal adalah sebagai berikut:

Daftar Kode 4.3: Memeriksa 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)

Tetapi, jika anda menemukan error berikut, artinya kartu jaringan anda belum dikenal:

Daftar Kode 4.4: Memeriksa kartu jaringan, gagal

# ifconfig eth0
eth0: error fetching interface information: Device not found

Jika anda memiliki banyak kartu jaringan, kartu-kartu tersebut dinamai eth0, eth1, dll. Pastikan kartu jaringan yang ingin anda gunakan berfungsi baik dan jangan lupa untuk menggunakan nama yang tepat di seluruh dokumen ini. Kami menganggap bahwa kartu jaringan yang digunakan adalah eth0.

Anggaplah kartu jaringan sudah dikenal, sekarang anda dapat mencoba net-setup lagi atau adsl-setup (yang harusnya sukses), tetapi untuk para hardcore, kami akan menjelaskan bagaimana cara mengkonfigurasi jaringan secara manual.

Pilih salah satu seksi berikut ini sesuai dengan konfigurasi jaringan anda:

Menggunakan DHCP

DHCP (Dynamic Host Configuration Protocol) memungkinkan anda untuk menerima informasi jaringan (alamat IP, netmask, alamat broadcast, gateway, nameserver, dll.) secara otomatis. Cara ini hanya dapat berfungsi jika anda memiliki sebuah server DHCP di jaringan anda (atau jika provider anda menyediakan layanan DHCP). Untuk menggunakan DHCP untuk menerima informasi ini secara otomatis, gunakan dhcpcd:

Daftar Kode 4.5: Menggunakan dhcpcd

# dhcpcd eth0
Beberapa admin jaringan mengharuskan anda menggunakan
nama host dan nama domain yang disediakan oleh server DHCP
Dalam kasus ini, gunakan
# dhcpcd -HD eth0

Jika berhasil (coba ping beberapa server internet, mis. Google), maka anda sudah siap untuk melanjutkan. Lewati sisa dari seksi ini dan lanjutkan dengan Mempersiapkan Disk.

Mempersiapkan Akses Wireless

Catatan: Dukungan untuk perintah iwconfig hanya tersedia di CD Instalasi x86, amd64 dan ppc. Anda tetap dapat memfungsikan ekstensinya dengan mengikuti petunjuk dari proyek linux-wlan-ng.

Jika anda menggunakan kartu wirelss (802.11), anda mungkin perlu menetapkan pengaturan wireless anda sebelum melanjutkan. Untuk melihat pengaturan wireless pada kartu anda saat ini, anda dapat menggunakan perintah iwconfig. Output dari iwconfig mungkin seperti berikut:

Daftar Kode 4.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 wlan0 atau ra0, bukan eth0. Jalankan iwconfig tanpa parameter apapun untuk mengetahui nama yang benar.

Untuk kebanyakan pengguna, hanya ada dua pengaturan penting yang perlu diganti, yaitu ESSID (atau nama jaringan wireless) atau kunci WEP. Jika ESSID dan alamat Titik Akses yang ditampilkan adalah titik akses anda dan anda tidak menggunakan WEP, maka koneksi wireless anda sudah berfungsi. Jika anda perlu mengubah ESSID, atau menambahkan kunci WEP, anda dapat menjalankan perintah berikut:

Daftar Kode 4.7: Mengubah ESSID dan/atau menambah kunci WEP

(Perintah ini menetapkan "GentooNode" sebagai nama jaringan)
# iwconfig eth0 essid GentooNode

(Perintah ini menetapkan kunci hex WEP)
# iwconfig eth0 key 1234123412341234abcd

(Perintah ini menetapkan kunci ASCII - tambahkan awalan "s:")
# iwconfig eth0 key s:some-password

Anda lalu dapat memastikan pengaturan wireless anda lagi dengan menjalankan iwconfig. Setelah koneksi wireless anda berfungsi, anda dapat melanjutkan dengan mengatur opsi-opsi jaringan setingkat IP seperti yang dijelaskan di bagian selanjutnya (Mengerti Terminologi Jaringan) atau menggunakan utilitas net-setup seperti yang dijelaskan sebelumnya.

Mengerti Terminologi Jaringan

Catatan: Jika sudah anda mengetahui alamat IP, alamat broadcast, netmask dan nameserver, maka anda dapat melewati seksi ini dan melanjutkan dengan Menggunakan ifconfig dan route.

Jika semua cara di atas gagal, anda harus mengkonfigurasi jaringan anda secara manual. Jangan khawatir, cara ini sama sekali tidak sulit. bagaimanapun juga, anda harus mengerti beberapa terminologi jaringan, karena anda akan membutuhkannya untuk mengkonfigurasi jaringan anda sesuai dengan kebutuhan anda. Setelah anda selesai membaca bagian ini, anda akan mengetahui arti dari gateway, fungsi dari netmask, bagaimana cara menulis alamat broadcast, dan mengapa anda memerlukan nameserver.

Dalam sebuah jaringan, host dikenal melalui alamat IP (Internet Protocol) mereka. Alamat tersebut merupakan gabungan dari empat nomor-nomor antara 0 dan 255. Begitulah cara kita mengartikannya. Sebenarnya, alamat IP dibentuk oleh 32 bit (satu dan nol). Mari kita lihat sebuah contoh:

Daftar Kode 4.8: Contoh alamat IP

IP Address (numbers):   192.168.0.2
IP Address (bits):      11000000 10101000 00000000 00000010
                        -------- -------- -------- --------
                           192      168       0        2

Sebuah alamat IP dimiliki oleh satu host khusus dalam sebuah jaringan (semua host yang dapat anda akses memiliki sebuah alamat IP khusus). Untuk membedakan antara host dalam sebuah jaringan, dan host di luar jaringan, alamat IP dibagi menjadi dua bagian: bagian jaringan dan bagian host.

Pemisahan ini ditulis dengan netmask, 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 4.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

Dengan kata lain, 192.168.0.14 masih merupakan bagian dari jaringan contoh kita, tetapi 192.168.1.2 bukan.

Alamat broadcast merupakan alamat IP dengan bagian jaringannya sama dengan jaringan anda, tetapi hanya angka-angka satu pada bagian host-nya. Setiap host pada jaringan anda mengacu pada alamat IP ini. Alamat ini hanya digunakan untuk mem-broadcast paket-paket.

Daftar Kode 4.10: Alamat broadcast

IP-address:    192      168      0         2
            11000000 10101000 00000000 00000010
Broadcast:  11000000 10101000 00000000 11111111
               192      168      0        255
           +--------------------------+--------+
                     Network             Host

Agar anda dapat menjelajahi internet, anda harus mengetahui host mana yang membagi koneksi internet. Host ini dikenal sebagai gateway. Karena gateway merupakan host biasa juga, gateway juga memiliki sebuah alamat IP (mis. 192.168.0.1).

Sebelumnya, kami telah mengatakan bahwa setiap host memiliki alamat IP khusus. Untuk mengakses host ini dengan menggunakan namanya (bukan alamat IP), anda memerlukan sebuah layanan yang menerjemahkan nama (mis. dev.gentoo.org) ke alamat IP-nya (mis. 64.5.62.82). Nama layanan tersebut adalah "name service". Untuk menggunakannya, anda harus menentukan nameserver yang diperlukan di file /etc/resolv.conf.

Pada beberapa kasus, gateway anda juga bertindak sebagai nameserver. Jika tidak, anda perlu memasukkan nameserver yang disediakan oleh ISP anda.

Sebagai rangkuman, anda memerlukan informasi-informasi berikut sebelum melanjutkan:

Informasi Jaringan Contoh
Alamat IP 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

Menggunakan ifconfig dan route

Untuk menyiapkan jaringan, anda harus menjalankan tiga langkah berikut. Pertama, kita menetapkan sebuah alamat IP yang akan kita gunakan, dengan perintah ifconfig. Lalu, atur routing ke gateway dengan route. Dan terakhir, kita akan memasukkan alamat IP nameserver ke file /etc/resolv.conf.

Untuk menetapkan sebuah alamat IP, anda memerlukan alamat IP anda, alamat broadcast dan netmask. Lalu, jalankan perintah berikut, jangan lupa ganti ${IP_ADDR} dengan alamat IP anda, ${BROADCAST} dengan alamat broadcast anda dan ${NETMASK} dengan netmask anda:

Daftar Kode 4.11: Menggunakan ifconfig

# ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up

Sekarang, atur routing dengan route. Gantikan ${GATEWAY} dengan alamat IP gateway anda:

Daftar Kode 4.12: Menggunakan route

# route add default gw ${GATEWAY}

Lalu, buka file /etc/resolv.conf dengan editor favorit anda (pada contoh ini, nano):

Daftar Kode 4.13: Menulis /etc/resolv.conf

# nano -w /etc/resolv.conf

Sekarang, isi nameserver-nameserver anda seperti contoh di bawah. Jangan lupa ganti ${NAMESERVER1} dan ${NAMESERVER2} dengan alamat nameserver yang tepat:

Daftar Kode 4.14: Contoh /etc/resolv.conf

nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}

Ya, begitu saja. Sekarang cobalah jaringan anda dengan melakukan ping ke beberapa server internet (mis. Google). Jika berhasil, selamat! Anda sekarang telah siap untuk menginstal Gentoo. Lanjutkan ke Mempersiapkan Disk.

4. Mempersiapkan Disk

4.a. Pengenalan Block Device

Block Devices

Kita akan mulai dengan melihat lebih dalam lagi tentang aspek disk di Gentoo Linux dan Linux pada umumnya, termasuk filesystem Linux, partisi dan block device. Lalu, setelah anda mulai mengenal disk dan filesystem luar dan dalam, anda akan dipandu dalam proses pembuatan partisi dan filesystem untuk instalasi Gentoo Linux anda.

Pertama-tama, kami akan mengenalkan block device. Block device yang paling dikenal mungkin adalah device yang menunjukkan drive IDE pertama di sistem Linux, bernama /dev/hda. Jika sistem anda menggunakan drive SCSI, FireWire, USB atau SATA, maka drive pertama anda akan bernama /dev/sda. Drive yang lain dinamakan dengan abjad selanjutnya. Misalnya, disk IDE ketiga akan dinamakan /dev/hdc.

Block device di atas menunjukkan antarmuka abstrak ke disk. Program-program dapat menggunakan block device tersebut untuk berinteraksi dengan disk tanpa perlu khawatir apakah drive tersebut adalah IDE, SCSI, atau yang lain, juga dapat dengan mudah menuliskan data ke disk sebagai susunan blok-blok 512 byte yang dapat diakses secara acak.

Partisi

Walaupun secara teori anda dapat menggunakan seluruh disk anda untuk sistem Linux, hal ini hampir tidak pernah diterapkan. Tetapi, block device disk anda dipisah-pisahkan lagi menjadi block device yang lebih kecil, yang lebih mudah ditangani. Pada kebanyakan sistem, block device kecil tersebut dikenal sebagai partisi.

4.b. Merancang Skema Partisi

Skema Partisi Default

Jika anda tidak tertarik untuk merancang skema partisi anda sendiri, anda dapat menggunakan skema partisi yang kami gunakan di seluruh buku ini. Pilih layout filesystem yang paling cocok dengan komputer PowerPC yang anda gunakan.

Apple New World

Komputer Apple New World biasanya gampang dikonfigurasi. Partisi pertama pasti selalu Apple Partition Map. Partisi ini berisi layout disk. Anda tidak dapat menghapus partisi ini. Partisi kedua adalah partisi bootstrap. Partisi ini berisi filesystem HFS kecil (800k) yang menampung salinan bootloader Yaboot dan file konfigurasinya. Partisi ini tidak sama dengan partisi /boot seperti pada arsitektur lain. Setelah partisi boot, biasanya diikuti dengan filsystem Linux, seperti pada skema di bawah ini. Partisi swap adalah tempat data-data sementara ketika sistem anda kehabisan memori. Partisi root akan diisi dengan Gentoo. Jika anda ingin dualboot, anda dapat meletakkan partisi OSX di mana saja setelah partisi bootstrap untuk memastikan agar Yaboot dijalankan pertama kali.

Catatan: Anda mungkin akan menemukan partisi "Disk Driver" seperti Apple_Driver63, Apple_Driver_ATA, Apple_FWDriver, Apple_Driver_IOKit, Apple_Patches. Dahulu partisi ini digunakan untuk boot MacOS, jadi jika anda tidak memerlukannya, anda dapat menghapusnya dengan cara menginisialisasi disk dengan opsi i mac-fdisk. Ini akan menghapus seluruh isi disk! Jika anda ragu, jangan lakukan.

Catatan: Jika anda sudah pernah mempartisi disk anda dengan Apple's Disk Utility, anda akan menemukan ruang sebesar 128Mb di antara partisi yang ditetapkan Apple untuk penggunaan "akan datang". Anda boleh menghapus partisi ini.

Partisi Ukuran Filesystem Penjelasan
/dev/hda1 32k - Apple_partition_map
/dev/hda2 800k HFS Apple_Bootstrap
/dev/hda3 512Mb Swap Swap Linux
/dev/hda4 Sisa Disk ext3, reiserfs, xfs Root Linux

Apple Old World

Komputer Apple Old World sedikit lebih sulit dikonfigurasi. Partisi pertama akan selalu berupa Apple Partition Map. Partisi ini berisi layout disk. Anda tidak dapat menghapus partisi ini. Jika anda menggunakan BootX, konfigurasi di bawah ini menganggap MacOS terinstal di disk lain. Jika kasusnya tidak begini, anda akan menemukan partisi untuk "Apple Disk Drivers" seperti Apple_Driver63, Apple_Driver_ATA, Apple_FWDriver, Apple_Driver_IOKit, Apple_Patches dan instalasi MacOS. Jika anda menggunakan Quik, anda harus menciptakan partisi boot untuk menampung kernel, tidak seperti metode boot Apple. Setelah partisi boot, filesystem Linux biasa dapat anda tempatkan, seperti pada skema berikut ini. Partisi swap adalah partisi yang menampung data-data sementara ketika sistem anda kehabisan memori. Partisi root berisi filesystem yang digunakan oleh instalasi Gentoo.

Catatan: Jika anda menggunakan komputer OldWorld, anda harus tetap membiarkan MacOS. Layout di sini beranggapan MacOS terinstal di harddisk lain.

Partisi Ukuran Filesystem Penjelasan
/dev/hda1 32k Apple Partition Map
/dev/hda2 32Mb ext2 Partisi boot Quik (hanya untuk quik)
/dev/hda3 512Mb Swap Swap Linux
/dev/hda4 Sisa disk ext3, reiserfs, xfs Root Linux

Pegasos

Layout partisi Pegasos cukup sederhana jika dibandingkan dengan layout partisi Apple. Partisi pertama adalah partisi boot yang menampung kernel dan skrip OpemFirmware yang menampilkan menu ketika boot. Setelah partisi boot, anda dapat menempatkan filesystem Linux, seperti pada skema berikut ini. Partisi swap adalah partisi yang berisi data-data sementara ketika sistem anda kehabisan memori. Partisi root berisi filesystem tempat instalasi Gentoo.

Partisi Ukuran Filesystem Penjelasan
/dev/hda1 32Mb affs1 atau ext2 Partisi Boot
/dev/hda2 512Mb Swap Swap Linux
/dev/hda3 Sisa disk ext3, reiserfs, xfs Root Linux

IBM PReP (RS/6000)

IBM PowerPC Reference Platform (PReP) memerlukan partisi boot PReP kecil di partisi pertama disk, diikuti dengan partisi swap dan root.

Partisi Ukuran Filesystem Penjelasan
/dev/hda1 800k - Partisi Boot PReP (Tipe 0x41)
/dev/hda2 512Mb Swap Swap Linux (Tipe 0x82)
/dev/hda3 Sisa disk ext3, reiserfs, xfs Root Linux (Tipe 0x83)

Peringatan: parted dapat merubah ukuran partisi, termasuk HFS+. Sayangnya, anda mungkin akan mendapatkan masalah ketika merubah ukuran filesystem HFS+ terjournal, untuk itu nonaktifkan journalisasi di MacOS X sebelum melakukannya. Jangan lupa juga bahwa merubah ukuran partisi adalah proses yang berbahaya, tanggung resiko anda sendiri! Pastikan untuk selalu membuat cadangan data sebelum melakukannya!

Jika anda tertarik untuk mengetahui seberapa besar sebuah partisi harusnya, atau tentang berapa banyak partisi yang anda perlukan, baca terus seksi selanjutnya. Jika tidak, lanjutkan dengan Default: Menggunakan mac-fdisk (Apple) untuk mempartisi Disk atau Alternatif: Menggunakan parted (IBM/Pegasos) untuk mempartisi Disk.

Berapa Banyak dan Berapa Besar?

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, tapi pohon Portage saja memerlukan ruang sebesar 500Mb, belum termasuk berbagai macam source paket yang disimpan di dalamnya.

Seperti yang anda lihat, jumlah partisi sangat tergantung kepada 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 jika sebuah aplikasi secara terus-menerus menulis file-file ke sebuah partisi
  • Waktu untuk memeriksa filesystem lebih singkat, 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 (bit setuid diabaikan), noexec (bit executable diabaikan), dll.

Walaupun begitu, multi-partisi memiliki satu kelemahan utama: jika tidak dikonfigurasi dengan benar, anda akan mendapatkan sistem yang memiliki banyak ruang kosong di satu partisi dan kekurangan ruang di partisi yang lain. Untuk sistem SCSI dan SATA, terdapat batas partisi sebanyak 15.

4.c. Default: Menggunakan mac-fdisk (Apple) untuk mempartisi Disk

Sekarang, ciptakan partisi anda dengan mac-fdisk:

Daftar Kode 3.1: Menjalankan mac-fdisk

# mac-fdisk /dev/hda

Jika anda menggunakan Apple's Disk Utility untuk memberikan ruang bagi Linux, pertama hapus partisi yang telah anda ciptakan untuk memberikan ruang bagi instalasi anda. Gunakan d di mac-fdisk untuk menghapus partisi. Anda akan ditanyakan tentang nomor partisi yang ingin dihapus. Biasanya, partisi pertama pada komputer NewWorld (Apple_partition_map) tidak dapat dihapus. Jika anda ingin membersihkan disk, langsung saja inisialisasi ulang disk anda dengan menekan i. Ini akan menghapus seluruh isi disk, jadi gunakan dengan hati-hati.

Selanjutnya, ciptakan sebuah partisi Apple_Bootstrap dengan menggunakan b. Anda akan ditanyakan tentang blok awal. Masukkan nomor partisi kosong pertama anda diikuti dengan p. Misalnya 2p.

Catatan: Partisi ini bukanlah partisi /boot. Partisi ini sama sekali tidak digunakan oleh Linux; anda tidak perlu menempatkan filesystem apapun dan anda tidak boleh me-mount partisi ini. Pengguna Apple tidak memerlukan partisi tambahan untuk /boot.

Sekarang ciptakan sebuah partisi swap dengan menekan c. mac-fdisk akan menanyakan tentang blok awal partisi ini. Karena kita telah menggunakan 2 sebelumnya untuk menciptakan partisi Apple_Bootstrap, anda sekarang harus memasukkan 3p. Ketika anda ditanyakan tentang ukuran, masukkan 512M (atau berapapun yang anda inginkan -- minimal dianjurkan 512Mb, tetapi dua kali ukuran RAM biasanya bagus). Ketika ditanyakan tentang nama, masukkan swap.

Untuk menciptakan partisi root, tekan c diikuti dengan 4p untuk memilih blok pertama partisi root. Ketika ditanyakan tentang ukuran, masukkan 4p lagi. mac-fdisk akan menganggapnya sebagai "Gunakan seluruh ruang kosong yang tersedia". Ketika ditanyakan tentang nama, masukkan root.

Terakhir, simpan tabel partisi pada disk dengan menekan w dan q untuk keluar dari mac-fdisk.

Catatan: Pastikan agar semuanya sudah benar, anda harus menjalankan mac-fdisk sekali lagi dan memeriksa apakah semua partisi ada. Jika anda tidak melihat partisi yang telah anda ciptakan atau perubahan yang telah anda lakukan, anda harus menginisialisasi ulang partisi-partisi anda dengan menekan i di mac-fdisk. Catat bahwa hal ini akan menciptakan kembali map partisi dan menghapus seluruh partisi anda.

Sekarang setelah partisi-partisi anda tercipta, anda dapat melanjutkan ke Menciptakan Filesystem.

4.d. Menggunakan parted (Pegasos) untuk mempartisi Disk

parted, Partition Editor, sekarang dapat menangani partisi HFS+ yang digunakan oleh Mac OS dan Mac OS X. Dengan utilitas ini, anda dapat merubah ukuran partisi Mac anda dan meciptakan ruang untuk partisi Linux. Namun begitu, contoh berikut ini hanya menjelaskan partisi pada komputer Pegasos.

Untuk memulai, mari kita jalankan parted:

Daftar Kode 4.1: Menjalankan parted

# parted /dev/hda

Jika drive anda belum dipartisi, jalankan mklabel amiga untuk menciptakan sebuah disklabel.

Anda dapat mengetikkan print kapan saja untuk menampilkan tabel partisi saat ini. Jika anda berubah pikiran atau melakukan kesalahan, anda dapat menekan Ctrl-c untuk menutup parted.

Jika anda berniat untuk menginstal MorphOS pada komputer Pegasos anda, ciptakan sebuah filesystem affs1 dengan nama "BI0" (BI nol) pada awal drive. 32MB sudah lebih dari cukup untuk menyimpan kernel MorphOS. Jika anda menggunakan Pegasos I atau berniat untuk menggunakan reiserfs atau xfs, anda juga harus meletakkan kernel Linux anda di partisi ini (Pegasos II hanya dapat boot dari partisi ext2/3 atau affs1). Untuk menciptakan partisi ini, jalankan mkpart primary affs1 START END dimana START dan END harus digantikan dengan jumlah megabyte (mis.0 32) akan menciptakan sebuah partisi dengan ukuran 32 MB mulai dari 0MB sampai 32MB). Jika anda memilih untuk menciptakan filesystem ext2 atau ext3, gantikan affs1 dengan ex2 atau ext3 pada perintah mkpart

Anda harus menciptakan dua partisi untuk Linux, partisi root dan partisi swap. Jalankan mkpart primary START END untuk menciptakan setiap partisi, dengan mengganti START dan END dengan batas megabyte.

Pada dasarnya anda dianjurkan untuk menciptakan partisi swap sebesar dua kali ukuran RAM anda, tetapi paling tidak kami anjurkan 512Mb. Untuk menciptakan partisi swap, jalankan mkpart primary linux-swap START END dengan mengganti START dan END dengan batas megabyte.

Jika anda sudah selesai dengan parted, ketik quit.

4.e. Menciptakan Filesystem

Pendahuluan

Setelah semua partisi anda diciptakan, sekarang saatnya untuk menempatkan filesystem di partisi tersebut. Jika anda tidak tahu harus memilih filesystem apa dan puas dengan apa yang kami gunakan di buku pegangan ini, lanjutkan ke Menciptakan Filesystem di sebuah Partisi. Jika tidak, baca terus untuk mengetahui semua filesystem yang tersedia...

Filesystem?

Beberapa filesystem tersedia. ext2, ext3, ReiserFS dan XFS ditemukan stabil di arsitektur PPC.

ext2 adalah filesystem yang asli dan telah dicoba/dipakai tetapi tidak memiliki journal metadata, yang berarti waktu yang diperlukan untuk memeriksa filesystem ext2 kadang bisa sangat lama. Saat ini sudah ada beberapa filesystem journal yang dapat diperiksa konsistensinya dengan cepat dan karena itu lebih dipilih daripada partisi non-journal.

ext3 adalah filesystem ext2 versi journal, memiliki journal metadata untuk pemulihan sistem yang cepat dan juga beberapa tambahan modus journal seperti journal data terstruktur dan data penuh. ext3 menggunakan HTree index yang dapat mengingkatkan performa pada hampir semua situasi. Pendek kata, ext3 adalah filesystem yang sangat bagus dan dapat dihandalkan.

ReiserFS adalah filesystem berbasis B+tree yang memiliki performa keseluruhan yang bagus dan performanya melebihi ext2 dan ext3 pada saat menangani file kecil (file yang besarnya kurang dari 4k), sering kali melebihi dalam faktor 10x-15x. ReiserFS juga berskala sangat bagus dan memiliki journal metadata. ReiserFS telah mapan dan bagus untuk pemakaian umum atau kasus khusus seperti pembuatan filesystem yang besar, penggunaan file kecil yang banyak, file yang besar, dan direktori yang mengandung puluhan ribu file.

XFS adalah filesystem dengan journal metadata yang datang dengan fungsi-fungsi mapan dan teroptimasi untuk skalabilitas. Kami hanya menganjurkan penggunaan filesystem ini pada system Linux dengan disk SCSI kelas atas dan/atau disk fibre serta power supply yang tidak pernah terputus. Karena XFS meng-cache data yang lewat dengan agresif ke dalam RAM, data-data mungkin hilang pada saat program yang tidak dirancang dengan benar (program-program yang tidak mengambil langkah yang aman ketika melakukan penulisan ke disk, dan ada beberapa program seperti itu) berjalan dan sistem tiba-tiba mati.

Aktivasi Partisi Swap

mkswap adalah perintah untuk menginisialisasi partisi swap:

Daftar Kode 5.1: Menciptakan partisi swap

# mkswap /dev/hda3

Untuk mengaktifkan partisi swap, gunakan swapon:

Daftar Kode 5.2: Aktivasi partisi swap

# swapon /dev/hda3

Ciptakan dan aktifkan partisi swap sekarang, sebelum melanjutkan ke filesystem lain.

Menciptakan Filesystem di Partisi

Untuk menciptakan filesystem di sebuah partisi, anda dapat menggunakan beberapa utilitas yang tersedia untuk setiap filesystem:

Filesystem Perintah
ext2 mke2fs
ext3 mke2fs -j
reiserfs mkfs.reiserfs
xfs mkfs.xfs

Misalnya, untuk menciptakan filesystem ext3 di partisi root, (/dev/hda4 pada contoh kita), anda perlu menjalankan:

Daftar Kode 5.3: Menciptakan filesystem di partisi

# mke2fs -j /dev/hda4

Sekarang ciptakan filesystem pada partisi-partisi baru anda.

Catatan: Pada Pegasos II, partisi yang menampung kernel harus berupa ext2 atau ext3. Komputer NewWorld bisa boot dari partisi ext2, ext3, XFS, ReiserFS atau bahkan HFS/HFS+. Pada komputer OldWorld yang boot dengan BootX, kernel harus diletakkan di partisi HFS, tapi hal ini akan kita selesaikan ketika mengkonfigurasi bootloader.

4.f. Mount

Setelah partisi-partisi anda memiliki filesystemnya masing-masing, sekarang saatnya untuk me-mount partisi-partisi tersebut. Gunakan perintah mount. Sebagai contoh, kita akan menciptakan sebuah titik mount dan me-mount partisi root.

Daftar Kode 6.1: Mount partisi

# mkdir /mnt/gentoo
# mount /dev/hda4 /mnt/gentoo

Catatan: Jika anda ingin meletakkan /tmp di partisi yang terpisah, jangan lupa ganti perizinannya setelah proses mount dan ekstrak: chmod 1777 /mnt/gentoo/tmp. Ini berlaku juga untuk /var/tmp.

Kita juga perlu me-mount filesystem proc (penghubung kernel virtual) di /proc. Tetapi, pertama kita perlu menempatkan file-file kita di partisi.

Lanjutkan ke Instalasi File-file Instalasi Gentoo.

5. Menyalin File-file Instalasi Gentoo

5.a. Instalasi Stage

Menetapkan Tanggal/Waktu yang Benar

Sebelum anda melanjutkan, anda perlu memeriksa tanggal/waktu anda dan memperbaruinya. Pengaturan jam yang salah dapat menyebabkan hasil yang aneh nantinya!

Untuk memeriksa tanggal/waktu saat ini, jalankan date:

Daftar Kode 1.1: Memeriksa tanggal/waktu

# date
Fri Mar 29 16:21:18 UTC 2005

Jika tanggal/waktu yang ditampilkan salah, perbaruilah dengan sintaks date MMDDhhmmYYYY (Month, Day, hour, minute, dan Year). Untuk saat ini anda harus menggunakan waktu UTC. Anda dapat menentukan zona waktu anda nanti. Misalnya, untuk menetapkan tanggal menjadi 17 Agustus, 16:21 di tahun 2006:

Daftar Kode 1.2: Set tanggal/waktu UTC

# date 081716212006

5.b. Default: Menggunakan Stage dari CD Instalasi

Ekstrak Tarbal Stage

Stage di CD berada di direktori /mnt/cdrom/stages. Untuk menampilkan daftar stage yang tersedia, gunakan perintah ls:

Daftar Kode 2.1: Melihat stage yang tersedia

# ls /mnt/cdrom/stages

Jika sistem anda menampilkan pesan error, anda mungkin perlu me-mount CD-ROM anda dahulu:

Daftar Kode 2.2: Mount CD-ROM

# ls /mnt/cdrom/stages
ls: /mnt/cdrom/stages: No such file or directory
# mount /dev/cdroms/cdrom0 /mnt/cdrom
# ls /mnt/cdrom/stages

Sekarang masuklah ke titik mount Gentoo (biasanya /mnt/gentoo):

Daftar Kode 2.3: Masuk ke /mnt/gentoo

# cd /mnt/gentoo

Sekarang kita akan mengekstrak tarbal stage pilihan anda dengan tar. Pastikan anda menggunakan opsi-opsi yang sama (-xvjpf). Argumen v merupakan opsional dan tidak didukung oleh beberapa versi tar. Pada contoh berikut ini, kita mengekstrak tarbal stage stage3-ppc-2007.0.tar.bz2. Jangan lupa ganti nama tarbal tersebut dengan nama stage anda.

Daftar Kode 2.4: Mengekstrak tarbal stage

# tar xvjpf /mnt/cdrom/stages/stage3-ppc-2007.0.tar.bz2

Setelah stage terinstal, lanjutkan ke Instalasi Portage.

Mengekstrak Tarbal Stage

Sekarang ekstrak stage yang telah anda download ke sistem anda. Kita akan menggunakan tar, karena metode ini paling mudah:

Daftar Kode 2.5: Mengekstrak stage

# tar xvjpf stage3-*.tar.bz2

Pastikan anda menggunakan opsi-opsi yang sama (xvjpf). Opsi x merupakan singkatan dari Extract, opsi v adalah verbose untuk melihat apa saja yang sedang terjadi ketika proses ekstrak berlangsung (opsional), opsi j adalah Decompress with bz2, opsi p adalah Preserve permissions dan opsi f artinya ekstrak sebuah file, bukan standard input.

Setelah stage terinstal, lanjutkan ke Instalasi Portage.

5.c. Instalasi Portage

Instalasi Snapshot Portage

Sekarang anda harus menginstal snapshot Portage, yaitu kumpulan file yang menginformasikan Portage tentang software apa saja yang dapat anda instal, profile apa saja yang tersedia,dll

Ekstrak Snapshot Portage dari CD Instalasi

Untuk menginstal snapshot, lihatlah isi direktori /mnt/cdrom/snapshots/ untuk mengetahui snapshot apa saja yang tersedia:

Daftar Kode 3.1: Melihat isi /mnt/cdrom/snapshots

# ls /mnt/cdrom/snapshots

Sekarang ekstrak snapshot dengan perintah berikut ini. Lagi-lagi, pastikan anda menggunakan opsi yang sama dengan tar. Selain itu, opsi -C adalah huruf C besar, bukan c. Pada contoh berikut ini kita akan menggunakan portage-<tanggal>.tar.bz2 sebagai nama file snapshot. Pastikan untuk mengganti nama file dengan snapshot yang ada di CD Instalasi anda.

Daftar Kode 3.2: Ekstrak snapshot Portage

# tar xvjf /mnt/cdrom/snapshots/portage-<tanggal>.tar.bz2 -C /mnt/gentoo/usr

Menyalin File-file Source Code

Anda juga perlu menyalin semua file source code dari CD Instalasi Universal.

Daftar Kode 3.3: Menyalin file source code

# mkdir /mnt/gentoo/usr/portage/distfiles
# cp /mnt/cdrom/distfiles/* /mnt/gentoo/usr/portage/distfiles/

5.d. Konfigurasi Opsi Kompilasi

Pendahuluan

Untuk mengoptimasi Gentoo, anda dapat menetapkan beberapa variabel yang mengendalikan tingkah laku Portage. Variabel-variabel tersebut dapat ditetapkan sebagai variabel lingkungan (dengan perintah export) tetapi tidak permanen. Untuk menyimpan pengaturan anda, Portage menyediakan file /etc/make.conf, yaitu file konfigurasi Portage. File inilah yang akan kita edit sekarang.

Catatan: Daftar variabel lengkap yang diberi komentar bisa anda lihat di file /mnt/gentoo/etc/make.conf.example. Agar proses instalasi Gentoo anda sukses, anda hanya perlu menetapkan variabel-variabel yang dijelaskan di bawah ini.

Jalankan editor favorit anda (di dokumentasi ini, kita menggunakan nano) agar kita dapat mengubah variabel-variabel optimasi yang akan kita jelaskan.

Daftar Kode 4.1: Membuka /etc/make.conf

# nano -w /mnt/gentoo/etc/make.conf

Seperti yang anda lihat, file make.conf.example diurutkan dengan cara yang umum: baris-baris komentar dimulai dengan tanda "#", baris-baris lain menetapkan variabel dengan sintaks VARIABLE="isi". File make.conf menggunakan sintaks yang sama. Beberapa dari variabel tersebut akan kita diskusikan nanti.

Peringatan: Jangan mengubah isi variabel USE jika anda sedang menjalankan instalasi dengan stage3 dan GRP. Anda dapat mengubah variabel USE setelah anda selesai menginstal semua paket GRP yang anda inginkan.

CHOST

Variabel CHOST menentukan untuk arsitektur apa gcc harus mengkompilasi program. Variabel ini seharusnya telah ditetapkan dengan nilai yang benar. Jangan diedit karena bisa merusak sistem anda. Jika menurut anda variabel CHOST tidak benar, anda mungkin menggunakan tarbal stage3 yang salah.

CFLAGS dan CXXFLAGS

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 menetapkan flag-flag optimasi yang anda rasa akan membuat sistem anda lebih responsif secara umum. Jangan gunakan pengaturan-pengaturan percobaan ke variabel ini; optimasi yang terlalu tinggi dapat meneyebabkan program bertingkah laku aneh (crash, atau bahkan, tidak dapat berfungsi sama sekali).

Kami tidak dapat menjelaskan semua opsi-opsi optimasi. Jika anda ingin mengetahui opsi-opsi tersebut, baca Manual Online GNU atau halaman info gcc (info gcc -- hanya berfungsi di sistem Linux). Untuk opstimasi umum dan pengaturan khusus arsitektur, bacalah /etc/make.conf.example. File ini berisi banyak contoh dan informasi; jadi jangan lupa untuk membacanya juga.

Pengaturan pertama adalah flag -march= atau -mcpu=, yang menentukan nama arsitektur target. Opsi-opsi yang tersedia dijelaskan di file /etc/make.conf.example (sebagai komentar).

Pengaturan kedua adalah flag -O (O adalah huruf besar O, bukan nol), yang menentukan kelas optimasi gcc. Kelas-kelas yang tersedia adalah s (optimasi size/ukuran), 0 (nol - tidak dioptimasi), 1, 2 atau 3 untuk optimasi kecepatan (setiap kelas memiliki flag-flag yang sama dari kelas sebelumnya, dengan beberapa tambahan). -O2 adalah default yang dianjurkan.

Flag-flag optimasi populer lainnya adalah -pipe (gunakan pipe daripada file-file sementara untuk berkomunikasi antara berbagai stage sewaktu kompilasi). Opsi ini tidak memiliki pengaruh pada kode hasil kompilasi.

Kami ingatkan anda bahwa penggunaan -fomit-frame-pointer (tidak menyimpan frame pointer di register untuk fungsi-fungsi yang tidak memerlukannya) kemungkinan bisa berakibat serius ketika melakukan debugging pada beberapa aplikasi!

Ketika anda menetapkan variabel CFLAGS dan CXXFLAGS, anda sebaiknya menggabungkan beberapa flag optimasi. Nilai-nilai default yang diikutsertakan pada arsip stage3 sudah cukup bagus. Berikut ini hanyalah contoh:

Daftar Kode 4.2: Variabel CFLAGS dan CXXFLAGS

CFLAGS="-O2 -mcpu=powerpc -mtune=powerpc -fno-strict-aliasing -pipe"
# Gunakan pengaturan yang sama untuk kedua variabel
CXXFLAGS="${CFLAGS}"

MAKEOPTS

Pada variabel MAKEOPTS, anda dapat menentukan berapa banyak kompilasi paralel yang akan dijalankan ketika anda mengkonpilasi sebuah paket. Pilihan yang bagus adalah banyaknya CPU di sistem anda tambah satu, tetapi aturan ini tidaklah selalu sempurna.

Daftar Kode 4.3: MAKEOPTS untuk sistem 1 CPU umum

MAKEOPTS="-j2"

Ready, Set, Go!

Edit file /mnt/gentoo/etc/make.conf sesuai kebutuhan anda lalu simpan (untuk pengguna nano, tekan Ctrl-X). Anda sekarang dapat melanjutkan ke Chroot ke Sistem Dasar Gentoo.

6. Chroot ke dalam Sistem Dasar Gentoo

6.a. Chroot

Mount Filesystem /proc dan /dev

Mount filesystem /proc ke /mnt/gentoo/proc agar proses instalasi dapat menggunakan informasi dari kernel walaupun berada di lingkungan chroot, kemudian mount-bind filesystem /dev.

Daftar Kode 1.1: Mount /proc dan /dev

# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev

Memasuki Lingkungan Baru

Setelah semua partisi tercipta dan lingkungan dasar terinstal, sekarang saatnya untuk memasuki lingkungan instalasi baru kita dengan melakukan chroot ke dalamnya. Artinya, kita berpindah tempat dari lingkungan instalasi kita saat ini ke sistem instalasi anda (yaitu partisi-partisi yang baru diciptakan).

Proses chroot ini dilakukan dalam tiga langkah. Pertama, kita akan memindahkan root dari / (di media instalasi) ke /mnt/gentoo (di partisi anda) dengan perintah chroot. Lalu, kita akan menciptakan sebuah lingkungan baru dengan perintah env-update, yang akan menciptakan beberapa variabel lingkungan. Terakhir, kita akan memuat variabel-variabel tersebut dengan perintah source.

Daftar Kode 1.2: chroot ke lingkungan baru

# chroot /mnt/gentoo /bin/bash
# env-update
>> Regenerating /etc/ld.so.cache...
# source /etc/profile
# export PS1="(chroot) $PS1"

Selamat! Sekarang anda sudah berada di lingkungan Gentoo Linux anda. Tentu saja, ini masih jauh dari selesai, karena proses instalasi masih memiliki beberapa bagian lagi :-)

Menciptakan cache Portage

Anda telah menginstal pohon Portage, namun anda sekarang harus membangun cache Portage untuk mempercepat proses emerge yang nanti akan kita lakukan. emerge --metadata akan melakukannya untuk anda.

Daftar Kode 1.3: Menciptakan cache Portage

# emerge --metadata

6.b. Konfigurasi variabel USE

Apa itu variabel USE?

USE merupakan salah satu variabel yang paling mengagumkan yang disediakan oleh Gentoo untuk para penggunanya. Beberapa program dapat dikompilasi dengan atau tanpa dukungan tambahan terhadap beberapa hal. Sebagai contoh, beberapa program dapat dikompilasi dengan dukungan gtk, atau dengan dukungan qt. Program-program lainnya dapat dikompilasi dengan atau tanpa dukungan SSL. Beberapa program bahkan dapat dikompilasi dengan dukungan framebuffer (svgalib) sebagai ganti X11 (X-server).

Kebanyakan distro linux mengkompilasi paket-paketnya dengan dukungan sebanyak mungkin, sehingga memperbesar ukuran program dan waktu yang diperlukan untuk menjalankan program tersebut, dan juga banyak sekali dependensi yang diperlukan. Dengan Gentoo, anda dapat menentukan opsi-opsi apa saja yang harus dikompilasi pada sebuah paket. Di sinilah variabel USE berperan penting.

Di variabel USE, anda menentukan kata kunci yang tertuju pada opsi kompilasi. Sebagai contoh, ssl akan mengkompilasi dukungan ssl untuk program yang mendukungnya. -X akan menonaktifkan dukungan X-server (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.

Memodifikasi Variabel USE

Peringatan: Jangan memodifikasi variabel USE jika anda berencana untuk menggunakan paket jadi kami (kumpulan GRP). Anda dapat memodifikasi variabel USE setelah menginstal paket-paket yang anda inginkan.

Pengaturan USE default disimpan di file /etc/make.profile/make.defaults. Apa yang anda simpan di file /etc/make.conf akan dikalkulasi terhadap pengaturan default. Jika anda menambahkan sebuah kata kunci ke pengaturan USE, kata kunci tersebut akan ditambahkan ke daftar default. 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 sudah berada di daftar default). Jangan pernah mengubah sesuatu di dalam direktori /etc/make.profile; isi direktori ini akan ditimpa setiap kali anda memperbarui Portage!

Penjelasan lengkap tentang variabel USE bisa anda dapatkan dari bagian kedua Buku Pegangan Gentoo, Flag USE. Penjelasan lengkap tentang flag USE yang tersedia bisa anda dapatkan dari sistem anda di file /usr/portage/profiles/use.desc.

Daftar Kode 2.1: Melihat flag USE yang tersedia

# less /usr/portage/profiles/use.desc
(Anda dapat menggulung layar dengan tanda panah, keluar dengan menekan 'q')

Sebagai contoh, kita akan melihat pengaturan USE untuk sistem berbasis KDE dengan dukungan DVD, ALSA dan CD-Recording:

Daftar Kode 2.2: Membuka file /etc/make.conf

# nano -w /etc/make.conf

Daftar Kode 2.3: Pengaturan USE

USE="-gtk -gnome qt3 qt4 kde dvd alsa cdr"

7. Konfigurasi Kernel

7.a. Zona Waktu/Timezone

Pertama, anda harus memilih zona waktu agar sistem anda mengetahui posisinya. Carilah zona waktu anda di /usr/share/zoneinfo, lalu tetapkan di /etc/conf.d/clock. Hindari penggunaan zona waktu /usr/share/zoneinfo/Etc/GMT* karena namanya tidak mengindikasikan zona yang diharapkan. GMT-8 sesungguhnya adalah GMT+8.

Daftar Kode 1.1: Mengatur zona waktu

# ls /usr/share/zoneinfo
(Misalnya anda ingin menggunakan GMT)
# nano -w /etc/conf.d/clock
TIMEZONE="GMT"

7.b. Instalasi Source Kernel

Memilih Kernel

Inti/Jantung dari semua distro adalah kernel Linux. Kernel adalah sebuah lapisan antara program-program pengguna dengan perangkat keras sistem. Gentoo menyediakan beberapa kernel untuk para penggunanya. Sebuah daftar lengkap beserta penjelasannya bisa anda dapatkan di Panduan Kernel Gentoo.

Kami anjurkan anda untuk menggunakan paket gentoo-sources, yang berisi kernel 2.6 baru.

Daftar Kode 2.1: Instalasi source kernel

# emerge --usepkg gentoo-sources

Jika anda melihat isi direktori /usr/src, anda akan menemukan sebuah link simbolik (symlink) bernama linux yang menunjuk ke kernel gentoo-sources-2.6.19-r5. Versi anda mungkin berbeda, jadi ingatlah ini.

Daftar Kode 2.2: Melihat symlink kernel

# ls -l /usr/src/linux
lrwxrwxrwx    1 root     root           22  Mar 18 16:23 /usr/src/linux -> linux-2.6.19-gentoo-r5

Sekarang saatnya untuk mengkonfigurasi dan mengkompilasi kernel anda. Anda dapat menggunakan genkernel untuk melakukannya, yang akan menciptakan sebuah kernel generik seperti yang digunakan oleh CD Instalasi. Kami akan menjelaskan metode manual terlebih dahulu, karena metode ini merupakan cara terbaik untuk mengoptimasi sistem anda.

Jika anda ingin mengkonfigurasi kernel secara manual, lanjutkan ke Default: Konfigurasi Manual. Jika anda ingin menggunakan genkernel, anda sebaiknya membaca bagian Alternatif: Menggunakan genkernel.

7.c. Default: Konfigurasi Manual

Pendahuluan

Konfigurasi kernel secara manual sering dianggap sebagai prosedur 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. Kebanyakan informasi dapat ditemukan dengan menginstal pciutils (emerge --usepkg pciutils) yang berisi lspci. Anda juga bisa menggunakan lspci dari dalam lingkungan chroot. Biarkan saja peringatan pcilib (seperti pcilib: cannot open /sys/bus/pci/devices) yang dikeluarkan oleh lspci. Anda juga dapat menggunakan lspci dari lingkungan non-chroot. Hasilnya sama saja. Anda dapat juga menjalankan lsmod untuk melihat modul kernel apa saja yang digunakan oleh CD Instalasi (outputnya mungkin dapat memberi anda gambaran tentang apa saja yang harus diaktifkan). Tempat lain untuk mencari info tentang komponen yang perlu anda aktifkan adalah log pesan-pesan kernel setelah boot yang sukses. Jalankan dmesg untuk menampilkan pesan-pesan kernel.

Sekarang masuklah ke direktori source kernel anda, saatnya untuk mengkonfigurasi kernel. Mulailah dengan mengkonfigurasi kernel yang secara umum dapat boot pada komputer PowerPC 32-bit dengan menjalankan make pmac32_defconfig. Setelah konfigurasi default tercipta, jalankan make menuconfig yang akan menampilkan menu konfigurasi berbasis ncurses.

Daftar Kode 3.1: Menjalankan menuconfig

# cd /usr/src/linux
# make pmac32_defconfig
# make menuconfig

Anda akan menemukan beberapa seksi konfigurasi. Pertama-tama kami akan menjelaskan beberapa opsi yang harus anda aktifkan (jika tidak, Gentoo tidak dapat berfungsi dengan baik tanpa tweak tambahan).

Mengaktifkan opsi-opsi yang diperlukan

Pertama, aktifkan penggunaan "development and experimental code/drivers". Anda memerlukannya, jika tidak, beberapa kode/driver yang sangat penting tidak akan ditampilkan:

Daftar Kode 3.2: Memilih kode/driver eksperimental

Code maturity level options --->
  [*] Prompt for development and/or incomplete code/drivers

Sekarang masuklah ke File Systems dan aktifkan dukungan untuk filesystem yang anda gunakan. Jangan kompilasi dukungan tersebut sebagai modul, jika tidak, sistem Gentoo anda tidak akan dapat me-mount partisi-partisi anda. Selain itu, aktifkan juga /proc file system dan Virtual memory. Anda juga perlu mengaktifkan dukungan untuk partisi Amiga jika anda menggunakan Pegasos, atau dukungan partisi Macintosh jika anda menggunakan komputer Apple.

Daftar Kode 3.3: Memilih filesystem yang diperlukan

File systems --->
  Pseudo Filesystems --->
(/proc mungkin sudah diaktifkan dengan paksa oleh konfigurasi anda. Jika begitu, anda hanya akan melihat --- )
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)
  Partition Types --->
    [*] Advanced partition support
    [*] Amiga partition table support
    [*] Macintosh partition map support

(Aktifkan satu atau lebih opsi-opsi berikut sesuai kebutuhan sistem anda)
  <*> Reiserfs support
  <*> Ext3 journalling file system support
  <*> Second extended fs support
  <*> XFS filesystem support

Pengguna komputer NewWorld dan OldWorld harus mengaktifkan dukungan HFS. Pengguna OldWorld memerlukannya untuk menyalin kernel dari partis MacOS. Sedangkan pengguna NewWorld memerlukannya untuk mengkonfigurasi partisi Apple_Bootstrap:

Daftar Kode 3.4: Mengaktifkan dukungan HFS

File Systems --->
  Miscellaneous filesystems --->
    <M> Apple Macintosh file system support
    <M> Apple Extended HFS file system support

Jika anda menggunakan PPPoE untuk koneksi internet atau modem dial-up, anda memerlukan opsi-opsi berikut di kernel:

Daftar Kode 3.5: Memilih driver-driver PPPoE yang diperlukan

Device Drivers --->
  Network device support --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports

Kedua opsi kompresi tidak berbahaya tetapi tidak selalu diperlukan. Opsi PPP over Ethernet, hanya dapat digunakan oleh ppp jika dikonfigurasi untuk melakukan PPPoE modus kernel.

Jangan lupa tambahkan dukungan kernel untuk kartu jaringan anda! Komputer Apple baru biasanya menggunakan driver SunGEM. iMac lama biasanya menggunakan driver BMAC.

Daftar Kode 3.6: Memilih driver kartu jaringan

Device Drivers --->
  Network device support --->
    Ethernet (10 or 100Mbit) --->
      [*] Ethernet (10 or 100Mbit)
      <*>   Generic Media Independent Interface device support
      <*>   MACE (Power Mac ethernet) support
      <*>   BMAC (G3 ethernet) support
      <*>   Sun GEM support

Untuk saat ini, full kernel preemption masih belum stabil di PPC dan dapat mengakibatkan kegagalan kompilasi dan segfaults. Anda sangat dianjurkan untuk tidak menggunakan fitur ini. Voluntary Preemption dan No Forced Preemption sudah cukup aman untuk digunakan.

Daftar Kode 3.7: Memastikan opsi Preemptible Kernel tidak aktif

Kernel options --->
(Pilih Satu)
  Preemption Model 
    (X) No Forced Preemption (Server)
    (X) Voluntary Kernel Preemption (Desktop)

Jika anda boot dari Firmware, anda harus mengaktifkan opsi-opsi berikut ini. Jika anda tidak ingin mengaktifkannya di dalam kernel, anda harus mengikutsertakan modul-modul ini dan dependensinya di dalam sebuah initrd.

Daftar Kode 3.8: Mengaktifkan dukungan perangkat firewire ketika boot

Device Drivers --->
  IEEE 1394 (FireWire) support --->
    <*> IEEE 1394 (FireWire) support
    <*>   OHCI-1394 support
    <*>   SBP-2 support (Harddisks etc.)

Jika anda boot dari USB, anda harus mengaktifkan opsi-opsi berikut ini. Jika anda tidak ingin mengaktifkannya di dalam kernel, anda perlu mengikutsertakan modul-modul ini dan dependensinya di dalam intrd.

Daftar Kode 3.9: Mengaktifkan dukungan perangkat USB ketika boot

Device Drivers --->
  USB support --->
    <*> Support for Host-side USB
    <*>   OHCI HCD support
    <*>   USB Mass Storage support

Jangan nonaktifkan dukungan framebuffer kernel karena ini diperlukan untuk boot. Jika anda menggunakan chipset berbasis nVidia, anda harus menggunakan framebuffer Open Firmware. Jika anda menggunakan chipset berbasis ATi, anda harus memilih driver framebuffer yang sesuai dengan chipset anda (Mach64, Rage128 atau Radeon).

Daftar Kode 3.10: Memilih Driver Framebuffer

Device Drivers --->
  Graphics support --->
    <*> Support for frame buffer devices
    [*] Open Firmware frame buffer device support
    <*> ATI Radeon display support
    <*> ATI Rage128 display support
    <*> ATI Mach64 display support
    Console display driver support --->
      <*> Framebuffer Console support

Catatan: Jika anda memilih lebih dari satu driver frambuffer, kemungkinan framebuffer defaultnya adalah driver yang kurang optimal. Gunakan saja salah satu atau tentukan dengan menambahkan driver pilihan anda pada kernel ketika boot, dengan menambahkan baris video, misalnya video=radeonfb.

Setelah anda selesai mengkonfigurasi kernel, lanjutkan ke Kompilasi dan Instalasi.

Kompilasi dan Instalasi

Setelah kernel anda dikonfigurasi, sekarang saatnya untuk mengkompilasi dan menginstalnya. Keluarlah dari menu konfigurasi dan mulailah proses kompilasi:

Daftar Kode 3.11: Kompilasi kernel

# make && make modules_install

Setelah kernel selesai dikompilasi, salin imej kernel tersebut ke /boot seperti berikut ini. Jika anda membuat partisi boot terpisah seperti pada komputer Pegasos, pastikan agar /boot telah di-mount dengan benar. Jika anda menggunakan BootX, kita akan menyalin kernel nanti.

Yaboot dan BootX menggunakan kernel yang tidak dipadatkan, tidak seperti kebanyakan bootloader lain. Kernel yang tidak dipadatkan terletak di /usr/src/linux setelah kernel selesai dikompilasi. Jika anda menggunakan komputer Pegasos, firmware Pegasos membutuhkan sebuah kernel padat dengan nama zImage.chrp yang dapat anda temukan di /usr/src/linux/arch/powerpc/boot/images.

Daftar Kode 3.12: Instalasi kernel

# cd /usr/src/linux
Versi kernel anda mungkin berbeda
(Apple/IBM)
# cp vmlinux /bootkernel-2.6.19-gentoo-r5
(Pegasos)
# cp arch/powerpc/boot/images/zImage.chrp /boot/kernel-2.6.19-gentoo-r5

Sekarang lanjutkan dengan Instalasi Modul-modul.

7.d. Instalasi Modul-modul

Konfigurasi Modul

Anda harus mencantumkan modul-modul yang ingin anda muat secara otomatis di /etc/modules.autoload.d/kernel-2.6. Anda dapat menambahkan opsi tambahan pada modul jika diperlukan.

Untuk melihat modul-modul yang tersedia, jalankan perintah find berikut. Jangan lupa untuk menggantikan "<versi kernel>" dengan versi kernel yang baru saja anda kompilasi:

Daftar Kode 4.1: Melihat modul yang tersedia

# find /lib/modules/<versi kernel>/ -type f -iname '*.o' -or -iname '*.ko'

Misalnya, untuk memuat modul 3c59x.o secara otomatis, edit file /etc/modules.autoload.d/kernel-2.6 dan menuliskan nama modul tersebut di dalamnya.

Daftar Kode 4.2: Edit /etc/modules.autoload.d/kernel-2.6

# nano -w /etc/modules.autoload.d/kernel-2.6

Daftar Kode 4.3: /etc/modules.autoload.d/kernel-2.6

3c59x

Lanjutkan proses instalasi dengan bab Konfigurasi Sistem.

7.e. Alternatif: Menggunakan genkernel

Setelah source kernel anda terinstal, sekarang saatnya untuk mengkompilasi kernel anda dengan skrip genkernel kami untuk membangun sebuah kernel secara otomatis. genkernel bekerja dengan mengkonfigurasi sebuah kernel yang hampir sama dengan cara kernel CD Instalasi kami dikonfigurasi. Ini artinya, jika anda menggunakan genkernel untuk membangun kernel anda, sistem anda akan secara umum mengenali semua perangkat keras anda pada saat boot, seperti yang dilakukan oleh CD Instalasi kami. Karena genkernel tidak memerlukan konfigurasi kernel secara manual, cara ini adalah cara yang ideal bagi para pengguna yang belum terbiasa mengkompilasi kernel mereka sendiri.

Sekarang, mari kita lihat cara menggunakan genkernel. Pertama, emerge genkernel:

Daftar Kode 5.1: Emerge genkernel

# emerge --usepkg genkernel

Kemudian, salin konfigurasi kernel yang digunakan oleh CD Instalasi ke lokasi tempat genkernel mencari konfigurasi default kernel:

Daftar Kode 5.2: Menyalin Konfigurasi kernel CD Instalasi

# zcat /proc/config.gz > /usr/share/genkernel/ppc/kernel-config-2.6

Jika anda menggunakan Firewire atau USB untuk boot, anda harus menambahkan modul-modulnya ke initrd. Edit /usr/share/genkernel/ppc/modules_muat dan gantikan MODULES_FIREWIRE="ieee1394 ohci1394 sbp2" untuk dukungan firewire atau MODULES_USB="usbcore ohci-hcd ehci-hcd usb-storage" untuk dukungan USB.

Sebelum mengkompilasi kernel, and perlu sedikit mengadakan perubahan pada fstab. Sisa dari isi file fstab akan kita lengkapi pada langkah berikutnya nanti, jadi anda tidak perlu memikirkan tentang detilnya sekarang. Jika anda tidak menciptakan partisi boot terpisah (BUKAN bootstrap), hapus baris yang berisi /boot dari /etc/fstab. Hal ini perlu dilakukan pada hampir semua komputer Apple.

Daftar Kode 5.3: Menghapus baris /boot dari /etc/fstab pada komputer tanpa partisi boot

# nano -w /etc/fstab
Hapus baris ini
/dev/BOOT   /boot   ext2    noauto,noatime  1 2

Sekarang, kompilasilah kernel anda dengan menjalankan genkernel --genzimage all. Untuk Pegasos, kita harus menggunakan konfigurasi yang berbeda dan menciptakan zImage, bukannya vmlinux yang digunakan di komputer Apple. Perlu anda ketahui juga, karena genkernel mengkompilasi sebuah kernel yang mendukung hampir semua perangkat keras, kompilasi ini akan berjalan cukup lama!

Catat juga, jika partisi boot anda tidak menggunakan ext2 atau ext3 sebagai filesystem-nya, anda mungkin harus mengkonfigurasi kernel secara manual dengan perintah genkernel --menuconfig all dan menambahkan dukungan untuk filesystem anda di dalam kernel (bukan sebagai modul). Pengguna EVMS2 atau LVM2 mungkin perlu menambahkan argumen --evms2 atau --lvm2.

Daftar Kode 5.4: Menjalankan genkernel

# genkernel all

Daftar Kode 5.5: Menjalankan genkernel pada Pegasos

# genkernel --genzimage --kernel-config=/usr/share/genkernel/ppc/Pegasos all

Setelah genkernel selesai, sebuah kernel, kumpulan lengkap modul, dan initial root disk (initrd) akan diciptakan. Kita akan menggunakan kernel dan initrd tersebut pada saat mengkonfigurasi bootloader nantinya. Catat nama kernel dan initrd anda karena anda akan memerlukannya nanti ketika menulis file konfigurasi bootloader. initrd akan dijalankan secara otomatis pada saat boot untuk melakukan pengenalan perangkat keras (hardware) (seperti CD Instalasi) sebelum sistem "asli" dijalankan. Jangan lupa untuk menyalin argumen boot yang diperlukan karena penting untuk mendapatkan boot yang sukses dengan genkernel.

Daftar Kode 5.6: Memeriksa nama kernel dan initrd yang baru diciptakan

Catatan, versi kernel anda mungkin berbeda
# ls /boot/kernel-genkernel-ppc-2.6.19-gentoo-r5
# /boot/initramfs-genkernel-ppc-2.6.19-gentoo-r5

Sekarang lanjutkan dengan Konfigurasi Sistem.

8. Konfigurasi Sistem

8.a. Informasi Filesystem

Apa itu fstab?

Di Linux, semua partisi yang digunakan oleh sistem harus terdaftar di /etc/fstab. File ini berisi titik mount dari semua partisi tersebut (yang dapat ditemui di struktur filesystem), bagaimana cara partisi dimount dan dengan opsi khusus apa (otomatis atau tidak, dapatkah user me-mount, dll.).

Menulis /etc/fstab

/etc/fstab menggunakan sebuah sintaks khusus. Setiap baris memiliki 6 bagian, yang dipisahkan dengan spasi (spasi, tab, atau keduanya). Setiap bagian memiliki artinya sendiri:

  • Bagian pertama menunjukkan partisi yang dijelaskan (path ke file device)
  • Bagian kedua menunjukkan titik mount tempat partisi tersebut di-mount
  • Bagian ketiga menunjukkan filesystem yang digunakan oleh partisi
  • Bagian empat menunjukkan opsi mount yang digunakan oleh mount ketika me-mount partisi. Karena setiap filesystem memiliki opsi-opsi mount mereka sendiri, anda dianjurkan untuk membaca manual mount (man mount) untuk mendapatkan daftar lengkap. Opsi-opsi mount dipisahkan dengan koma.
  • Bagian kelima digunakan oleh dump untuk menentukan apakah partisi harus 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 menulis file /etc/fstab anda sendiri:

Daftar Kode 1.1: Membuka /etc/fstab

# nano -w /etc/fstab

Tambahkan aturan yang sesuai dengan skema partisi anda juga baris untuk /proc, tmpfs, drive CD-ROM, dan tentu saja, untuk partisi atau drive lain yang anda miliki.

Sekarang gunakan contoh di bawah ini untuk menulis file /etc/fstab anda sendiri:

Catatan: Ada beberapa perbedaan penting di antara beberapa jenis komputer PPC. Pastikan anda mengadaptasi contoh ini untuk sistem anda.

Daftar Kode 1.2: Contoh lengkap /etc/fstab

/dev/hda4   /            ext3    noatime              0 1
/dev/hda3   none         swap    sw                   0 0

proc        /proc        proc    nodev,nosuid,noexec  0 0
shm         /dev/shm     tmpfs   nodev,nosuid,noexec  0 0

/dev/cdrom  /mnt/cdrom   auto    noauto,user          0 0

Opsi auto memerintahkan mount untuk menebak filesystem (dianjurkan untuk media yang dapat dipindah-pindah karena bisa berisi berbagai filesystem) dan opsi user mengizinkan user non-root untuk me-mount CD.

Untuk meningkatkan performa, banyak pengguna yang menambahkan opsi noatime, yang akan menghasilkan sistem yang lebih kencang karena waktu akses tidak didaftarkan (biasanya anda tidak memerlukannya).

Periksa kembali file /etc/fstab anda, simpan dan keluarlah untuk melanjutkan ke bagian selanjutnya.

8.b. Informasi Jaringan

Hostname, Domainname, dll.

Salah satu pilihan yang harus dibuat oleh pengguna adalah memberi nama PC mereka. Hal ini tampaknya mudah, tetapi banyak pengguna menemui kesulitan untuk menemukan nama yang tepat bagi komputer mereka. Untuk mempersingkat waktu - nama yang anda pilih dapat diubah-ubah nantinya - anda boleh saja memberi nama sistem anda tux dan nama domainnya homenetwork.

Kita gunakan nama-nama tersebut pada contoh berikut ini. Pertama kita tetapkan nama host:

Daftar Kode 2.1: Menetapkan nama host

# nano -w /etc/conf.d/hostname

(Isi variabel HOSTNAME dengan nama host anda)
HOSTNAME="tux"

Kemudian kita tetapkan nama domain:

Daftar Kode 2.2: Menetapkan nama domain

# nano -w /etc/conf.d/net

(Isi variabel dns_domain dengan nama domain anda)
dns_domain_lo="homenetwork"

Catatan: Jika anda tidak menetapkan nama domain, anda dapat menghapus pesan "This is hostname.(none)" pada layar login anda dengan mengedit /etc/issue. Hapus saja kata .\O dari file tersebut.

Jika anda memiliki domain NIS (jika anda tidak mengetahuinya berarti anda tidak memiliki), anda juga harus menetapkannya:

Daftar Kode 2.3: Menetapkan nama domain NIS

# nano -w /etc/conf.d/net

(Isi variabel nis_domain dengan nama domain NIS anda)
nis_domain_lo="my-nisdomain"

Konfigurasi Jaringan

Sebelum anda merasa "Hey, kita telah melakukannya", anda seharusnya ingat bahwa jaringan yang kita atur pada awal proses instalasi Gentoo ditujukan untuk instalasi. Sekarang, anda akan mengkonfigurasi jaringan untuk sistem Gentoo anda secara permanen.

Catatan: Penjelasan lebih rinci tentang jaringan, termasuk topik-topik lanjutan seperti bonding, bridging, 802.1Q VLANs atau jaringan nirkabel (wireless) terdapat di seksi Konfigurasi Jaringan Gentoo.

Seluruh informasi jaringan dikumpulkan di file /etc/conf.d/net. File tersebut menggunakan sintaks yang sederhana tetapi tidak mudah dimengerti jika anda tidak tahu cara mengatur jaringan secara manual. Jangan takut, kami akan menjelaskan semuanya. Contoh-contoh yang diberi komentar untuk berbagai macam konfigurasi terdapat di /etc/conf.d/net.example.

DHCP digunakan secara default dan tidak memerlukan konfigurasi lanjutan.

Jika anda harus mengkonfigurasi sendiri 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: Membuka file /etc/conf.d/net

# nano -w /etc/conf.d/net

Anda akan melihat file berikut ini:

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 :]!).

Untuk menetapkan alamat IP, netmask dan gateway, tambahkan variabel config_eth0 dan routes_eth0:

Daftar Kode 2.6: Menetapkan 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 via 192.168.0.1" )

Untuk menggunakan DHCP dan opsi khusus DHCP, tambahkan config_eth0 dan dhcp_eth0:

Daftar Kode 2.7: Mendapatkan alamat IP untuk eth0 secara otomatis

config_eth0=( "dhcp" )
dhcp_eth0="nodns nontp nonis"

Bacalah /etc/conf.d/net.example untuk mengetahui semua opsi yang tersedia.

Jika anda memiliki banyak antarmuka jaringan, ulangi langkah-langkah di atas untuk config_eth1, config_eth2, dll.

Sekarang simpan konfigurasi anda kemudian keluar.

Menjalankan jaringan secara otomatis ketika boot

Agar antarmuka jaringan anda diaktifkan ketika boot, anda harus menambahkannya ke runlevel default.

Daftar Kode 2.8: Menambahkan net.eth0 ke runlevel default

# rc-update add net.eth0 default

Jika anda memiliki banyak antarmuka jaringan, anda harus menciptakan skrip init net.eth1, net.eth2 dll, yang sesuai. Anda dapat menggunakan ln untuk melakukannya:

Daftar Kode 2.9: Menciptakan skrip init tambahan

# cd /etc/init.d
# ln -s net.lo net.eth1
# rc-update add net.eth1 default

Menulis informasi jaringan

Sekarang anda harus memberikan informasi tentang jaringan anda kepada Linux. Informasi ini ditetapkan di file /etc/hosts dan membantu proses penerjemahan nama host ke alamat IP dari host yang tidak dapat dikenali oleh nameserver anda. Anda perlu mencantumkan sistem anda. Anda juga mungkin ingin mencantumkan sistem lain yang ada di jaringan anda jika anda ingin menggunakan sistem DNS internal.

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 tetap (static) untuk dicantumkan dengan cara
seperti ini.)
192.168.0.5   jenny.homenetwork jenny
192.168.0.6   benny.homenetwork benny

Simpan dan keluarlah dari editor untuk melanjutkan

Jika anda tidak memiliki PCMCIA, anda dapat melanjutkan ke Informasi Sistem. Pengguna PCMCIA sebaiknya membaca bagian berikutnya tentang PCMCIA.

Opsional: Memfungsikan PCMCIA

Pengguna PCMCIA pertama-tama harus menginstal paket pcmciautils.

Daftar Kode 2.12: Instalasi pcmciautils

# USE="-X" emerge pcmciautils

8.c. Informasi Sistem

Password Root

Pertama-tama, kita tetapkan password root:

Daftar Kode 3.1: Menetapkan password root

# passwd

Jika anda ingin agar root dapat login melalui konsol serial, tambahkan tts/0 ke /etc/securetty:

Daftar Kode 3.2: Menambahkan tts/0 ke /etc/securetty

# echo "tts/0" >> /etc/securetty

Informasi sistem

Gentoo menggunakan file /etc/rc.conf untuk konfigurasi umum sistem. Bukalah file /etc/rc.conf dan nikmati semua komentar-komentar di file tersebut :-)

Daftar Kode 3.3: Membuka /etc/rc.conf

# nano -w /etc/rc.conf

Setelah anda selesai mengkonfigurasi /etc/rc.conf, simpanlah kemudian keluar.

Seperti yang dapat anda lihat, file ini berisi banyak komentar yang dapat membantu anda ketika mentapkan 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. Editlah file ini untuk mengkonfigurasi keyboard anda.

Daftar Kode 3.4: Membuka /etc/conf.d/keymaps

# nano -w /etc/conf.d/keymaps

Perhatikan dengan baik variabel KEYMAP: jika anda memilih KEYMAP yang salah, anda akan mendapatkan tampilan yang aneh ketika anda mengetik.

Catatan: PPC biasanya menggunakan keymap x86. Jika anda ingin menggunakan keymap ADB pada saat boot, anda harus mengaktifkan pengiriman keycode ADB di kernel dan menetapkan keymap mac/ppc di /etc/conf.d/keymaps.

Setelah selesai mengkonfigurasi /etc/conf.d/keymaps, simpanlah kemudian keluar.

Gentoo menggunakan /etc/conf.d/clock untuk mengatur opsi jam. Editlah file ini sesuai kebutuhan anda.

Daftar Kode 3.5: Membuka /etc/conf.d/clock

# nano -w /etc/conf.d/clock

Jika jam hardware anda tidak menggunakan UTC, anda harus menambahkan CLOCK="local" di file ini. Jika tidak, anda akan mendapatkan jam yang tidak stabil.

Setelah anda selesai mengkonfigurasi /etc/conf.d/clock, simpanlah kemudian keluar.

Lanjutkan dengan Instalasi Utilitas Sistem yang Diperlukan.

9. Instalasi Utilitas Sistem yang Diperlukan

9.a. Logger Sistem

Ada beberapa tool yang tidak terdapat di stage3 karena sebagian paket yang lain memiliki kegunaan yang sama. Sekarang anda bebas memilih tool mana yang ingin anda instal.

Tool pertama yang perlu anda pilih adalah tool yang menyediakan fasilitas logging sistem. Unix dan Linux memiliki sejarah yang bagus sekali tentang kemampuan logging -- jika anda mau, anda dapat me-log segala sesuatu yang berlangsung 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-paket yang tersedia 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 dan masukkan ke dalam runlevel default menggunakan perintah rc-update. Contoh berikut ini 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

9.b. Opsional: Daemon Cron

Berikutnya adalah daemon cron. Walaupun ini merupakan opsional dan tidak diperlukan oleh sistem anda, akan lebih bijaksana jika anda menginstalnya. Tetapi, apa itu daemon cron? Daemon cron menjalankan perintah-perintah yang telah dijadwalkan. Tool ini sangat berguna jika anda perlu menjalankan beberapa program secara teratur (mis. per hari, per minggu, atau per bulan).

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 daemon cron

# emerge vixie-cron
# rc-update add vixie-cron default

9.c. Opsional: Indexing File

Jika anda ingin meng-index file-file sistem anda agar anda dapat menemukannya dengan mudah menggunakan tool locate, anda harus menginstal sys-apps/slocate.

Daftar Kode 3.1: Instalasi slocate

# emerge slocate

9.d. Tool Filesystem

Tergantung pada filesystem yang anda gunakan, anda perlu menginstal tool filesystem yang diperlukan (untuk memeriksa integritas filesystem, menciptakan filesystem tambahan, dll.).

Tabel berikut berisi nama-nama tool yang perlu anda instal jika anda menggunakan filesystem tertentu. Namun, tidak semua filesystem tersedia untuk setiap arsitektur.

File System Tool Perintah Instalasi
XFS xfsprogs emerge xfsprogs
ReiserFS reiserfsprogs emerge reiserfsprogs
JFS jfsutils emerge jfsutils

Jika anda pengguna EVMS, anda perlu menginstal evms.

Daftar Kode 4.1: Instalasi tool EVMS

# USE="-gtk" emerge evms

USE="-gtk" akan mencegah instalasi dependensi. Jika anda ingin mengaktifkan tool grafikal evms, anda bisa mengkompilasi ulang evms nanti.

Opsional: Utilitas RAID untuk hardware IBM

Jika anda menggunakan SCSI RAID pada sistem berbasis POWER5, anda mungkin perlu menginstal iprutils yang dapat membantu anda bekerja dengan array disk RAID, mengetahui status disk di array, dan meng-update microcode, dan masih memiliki banyak kegunaan lainnya.

Daftar Kode 4.2: Instalasi iprutils

# emerge iprutils

9.e. Utilitas Jaringan

Jika anda tidak memerlukan tool lain yang berhubungan dengan jaringan (mis. ppp atau klien dhcp), lanjutkan ke Konfigurasi Bootloader.

Opsional: Instalasi Klien DHCP

Jika anda ingin agar Gentoo mendapatkan alamat IP secara otomatis untuk antarmuka jaringan anda, maka anda perlu menginstal dhcpcd (atau klien DHCP yang lain di sistem anda. Jika anda tidak melakukannya sekarang, anda mungkin tidak akan dapat terhubung ke internet setelah instalasi selesai!

Daftar Kode 5.1: Instalasi dhcpcd

# emerge dhcpcd

Opsional: Instalasi Klien PPPoE

Jika anda memerlukan ppp untuk melakukan koneksi ke internet, anda perlu menginstalnya.

Daftar Kode 5.2: Instalasi ppp

# emerge ppp

Sekarang lanjutkan ke Konfigurasi Bootloader.

10. Konfigurasi Bootloader

10.a. Memilih Bootloader

Pendahuluan

Sekarang setelah kernel anda terkonfigurasi dan dikompilasi, anda membutuhkan bootloader untuk menjalankan instalasi Linux anda. bootloader yang anda gunakan tergantung kepada komputer PPC yang anda miliki.

Jika anda menggunakan komputer Apple atau IBM NewWorld, anda harus menggunakan yaboot. Komputer Apple OldWorld memiliki dua pilihan, BootX (dianjurkan) dan quik. Pegasos tidak memerlukan bootloader, tetapi anda perlu menginstal bootcreator untuk menciptakan menu boot SmartFirmware.

10.b. Default: Menggunakan yaboot

Pendahuluan

Penting: yaboot hanya dapat digunakan pada sistem Apple dan IBM NewWorld!

Untuk menemukan perangkat boot, yaboot perlu mengakses node perangkat yang diciptakan oleh udev ketika startup dan filesystem sysfs. Kedua filesystem ini terletak di /dev dan /sys. Untuk melakukannya, anda perlu melakukan "bind mount" filesystem ini dari root CD Instalasi ke titik mount /dev dan /sys di dalam chroot. Jika anda sudah melakukannya, anda tidak perlu mengulanginya lagi.

Daftar Kode 2.1: mount-bind filesystem perangkat dan sysfs

# exit  # keluar dari chroot
# mount -o bind /dev /mnt/gentoo/dev
# mount -o bind /sys /mnt/gentoo/sys
# chroot /mnt/gentoo /bin/bash
# /usr/sbin/env-update && source /etc/profile 

Untuk menyiapkan yaboot, anda dapat menggunakan yabootconfig untuk menciptakan file konfigurasi secara otomatis. Jika anda menginstal Gentoo pada sistem G5 (dimana yabootconfig tidak selalu berfungsi), atau jika anda berencana untuk boot dari firmware atau USB, anda harus mengkonfigurasi yaboot secara manual.

Catatan: Anda harus mengedit sendiri yaboot.conf jika anda menggunakan genkernel, walaupun yabootconfig digunakan. Bagian yang mencantumkan imej kernel pada yaboot.conf harus diubah seperti berikut (dengan menggunakan vmlinux dan initrd sebagai nama imej kernel dan initrd):

Daftar Kode 2.2: Menambahkan argumen boot genkernel ke yaboot.conf

###########################################################
## Bagian ini dapat digandakan jika anda memiliki lebih dari satu kernel atau
## kumpulan opsi-opsi boot - gantikan imej dan initrd dengan nama kernel dan
## intrd anda.
###########################################################
image=/boot/kernel-genkernel-ppc-2.6.19-gentoo-r5
  label=Linux
  root=/dev/ram0
  partition=3
  initrd=/boot/intramfs-genkernel-ppc-2.6.19-gentoo-r5

  # Anda dapat menambahkan argumen kernel lain seperti
  # rootdelay=10 for a USB/Firewire Boot
  append="real_root=/dev/hda3 init=/linuxrc"
  read-only
##########################################################

Default: Menggunakan yabootconfig

yabootconfig akan mencari partisi di sistem anda dan mengatur kombinasi dual atau tripel boot dengan Linux, Mac OS, dan Mac OS X.

Untuk menggunakan yabootconfig, drive anda harus memiliki sebuah partisi Apple_Bootstrap, dan file /etc/fstab harus sudah terkonfigurasi dengan partisi-partisi Linux anda. Kedua langkah ini seharusnya sudah dilakukan sebelumnya, tetapi periksa kembali /etc/fstab sebelum melanjutkan. Sekarang, pastikan anda telah menginstal yaboot.

Daftar Kode 2.3: Instalasi yaboot dari GRP

# emerge --usepkg yaboot

Sekarang keluar dari chroot dan jalankan yabootconfig --chroot /mnt/gentoo. Pertama-tama, program ini akan berjalan dan mengkonfirmasikan lokasi dari partisi Apple_Bootstrap. Jika anda menggunakan skema partisi kami, partisi Apple_Bootstrap anda adalah /dev/hda2. Tekan Y jika benar. Jika tidak, periksa kembali file /etc/fstab. yabootconfig akan memeriksa sistem anda, membuat file /etc/yaboot.conf dan menjalankan mkofboot bagi anda. mkofboot digunakan untuk memformat partisi bootstrap, dan menginstal file konfigurasi yaboot ke dalamnya. Setelah selesai, masuk kembali ke lingkungan chroot.

Daftar Kode 2.4: Memasuki kembali chroot

# chroot /mnt/gentoo /bin/bash
# /usr/sbin/env-update && source /etc/profile

Anda harus memeriksa lagi isi dari file /etc/yaboot.conf. Jika anda membuat perubahan pada file /etc/yaboot.conf (mis. pengaturan OS default/boot), anda harus menjalankan ybin -v lagi untuk menerapkan perubahan anda ke partisi Apple_Bootstrap.

Sekarang lanjutkan ke Reboot Sistem.

Alternatif: Konfigurasi Manual yaboot

Pertama, instal yaboot:

Daftar Kode 2.5: Instalasi yaboot dari GRP

# emerge --usepkg yaboot

Di bawah ini, anda akan menemukan sebuah file yaboot.conf, tetapi anda perlu mengubahnya agar sesuai dengan kebutuhan anda. Pengguna G5 dan yang menggunakan firewire dan USB untuk boot harus mengetahui bahwa disk mereka dianggap sebagai disk SCSI oleh kernel Linux, jadi anda harus mengganti /dev/hda dengan /dev/sda).

Daftar Kode 2.6: /etc/yaboot.conf

## /etc/yaboot.conf
##
## Jalankan: "man yaboot.conf" untuk informasi lebih lanjut. Jangan membuat
## perubahan kecuali anda telah membacanya!!
## Lihat juga: /usr/share/doc/yaboot/examples untuk contoh-contoh konfigurasi.
##
## Untuk mendapatkan menu dual-boot, tambahkan satu atau lebih:
## bsd=/dev/hdaX, macos=/dev/hdaY, macosx=/dev/hdaZ

## partisi bootstrap kita:

boot=/dev/hda9

## ofboot adalah cara Open Firmware untuk menentukan partisi bootstrap.
## Jika ini tidak ditetapkan, yaboot akan gagal berfungsi di sistem G5 dan
## beberapa sistem G4 (kecuali anda menambahkan argumen-argumen yang diperlukan
## ke program mkofboot/ybin).
## hd:X berarti /dev/sdaX (atau /dev/hdaX).
##
## Pengguna G5 sebaiknya menghapus tanda komentar baris ini!!
#ofboot=hd:9

## Pengguna yang boot dari firewire harus menggunakan baris semisal yang berikut ini:
# ofboot=fw/node/sbp-2/disk@0:

## Pengguna yang boot dari USB harus menggunakan baris semisal yang berikut ini:
# ofboot=usb/disk@0:

## hd: adalah istilah open firmware untuk Harddisk pertama
device=hd:

##Pengguna firewire dan USB perlu menentukan seluruh nama perangkat OF
## Anda dapat menemukannya dengan menggunakan ofpath, yang diikutsertakan dengan
## yaboot.

# device=fw/node@0001d200e00d0207/sbp-2@c000/disk@0:


delay=5
defaultos=macosx
timeout=30
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot

#################
## Bagian ini dapat digandakan jika anda memiliki lebih dari satu kernel atau
## kumpulan opsi-opsi boot - gantikan isi variabel image dengan nama kernel anda.
#################
image=/boot/kernel-2.6.19-gentoo-r5
  label=Linux
  root=/dev/hda3
  partition=3
#  append="rootdelay=10"  # Diperlukan untuk boot dari USB/Firewire
  read-only
##################

## Pengguna G5 dan beberapa G4 sebaiknya mengeset
##   macos=hd:13
##   macosx=hd:12
## daripada nilai-nilai contoh.
macos=/dev/hda13
macosx=/dev/hda12
enablecdboot
enableofboot

Setelah yaboot.conf terkonfigurasi, jalankan mkofboot -v untuk memformat partisi Apple_Bootstrap dan menginstal semua pengaturan tersebut ke dalamnya. Jika anda merubah yaboot.conf setelah partisi Apple_Bootstrap diciptakan, anda dapat menerapkan semua pengaturannya dengan menjalankan ybin -v.

Daftar Kode 2.7: Menyiapkan partisi boot

# mkofboot -v

Untuk informasi lebih lanjut tentang yaboot, silahkan kunjungi proyek yaboot. Untuk saat ini, lanjutkan proses instalasi ke Reboot Sistem.

10.c. Alternatif: BootX

Penting: BootX hanya dapat digunakan pada sistem Apple OldWorld dengan MacOS 9 atau yang lebih lama!

Karena BootX mem-boot Linux dari dalam sistem MacOS, kernel Linux perlu disalin dari partisi Linux ke partisi MacOS. Pertama, mount partisi MacOS dari luar chroot. Gunakan mac-fdisk -l untuk menemukan nomor partisi MacOS, di sini kami mengggunakan sda6 sebagai contoh. Ketika partisi MacOS telah di-mount, kita akan menyalin kernel ke System Folder agar BootX dapat menemukannya.

Daftar Kode 3.1: Menyalin kernel ke partisi MacOS

# exit
cdimage ~# mkdir /mnt/mac
cdimage ~# mount /dev/sda6 /mnt/mac -t hfs
cdimage ~# cp /mnt/gentoo/usr/src/linux/vmlinux "/mnt/mac/System Folder/Linux Kernels"

Jika anda menggunakan genkernel, anda harus menyalin kernel dan initrd ke partisi MacOS.

Daftar Kode 3.2: Menyalin kernel dan initrd Genkernel ke partisi MacOS

# exit
cdimage ~# mkdir /mnt/mac
cdimage ~# mount /dev/sda6 /mnt/mac -t hfs
cdimage ~# cp /mnt/gentoo/boot/kernel-genkernel-ppc-2.6.19-gentoo-r5 "/mnt/mac/System Folder/Linux Kernels"
cdimage ~# cp /mnt/gentoo/boot/initramfs--genkernel-ppc-2.6.19-gentoo-r5 "/mnt/mac/System Folder"

Sekarang setelah kernel disalin, kita harus reboot untuk menyiapkan BootX.

Daftar Kode 3.3: Unmount semua partisi dan reboot

cdimage ~# cd /
cdimage ~# umount /mnt/gentoo/proc /mnt/gentoo/dev /mnt/gentoo/sys /mnt/gentoo /mnt/mac
cdimage ~# reboot

Pastinya, jangan lupa untuk mengeluarkan seluruh media bootable, karena saat ini kita harus boot ke MacOS.

Ketika sistem telah boot ke MacOS, jalankan control panel BootX. Jika anda tidak menggunakan genkernel, pilih Options dan hilangkan cek pada Use specified RAM disk. Jika anda menggunakan genkernel, pastikan agar intrd genkernel telah dipilih sebagai ganti initrd CD Instalasi. Jika anda tidak menggunakan genkernel, terdapat opsi untuk menentukan disk root dan partisi Linux. Isilah dengan nilai yang sesuai. Anda mungkin memerlukan argumen boot tambahan, tergantung konfigurasi kernel anda.

BootX dapat diatur untuk menjalankan Linux ketika boot. Jika anda memilih ini, komputer akan boot ke MacOS dahulu, kemudian ketika startup, memuat BootX yang akan menjalankan Linux. Baca website BootX untuk mendapatkan informasi lebih lanjut.

Penting: Pastikan bahwa anda memiliki dukungan filesystem HFS dan HFS+ di kernel anda. Jika tidak, anda tidak akan dapat memperbarui atau mengganti kernel di partisi MacOS anda.

Sekarang reboot kembali ke Linux, lalu lanjutkan dengan Menyelesaikan Instalasi Gentoo.

10.d. Alternatif: quik

Anda dapat boot tanpa MacOS di komputer OldWorld Mac dengan quik. Tetapi, quik belum sepenuhnya didukung dan memiliki beberapa tingkah laku jelek. Jika anda dapat memilih, kami anjurkan anda untuk menggunakan BootX karena lebih stabil dan mudah diatur daripada quik.

Pertama-tama, kita harus menginstal quik:

Daftar Kode 4.1: Emerge quik dari GRP

# emerge quik

Kemudian, kita siapkan quik. Edit /etc/quik.conf dan tetapkan imej anda dengan kernel yang telah kita salin ke partisi boot.

Daftar Kode 4.2: Konfigurasi quik.conf

# Contoh quik.conf
init-message = "Gentoo 2007.0\n"
# Ini adalah partisi boot
partition = 2
root = /dev/hda4
timeout = 30
default = gentoo
# Inilah kernel anda
image = /kernel-2.6.19-gentoo-r5
        label = gentoo

File quik.conf anda harus berada di disk yang sama dengan imej boot quik, tetapi boleh berada pada partisi berbeda di harddisk yang sama, walaupun begitu anda tetap dianjurkan untuk memindahkannya ke partisi boot.

Daftar Kode 4.3: Memindahkan quik.conf ke /boot

# mv /etc/quik.conf /boot/quik.conf

Sekarang kita akan mengatur variabel boot agar quik muat ketika boot. Untuk melakukannya, kita akan menggunakan sebuah program bernama nvsetenv. Variabel yang perlu anda atur bergantung kepada komputer yang anda gunakan, sebaiknya anda mencari jenis komputer anda diquirks sebelum melanjutkan.

Daftar Kode 4.4: Pengaturan variabel boot

# nvsetenv auto-boot true # Gunakan "false" jika anda ingin boot ke OF, tidak semua model dapat menampilkan output OF
# nvsetenv output-device video # Kunjungi website quirks, terdapat banyak variasi di sini
# nvsetenv input-device kbd
# nvsetenv boot-device scsi/sd@1:0 # Untuk SCSI
# nvsetenv boot-device ata/ata-disk@0:0 # Untuk ATA
# nvsetenv boot-file /boot/kernel-2.6.19-gentoo-r5 root=/dev/hda4 # Item pertama adalah path ke kernel, yang ke dua adalah partisi root. Anda boleh menambahkan opsi kernel apa saja pada akhir baris ini.
# nvsetenv boot-command boot # Isi variabel ini dengan bye untuk MacOS dan boot untuk Linux

Catatan: Anda juga dapat mengganti variabel boot dari MacOS. Tergantung model, anda dapat menggunakan bootvars Apple System Disk. Bacalah halaman quirks quik di atas untuk mendapatkan info lebih lanjut.

Sekarang setelah sistem kita siap untuk boot, kita harus memastikan bahwa imej boot telah terinstal dengan benar. Jalankan quik -v -C /boot/quik.conf. Perintah ini akan menyatakan bahwa stage pertama blok boot QUIK telah terinstal

Catatan: Jika ada sesuatu yang tidak beres, anda dapat me-reset kembali PRAM anda ke nilai default dengan menahan tombol command + option + p + r sebelum menyalakan komputer anda. Dengan begini, nilai-nilai yang telah ditetapkan oleh nvsetenv akan dihapus dan anda dapat boot ke bootdisk MacOS atau Linux.

Sekarang, lanjutkan instalasi dengan Reboot Sistem".

10.e. Alternatif: BootCreator

Penting: BootCreator akan membangun sebuah menu boot SmartFirmware yang ditulis dengan Forth untuk Pegasos.

Pertama, kita instal bootcreator.

Daftar Kode 5.1: Instalasi bootcreator dari GRP

# emerge --usepkg bootcreator

Sekarang salin file /etc/bootmenu.example ke /etc/bootmenu lalu edit sesuai dengan kebutuhan anda:

Daftar Kode 5.2: Edit file konfigurasi bootcreator

# cp /etc/bootmenu.example /etc/bootmenu
# nano -w /etc/bootmenu

Berikut ini adalah contoh file konfigurasi /etc/bootmenu. Anda harus mengganti vmlinux dan intrd dengan nama imej kernel dan intrd anda.

Daftar Kode 5.3: File konfigurasi bootcreator

#
# Contoh file deskripsi untuk bootcreator 1.1
#

[VERSION]
1

[TITLE]
Boot Menu

[SETTINGS]
AbortOnKey = false
Timeout    = 9
Default    = 1

[SECTION]
Local HD -> Morphos      (Normal)
ide:0 boot2.img ramdebug edebugflags="logkprintf"

[SECTION]
Local HD -> Linux (Normal)
ide:0 kernel-2.6.19-gentoo-r5 video=radeonfb:1024x768@70 root=/dev/hda3

[SECTION]
Local HD -> Genkernel (Normal)
ide:0 kernel-genkernel-ppc-2.6.19-gentoo-r5 root=/dev/ram0 real_root=/dev/hda3 init=/linuxrc intrd=/nama-intrd

Terakhir, bootmenu harus diubah ke Forth dan disalin ke partisi boot anda agar SmartFirmware dapat membacanya. Untuk melakukannya, jalankan bootcreator:

Daftar Kode 5.4: Instalasi bootmenu

# bootcreator /etc/bootmenu /boot/menu

Catatan: Pastikan untuk memeriksa pengaturan SmartFirmware ketika anda reboot, dan pastikan juga bahwa menu adalah file yang akan dimuat secara default.

Untuk sekarang, lanjutkan instalasi dengan Reboot Sistem.

10.f. Reboot Sistem

Keluarlah dari lingkungan chroot lalu unmount semua partisi agar kita dapat reboot dengan benar, lalu reboot.

Daftar Kode 6.1: Keluar dari chroot, unmount semua partisi dan reboot

# exit
livecd ~# umount /mnt/gentoo/proc /mnt/gentoo/dev /mnt/gentoo/sys /mnt/gentoo
livecd ~# reboot

Setelah anda berada di sistem Gentoo, selesaikan dengan Menyelesaikan Instalasi Gentoo.

11. Menyelesaikan Instalasi Gentoo

11.a. Administrasi User

Menambahkan Akun User untuk Penggunaan Sehari-hari

Bekerja sebagai root di sistem Unix/Linux sangat berbahaya dan sebaiknya dihindari sebisa mungkin. Karena itu, anda sangat dianjurkan untuk membuat akun user baru untuk penggunaan sehari-hari.

Grup yang diikuti oleh user menentukan aktifitas apa saja yang boleh dilakukan oleh user. Tabel di bawah ini berisi sejumlah grup penting yang mungkin ingin anda gunakan:

Grup Penjelasan
audio boleh mengakses perangkat suara
cdrom boleh mengakses perangkat optikal secara langsung
floppy boleh mengakses floppy secara langsung
games boleh memainkan games
portage boleh melakukan emerge --pretend sebagai user biasa
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

Sebagai contoh, untuk membuat akun user baru bernama john yang merupakan anggota dari grup wheel, users, dan audio, login dulu sebagai root (hanya root yang dapat membuat akun user) kemudian jalankan useradd:

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: (Tetapkan password untuk john)
Re-enter password: (Ketik lagi password tersebut untuk memastikan)

Jika user ini harus menjalankan beberapa tugas sebagai root, ia dapat menggunakan perintah su - untuk mendapatkan akses root sementara. Cara lain adalah dengan menggunakan paket sudo yang, jika dikonfigurasi dengan benar, sangat aman.

11.b. Opsional: Instalasi Paket GRP

Penting: Bagian ini hanya untuk pengguna GRP. Pengguna lain harus melewatkan bagian ini dan melanjutkan ke Kemanakah setelah ini?.

Sekarang setelah sistem anda sukses boot, login sebagai user yang telah anda buat (misalnya john) lalu gunakan su - untuk mendapatkan hak root:

Daftar Kode 2.1: Mendapatkan hak root

$ su -
Password: (Ketik password root)

Sekarang kita perlu mengubah konfigurasi Portage agar mencari paket jadi dari CD kedua (CD Paket Gentoo). Pertama, mount CD ini:

Daftar Kode 2.2: Mount CD Paket

(Masukkan CD Paket Gentoo di CD-ROM)
# mount /mnt/cdrom

Sekarang konfigurasikan Portage untuk menggunakan /mnt/cdrom sebagai tempat paket jadi:

Daftar Kode 2.3: Mengatur Portage agar menggunakan /mnt/cdrom

# ls /mnt/cdrom

(Jika ada direktori /mnt/cdrom/packages:)
# export PKGDIR="/mnt/cdrom/packages"

(Jika tidak:)
# export PKGDIR="/mnt/cdrom"

Sekarang instal paket-paket yang anda inginkan. CD Paket berisi banyak binari jadi, misalnya KDE dan GNOME.

Daftar Kode 2.4: Instalasi GNOME

# emerge --usepkg gnome

Untuk mengetahui paket jadi apa saja yang tersedia, lihatlah file-file yang ada di /mnt/cdrom/All. Misalnya, untuk mengetahui apakah KDE dapat di-emerge:

Daftar Kode 2.5: Mencari tahu apakah KDE dapat diinstal

# ls /mnt/cdrom/All/kde*

Anda harus menginstal paket binari sekarang juga. Ketika anda melakukan emerge --sync untuk memperbarui Portage (seperti yang akan anda pelajari nanti), paket jadi mungkin tidak akan cocok dengan ebuild yang dimiliki oleh Portage yang telah anda perbarui. Anda dapat menyiasatinya dengan menggunakan perintah emerge --usepkgonly sebagai ganti emerge --usepkg.

Selamat, sistema anda sekarang telah lengkap! Lanjutkan dengan Kemanakah Setelah ini? untuk belajar lebih jauh lagi tentang Gentoo.

12. Kemanakah setelah ini?

12.a. Dokumentasi

Selamat! Anda sekarang telah memiliki sistem Gentoo yang berfungsi. Tetapi, kemanakah setelah ini? Apa saja pilihan anda sekarang? Apa yang harus dijelajahi terlebih dahulu? Gentoo menyediakan banyak kemungkinan untuk para penggunanya, dan karena itu banyak fitur-fitur yang telah didokumentasi (dan sedikit yang belum didokumentasi).

Anda sebaiknya membaca bagian selanjutnya dari Buku Pegangan Gentoo yang berjudul Bekerja dengan Gentoo yang menjelaskan cara memlihara software anda agar tetap up-to-date, cara menginstal software lain, apa itu flag USE, cara sistem init Gentoo bekerja, 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.

12.b. Gentoo Online

Anda tentu saja akan selalu diterima dengan senang hati di Forum Gentoo atau salah satu channel IRC Gentoo kami.

Kami juga memiliki beberapa milis yang terbuka untuk seluruh pengguna kami. Informasi tentang cara bergabung dapat ditemui di halaman tersebut.

Kami akan diam sekarang dan membiarkan anda menikmati sistem Gentoo anda :-)

12.c. Perubahan Gentoo pada 2007.0

Perubahan?

Gentoo merupakan distribusi Linux yang bergerak cepat. Seksi berikut ini menjelaskan perubahan-perubahan penting yang mempengaruhi instalasi Gentoo. Kami hanya menuliskan perubahan yang berhubungan dengan instalasi, bukan dengan paket karena tidak akan mempengaruhi instalasi.

Tidak terdapat perubahan penting.

B. Bekerja menggunakan Gentoo

1. Pengenalan Portage

1.a. Selamat Datang di 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

1.b. Pohon Portage

Ebuild

Ketika kami berbicara tentang paket, kami sering mengartikannya sebagai nama-nama software yang tersedia untuk para pengguna Gentoo melalui pohon Portage. Pohon Portage adalah sebuah koleksi ebuild, file yang berisi seluruh informasi yang dibutuhkan Portage untuk memelihara sofware (install, search, query, ...). Ebuild-ebuild ini secara default ditempatkan di /usr/portage.

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.

Memperbarui pohon portage

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

Jika anda tidak dapat menjalankan rsync karena terhalang oleh firewall, anda masih dapat memperbarui pohon Portage dengan menggunakan snapshot pohon Portage kami yang diperbarui setiap hari. Utilitas emerge-webrsync dengan otomatis akan mendownload dan menginstal snapshot terbaru di sistem anda:

Daftar Kode 2.2: Menjalankan emerge-webrsync

# emerge-webrsync

1.c. Pemeliharaan Software

Mencari software

Untuk mencari nama software di pohon Portage, anda dapat menggunakan fitur pencarian emerge. Secara default, emerge --search akan menampilkan nama-nama paket yang sesuai dengan pencarian anda (baik lengkap maupun sebagian).

Sebagai contoh, untuk mencari semua paket yang memiliki "pdf" pada namanya:

Daftar Kode 3.1: Mencari paket bernama pdf

$ emerge --search pdf

Jika anda ingin mencari paket melalui penjelasannya, anda dapat menggunakan opsi --searchdesc (atau -S):

Daftar Kode 3.2: Mencari paket yang berhubungan dengan pdf

$ emerge --searchdesc pdf

Ketika anda melihat outputnya, anda akan tahu melihat banyak sekali informasi yang diberikan. Setiap bagian telah diberikan label yang jelas, jadi kami tidak akan menjelaskan arti masing-masing lebih jauh:

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

Instalasi software

Setelah menemukan nama software yang anda inginkan, dengan mudah anda dapat menginstalnya dengan perintah emerge: tambahkan saja nama paket. Misalnya, untuk menginstal gnumeric:

Daftar Kode 3.4: Instalasi gnumeric

# emerge gnumeric

Karena banyak aplikasi yang saling bergantung satu sama lain, setiap instalasi software tertentu mungkin akan menghasilkan instalasi ketergantungannya (dependensi) juga. Jangan khawatir, Portage dapat menangani dependensi ini. Jika anda ingin tahu paket apa saja yang akan diinstal oleh Portage ketika anda ingin menginstal sebuah paket, tambahkan opsi --pretend, misalnya:

Daftar Kode 3.5: Instalasi palsu gnumeric

# emerge --pretend gnumeric

Ketika anda memerintahkan Portage untuk menginstal sebuah paket, Portage akan mendownload semua source code yang diperlukan dari internet (jika memang perlu) dan secara default meletakkannya di /usr/portage/distfiles. Selanjutnya Portage akan mengekstrak, mengkompilasi dan menginstal paket tersebut. Jika anda ingin agar Portage hanya mendownload source code tanpa menginstalnya, tambahkan opsi --fetchonly ke perintah emerge:

Daftar Kode 3.6: Download source code untuk gnumeric

# emerge --fetchonly gnumeric

Mencari dokumentasi paket yang telah terinstal

Banyak paket software yang memiliki dokumentasinya sendiri. Terkadang, flag USE doc menentukan apakah dokumentasi sebuah paket software akan diinstal atau tidak. Anda dapat memeriksa keberadaan flag USE doc dengan perintah emerge -vp <nama paket>.

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

Cara terbaik untuk mengaktifkan flag USE doc adalah dengan mengaktifkannya untuk masing-masing paket di file /etc/portage/package.use agar anda hanya mendapatkan dokumentasi yang anda inginkan saja. Mengaktifkan flag ini secara global diketahui dapat menyebabkan masalah dependensi. Untuk mempelajari masalah ini lebih dalam lagi, bacalah Bab Flag-flag USE.

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)

Menghapus software

Jika anda ingin menghapus sebuah software dari sistem anda, gunakan perintah emerge --unmerge. Perintah ini akan menyuruh Portage untuk menghapus semua file paket tersebut yang terinstal dari sitem anda kecuali file-file konfigurasi paket tersebut, jika anda pernah merubah isinya setelah instalasi. Hal ini akan memudahkan anda bekerja dengan paket tersebut jika suatu saat nanti anda ingin menginstalnya kembali.

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

Ketika anda menghapus sebuah paket dari sistem anda, dependensi paket tersebut yang terinstal secara otomatis tidak ikut dihapus. Agar Portage mencari semua dependensi yang dapat sekarang dihapus, gunakan fungsionalitas --depclean milik emerge. Kita akan membicarakannya nanti.

Memperbarui sistem

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

Selanjutnya Portage akan mencari versi terbaru dari setiap software yang telah anda instal. Tetapi, Portage hanya akan mencari aplikasi yang telah anda instal secara eksplisit (aplikasi yang terdaftar di /var/lib/portage/world) - tetapi tidak memeriksa dependensi. Jika anda ingin memperbarui semua paket yang terinstal di sistem anda, tambahkan opsi --deep:

Daftar Kode 3.11: Memperabui sistem secara menyeluruh

# emerge --update --deep world

Karena banyak update keamanan untuk paket yang tidak anda instal secara eksplisit di sistem anda (tetapi diinstal sebagai dependensi program lain), anda dianjurkan untuk sesekali menjalankan perintah ini.

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

Paket Meta

Beberapa paket di pohon Portage tidak memiliki isi yang sesungguhnya tetapi digunakan untuk menginstal sebuah koleksi paket-paket. Misalnya, paket kde akan menginstal lingkungan KDE lengkap di sistem anda dengan mengikutsertakan semua paket yang berhubungan dengan KDE sebagai dependensi.

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

revdep-rebuild disediakan oleh paket gentoolkit; jangan lupa untuk menginstalnya:

Daftar Kode 3.14: Instalasi paket gentoolkit

# emerge gentoolkit

1.d. Ketika Portage Mengeluh...

Tentang SLOT, Virtual, Cabang-cabang, Arsitektur, dan Profil

Seperti yang telah kami katakan tadi, Portage sangat handal dan mendukung banyak sekali fitur yang tidak dimiliki oleh tool manajemen software lain. Untuk memahami semua ini, kami akan menjelaskan beberapa aspek tentang Portage dengan tidak terlalu terinci.

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.

Paket-paket terblokir

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.

Ebuild-ebuild berisi bagian-bagian khusus yang menginformasikan Portage tentang dependensinya. Ada dua dependensi yang memungkinkan: dependensi build, dinyatakan dengan DEPEND, dan dependensi run-time, dinyatakan dengan RDEPEND. Ketika salah satu dari dependensi ini secara eksplisit menandakan bahwa sebuah paket atau virtual tidak kompatibel, Portage akan mencetuskan halangan (blockage).

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.

Paket-paket yang di-mask

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)

Ketika anda ingin menginstal sebuah paket yang tidak tersedia untuk sistem anda, anda akan mendapatkan error mask tersebut. Anda harus mencoba untuk menginstal aplikasi lain yang tersedia untuk sistem anda atau menunggu sampai paket tersebut tersedia. Selalu ada alasan mengapa sebuah paket dimask:

  • 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.

Dependensi yang tidak ditemukan

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.

Aplikasi yang ingin anda instal bergantung kepada paket lain yang tidak tersedia untuk sistem anda. Silahkan periksa bugzilla apakah masalah ini telah diketahui. Jika belum, silakan buat laporan. Hal ini kemungkinan besar tidak akan pernah terjadi, kecuali anda mencampurkan cabang-cabang software.

Nama ambigu ebuild

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

Aplikasi yang ingin anda instal memiliki nama yang sama dengan paket lain. Anda pelu memberikan nama kategorinya juga. Portage akan memberikan nama-nama yang memungkinkan yang dapat anda pilih.

Circular Dependencies

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

Dua paket (atau lebih) yang ingin anda instal saling bergantung satu sama lain sehingga tidak dapat diinstal. Kemungkinan besar ini adalah bug di pohon Portage. Lakukan rsync setelah beberapa saat lalu coba lagi. Anda juga dapat memeriksa bugzilla untuk melihat apakah masalah ini telah diketahui, jika belum tolong laporkan.

Kegagalan download

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.

Portage tidak dapat mendownload source dari aplikasi yang ingin anda instal dan akan terus mencoba untuk menginstal aplikasi lain (jika diperintahkan). Kegagalan ini bisa disebabkan oleh sebuah mirror yang belum menksinkronisasikan isinya dengan benar, atau ebuild yang menunjuk ke lokasi yang salah. Mungkin juga karena server tempat source code sedang offline karena satu dan lain hal.

Silahkan coba kembali setelah satu jam untuk melihat apakah masalah ini telah teratasi.

Proteksi profil sistem

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.

Anda telah meminta Portage untuk meghapus sebuah paket yang merupakan bagian dari paket-paket inti sistem anda. Paket ini terdaftar di profil anda sebagai paket yang dibutuhkan, untuk itu tidak boleh dihapus dari sistem.

Kegagalan pemeriksaan digest

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:

Ini berarti ada sesuatu yang tidak beres pada pohon Portage -- biasanya, hal ini disebabkan oleh seorang pengembang yang mungkin telah membuat kesalahan ketika menambahkan sebuah paket ke pohon Portage.

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

2.a. Apakah Flag USE itu?

Ide dibalik 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.

Definisi suatu flag USE

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.

Apa saja flag USE yang tersedia?

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 USE global yang tersedia dapat diperoleh online atau secara lokal di file /usr/portage/profiles/use.desc.

Daftar flag-flag USE lokal yang tersedia dapat ditemukan di /usr/portage/profiles/use.local.desc.

2.b. Menggunakan flag USE

Deklarasi flag USE secara permanen

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"

Seperti yang anda lihat, variabel ini sudah memiliki cukup banyak kata kunci. Jangan mengubah file /etc/make.profile/make.defaults untuk menyesuaikan variabel USE dengan kebutuhan anda: perubahan ini akan dibatalkan ketika anda memperbarui Portage!

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"

Deklarasi flag-flag USE untuk paket-paket individual

Kadang-kadang anda ingin menggunakan sebuah flag USE khusus untuk satu (atau beberapa) aplikasi tetapi bukan untuk seluruh sistem. Untuk melakukannya, anda perlu menciptakan direktori /etc/portage (jika belum ada) lalu edit /etc/portage/package.use. Biasanya package.use merupakan sebuah file biasa, tetapi juga bisa berupa direktori; bacalah man portage untuk mendapatkan informasi lebih lengkap. Contoh berikut ini menganggap package.use sebagai sebuah file.

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

Tentu saja anda dapat juga secara eksplisit menonaktifkan flag-flag USE untuk sebuah aplikasi tertentu. Sebagai contoh, jika anda tidak ingin dukungan java di PHP:

Daftar Kode 2.4: Contoh lain /etc/portage/package.use

dev-php/php -java

Deklarasi flag USE sementara

Kadang-kadang anda ingin mendefinisikan pengaturan pada USE tertentu untuk penggunaan sekali saja. Daripada mengubah file /etc/make.conf dua kali (melakukan dan membatalkan perubahan USE), anda dapat mendeklarasikan variabel USE sebagai variabel lingkungan. Perlu diingat, ketika anda menginstal ulang atau memperbarui aplikasi ini (secara eksplisit atau sebagai bagian dari update sistem), perubahan-perubahan anda akan hilang!

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

Urutan-urutan

Tentu saja terdapat urutan-urutan pengaturan yang memiliki prioritas terhadap pengaturan USE. Anda tentu saja tidak ingin menggunakan USE="-java" hanya untuk melihat bahwa java ternyata telah digunakan. Urutan untuk pengaturan USE adalah, diurutkan berdasarkan prioritas (yang pertama mempunyai prioritas terendah):

  1. Pengaturan USE default yang ditentukan di file make.defaults sebagai bagian dari profil anda
  2. Pengaturan USE yang didefinisikan ditentukan di /etc/make.conf
  3. Pengaturan USE yang ditentukan oleh pengguna di /etc/portage/package.use
  4. Pengaturan USE yang ditentukan oleh pengguna sebagai variabel lingkungan

Untuk melihat pengaturan USE akhir yang akan digunakan oleh Portage, jalankan emerge --info. Perintah ini akan memberikan daftar yang berisi semua variabel yang relevan (termasuk variabel USE) yang digunakan oleh Portage.

Daftar Kode 2.6: Menjalankan emerge --info

# emerge --info

Mengadaptasikan seluruh sistem ke pengaturan flag USE baru

Jika anda telah mengubah flag-flag USE anda dan ingin memperbarui seluruh sistem anda agar menggunakan flag-flag USE baru tersebut, gunakan opsi --newuse pada perintah emerge:

Daftar Kode 2.7: Memperbarui seluruh sistem

# emerge --update --deep --newuse world

Selanjutnya, jalankan depclean Portage untuk menghapus semua dependensi kondisional yang ter-emerge pada sistem "lama" anda, tetapi tidak lagi digunakan karena flag-flag USE baru.

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

Setelah depclean selesai, jalankan revdep-rebuild untuk membangun ulang aplikasi yang terkait secara dinamis dengan objek-objek yang disediakan oleh paket-paket yang telah dibuang. revdep-rebuild merupakan bagian dari paket gentoolkit; jangan lupa untuk menginstalnya:

Daftar Kode 2.9: Menjalankan revdep-rebuild

# revdep-rebuild

Setelah semuanya selesai, sistem anda sekarang menggunakan setting flag-flag USE yang baru.

2.c. Flag USE dari paket tertentu

Melihat flag USE yang tersedia

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

emerge bukanlah satu-satunya alat untuk pekerjaan ini. Sebenarnya kami memiliki suatu utilitas yang didedikasikan untuk melihat informasi paket yang bernama equery, yang merupakan bagian dari paket gentoolkit. Pertama, instal gentoolkit:

Daftar Kode 3.2: Instalasi gentoolkit

# emerge gentoolkit

Sekarang jalankan equery dengan argumen uses untuk melihat flag USE dari suatu paket. Sebagai contoh, untuk paket gnumeric:

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

3.a. 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

Untuk mengetahui FEATURES apa yang telah digunakan secara default, jalankan emerge --info lalu cari variabel FEATURES, atau grep:

Daftar Kode 1.2: Mengetahui FEATURES yang telah digunakan

$ emerge --info | grep FEATURES

3.b. Kompilasi Terdistribusi

Menggunakan distcc

distcc adalah sebuah program untuk mendistribusikan proses kompilasi kepada beberapa mesin, tidak harus sama jenisnya, yang terhubung di dalam sebuah jaringan. Klien distcc mengirimkan semua informasi yang diperlukan ke server distcc yang tersedia (yang menjalankan distccd), sehingga mereka dapat mengkompilasi potongan-potongan source code untuk klien. Hasil akhirnya adalah waktu kompilasi yang lebih singkat.

Anda dapat memperoleh informasi lebih lanjut tentang distcc (dan informasi bagaimana menjalankannya pada Gentoo) di Dokumentasi Distcc Gentoo kami.

Instalasi distcc

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

Aktivasi Dukungan Portage

Tambahkan distcc pada variabel FEATURES di file /etc/make.conf. Selanjutnya, edit variabel MAKEOPTS sesuai dengan keinginan anda. Sebuah garis pedoman yang diketahui adalah mengisi -jX dengan X adalah jumlah CPU yang menjalankan distccd (termasuk juga host tersebut) ditambah satu. Tapi anda mungkin saja bisa mendapatkan hasil yang lebih baik dengan nilai lain.

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"

Tentu saja, jangan lupa jalankan daemon distccd:

Daftar Kode 2.3: Menjalankan daemon distcc

# rc-update add distccd default
# /etc/init.d/distccd start

3.c. ccache

Tentang ccache

ccache adalah cache compiler yang cepat. Ketika anda mengkompilasi sebuah program, hasil tengah kompilasi akan dicache, sehingga jika anda mengkompilasi ulang program yang sama, waktu kompilasinya akan berkurang drastis. Untuk kompilasi umum, hasil yang dicapai adalah kompilasi yang lebih singkat 5 sampai 10 kali.

Jika anda tertarik untuk lebih mengenal ccache, silahkan kunjungi website ccache.

Instalasi ccache

Untuk menginstal ccache, jalankan emerge ccache:

Daftar Kode 3.1: Instalasi ccache

# emerge ccache

Aktivasi Dukungan Portage

Buka file /etc/make.conf lalu tambahkan ccache ke variabel FEATURES. Kemudian, tambahkan variabel baru bernama CCACHE_SIZE dan set ke "2G":

Daftar Kode 3.2: Edit CCACHE_SIZE di /etc/make.conf

CCACHE_SIZE="2G"

Untuk memeriksa apakah ccache bekerja, mintalah ccache untuk memberikan statistiknya kepada anda. Karena Portage menggunakan direktori home ccache yang berbeda, anda juga perlu mengeset variabel CCACHE_DIR:

Daftar Kode 3.3: Melihat statistik ccache

# CCACHE_DIR="/var/tmp/portage" ccache -s

/var/tmp/ccache adalah lokasi direktori home ccache default Portage; jika anda ingin merubahnya, anda dapat melakukannya melalui variabel CCACHE_DIR di /etc/make.conf.

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).

Menggunakan ccache untuk kompilasi C non-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}"

3.d. Dukungan Paket Binari

Menciptakan paket prebuilt

Portage mendukung instalasi paket-paket prebuilt. Walaupun Gentoo tidak menyediakan paket-paket prebuilt (kecuali snapshot GRP), Portage dapat dengan mudah diatur untuk menangani paket prebuilt.

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.

Instalasi paket prebuilt

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"

Ketika anda ingin menginstal sebuah paket prebuilt, tambahkan opsi --getbinpkg ke perintah emerge bersama opsi --usepkg. Opsi pertama akan memerintahkan emerge untuk mendownload paket prebuilt dari server yang telah ditentukan. Sedangkan opsi kedua akan memerintahkan emerge untuk mencoba menginstal paket prebuilt dulu sebelum mendowload source dan mengkompilasinya.

Sebagai contoh, untuk menginstal gnumeric dari paket prebuilt:

Daftar Kode 4.2: Instalasi paket prebuilt gnumeric

# emerge --usepkg --getbinpkg gnumeric

Informasi lebih lanjut tentang opsi-opsi paket prebuilt emerge dapat anda temukan di manual emerge:

Daftar Kode 4.3: Membaca manual emerge

# man emerge

3.e. Mendownload File

Download paralel

Ketika anda meng-emerge sejumlah paket, Portage dapat mendownload file source untuk paket selanjutnya yang ada di daftar bahkan ketika sedang mengkompilasi paket lain, jadi dapat mempersingkat waktu kompilasi. Untuk menggunakannya, tambahkan "parallel-fetch" di variabel FEATURES.

Userfetch

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

4.a. Runlevel

Boot Sistem

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.

Skrip Init

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.

Cara Kerja Init

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

Baris ini memerintahkan init untuk menjalankan /sbin/rc sysinit untuk menginisialisasi sistem. Skrip /sbin/rc menangani proses inisialisasi, jadi anda boleh saja mengatakan bahwa init tidaklah bekerja banyak -- ia hanya memberikan tugas untuk menginisialisasi sistem kepada proses lain.

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

Kemudian skrip rc akan melakukan tugas-tugas yang diperlukan. Perlu dicatat bahwa opsi yang diberikan kepada rc (boot) sama dengan subdirektori dari /etc/runlevels yang dipergunakan.

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:

Dalam hal ini (dimana mayoritas pengguna Gentoo akan menggunakannya), id runlevel adalah 3. Dengan menggunakan informasi ini, init akan memeriksa apa saja yang harus dijalankan untuk memulai runlevel 3:

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

Baris yang mendefenisikan level 3, sekali lagi, menggunakan skrip rc untuk memulai servis (dengan argumen default). Perlu dicatat juga bahwa argumen rc sama dengan subdirektori di dalam /etc/runlevels.

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

Apakah runlevel itu?

Anda telah mengetahui bahwa init menggunakan skema penomoran untuk menentukan runlevel apa yang harus diaktifkan. Sebuah runlevel adalah sebuah kondisi dimana sistem berjalan dan berisi koleksi skrip (skrip runlevel atau initscripts) yang harus dijalankan ketika anda memasuki atau meninggalkan suatu runlevel.

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.

Bekerja dengan Skrip Init

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.

Jika anda ingin menghentikan suatu servis, tetapi bukan servis yang bergantung padanya, anda dapat menggunakan argumen pause:

Daftar Kode 1.7: Menghentikan postfix tetapi membiarkan servis yang bergantung padanya tetap berjalan

# /etc/init.d/postfix pause

Jika Anda ingin melihat status dari suatu servis (started, stopped, paused, ...) Anda dapat menggunakan argumen status:

Daftar Kode 1.8: Informasi status postfix

# /etc/init.d/postfix status

Jika informasi status memberitahukan Anda bahwa suatu servis sedang berjalan, tetapi Anda tahu bahwa itu tidak berjalan, maka Anda dapat mereset informasi status ke "stopped" dengan argumen zap:

Daftar Kode 1.9: Reset informasi status postfix

# /etc/init.d/postfix zap

Untuk memeriksa dependensi dari servis tersebut, Anda dapat menggunakan iuse atau ineed. Dengan ineed anda dapat melihat servis yang benar-benar diperlukan oleh suatu servis untuk dapat berfungsi dengan benar. Pada sisi lain, iuse menunjukkan servis yang dapat digunakan oleh servis itu, tetapi tidak terlalu diperlukan untuk berfungsi dengan benar.

Daftar Kode 1.10: Melihat daftar semua servis yang dibutuhkan oleh postfix

# /etc/init.d/postfix ineed

Demikian juga, anda dapat melihat servis-servis apa saja yang memerlukan servis tersebut (needsme) atau yang dapat menggunakannya (usesme):

Daftar Kode 1.11: Melihat daftar semua servis yang membutuhkan postfix

# /etc/init.d/postfix needsme

Terakhir, anda dapat melihat dependensi apa yang saja yang diperlukan oleh servis tersebut tetapi tidak tersedia:

Daftar Kode 1.12: Melihat daftar dependensi yang tidak tersedia untuk postfix

# /etc/init.d/postfix broken

4.b. Bekerja dengan rc-update

Apakah rc-update itu?

Sistem init Gentoo menggunakan suatu pohon dependensi untuk menentukan servis-servis apa saja yang harus dijalankan terlebih dulu. Karena ini merupakan tugas yang membosankan, maka kami tidak ingin user kami melakukannya secara manual. Kami telah membuatkan sebuah utilitas yang memudahkan administrasi runlevel dan skrip init.

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.

Menambah dan Menghapus Servis

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

Perintah rc-update -v show akan menunjukkan semua skrip init yang ada dan daftar runlevel tempat mereka dijalankan:

Daftar Kode 2.2: Menampilkan informasi skrip init

# rc-update -v show

Anda juga bisa menjalankan rc-update show (tanpa opsi -v) jika anda hanya ingin melihat skrip init yang telah diaktifkan bersama runlevelnya.

4.c. Pengaturan Servis

Mengapa Diperlukan Pengaturan Tambahan?

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.

Direktori /etc/conf.d

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"

File konfigurasi tersebut berisi variabel, dan hanya variabel (seperti /etc/make.conf), sehingga konfigurasi servis menjadi sangat mudah. Dan juga, kita dapat memberikan lebih banyak informasi mengenai variabel (sebagai komentar).

4.d. Menulis Skrip Init

Haruskah saya melakukannya?

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

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)
}

Semua skrip init mengharuskan fungsi start() didefenisikan. Sedangkan seksi yang lain adalah opsional.

Dependensi

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
}

Seperti yang anda lihat, servis postfix:

  • 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)

Mengatur urutan

Dalam beberapa kasus, anda mungkin tidak membutuhkan suatu servis, tetapi menginginkan servis anda dimulai sebelum (atau sesudah) servis yang lain dijalankan jika tersedia dalam sistem (catatan kondisi - ini sudah bukan merupakan dependensi) dan berjalan dalam runlevel yang sama (catatan kondisi - hanya servis yang berada dalam runlevel yang sama yang terlibat). Anda dapat memberikan informasi ini dengan before atau after.

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
}

Anda dapat juga menggunakan glob "*" untuk menangkap semua servis yang berada pada runlevel yang sama, meskipun hal ini tidak dianjurkan.

Daftar Kode 4.4: Menjalankan skrip init sebagai skrip pertama pada runlevel

depend() {
  before *
}

Jika servis anda harus menulis ke disk lokal, servis tersebut harus memerlukan localmount. Jika servis tersebut menempatkan sesuatu di dalam /var/run sebagai sebuah pidfile, maka servis tersebut harus dijalankan setelah bootmisc:

Daftar Kode 4.5: Contoh fungsi depend()

depend() {
  need localmount
  after bootmisc
}

Fungsi standar

Setelah fungsi depend(), anda juga perlu mendefenisikan fungsi start(). Fungsi ini berisi semua perintah yang diperlukan untuk menginisialisasi servis Anda. Dianjurkan untuk menggunakan fungsi ebegin dan eend untuk menginformasikan kepada user apa saja yang sedang terjadi:

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 $?
}

--exec dan --pidfile harus digunakan pada fungsi start dan stop. Jika servis tidak menciptakan sebuah pidfile, maka gunakan --make-pidfile jika memungkinkan, tetapi anda harus mencobanya dahulu untuk memastikan. Jika tidak, jangan gunakan pidfile. Anda juga dapat menambahkan --quiet pada opsi start-stop-daemon, tapi hal ini tidak dianjurkan kecuali servis tersebut sangat verbose. Penggunaan --quiet dapat menghalangi proses debugging jika servic tersebut gagal dimulai.

Catatan: Pastikan agar --exec benar-benar memanggil sebuah servis, bukannya skrip shell yang menjalankan servis kemudian berhenti -- inilah yang seharusnya dijalankan oleh skrip init.

Jika anda memerlukan contoh lebih lanjut terkait fungsi start(), silakan baca kode sumber dari skrip init yang tersedia di dalam direktori /etc/init.d.

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 $?
}

Jika servis anda menjalankan skrip lain (mis. bash, python, atau perl), dan skrip ini nantinya akan mengganti nama-nama (mis. foo.py ke foo), maka anda perlu menambahkan --name ke start-stop-daemon. Anda harus menentukan nama yang akan diganti oleh skrip anda. Pada contoh ini, sebuah servis menjalankan foo.py, yang kemudian berganti nama menjadi foo:

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 $?
}

start-stop-daemon menyediakan manual yang sangat bagus jika anda memerlukan informasi lebih lanjut:

Daftar Kode 4.9: Membaca manual start-stop-daemon

# man start-stop-daemon

Sintaks skrip init Gentoo berbasis Bourne Again Shell (bash), jadi anda bebas menggunakan konstruksi yang kompatibel dengan bash di dalam skrip init anda.

Menambahkan opsi kustomisasi

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()
}

Variabel konfigurasi servis

Anda tidak perlu melakukan apa-apa untuk menyediakan sebuah file konfigurasi di dalam /etc/conf.d: jika skrip init anda dijalankan, file-file berikut ini secara otomatis akan dijadikan sebagai sumber (variabel-variabel tersedia untuk digunakan):

  • /etc/conf.d/<skrip init anda>
  • /etc/conf.d/basic
  • /etc/rc.conf

Juga, jika skrip init anda menyediakan dependensi virtual (seperti net), maka file yang diasosiasikan dengan dependensi itu (seperti /etc/conf.d/net) juga akan dijadikan sebagai sumber.

4.e. Mengubah Tingkah Laku Runlevel

Siapa yang akan diuntungkan?

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.

Menggunakan softlevel

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

Tambahkan skrip init yang diperlukan pada runlevel yang baru dibuat ini. Contoh, jika anda ingin memiliki duplikat yang sama persis dengan runlevel default anda sekarang, tetapi tanpa net.eth0:

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 |

Walaupun net.eth0 telah dihapus dari runlevel offline, udev masih akan tetap mencoba menjalankan semua perangkat yang ditemukannya dan meluncurkan servis yang sesuai. Untuk itu, anda perlu menambahkan setiap servis jaringan yang tidak anda ingin untuk dijalankan (juga servis untuk setiap perangkat yang mungkin akan dijalankan oleh udev) ke /etc/conf.d/rc seperti berikut:

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.

Sekarang edit konfigurasi bootloader Anda dan tambahkan suatu entri baru untuk runlevel offline. Misalnya, di file /boot/grub/grub.conf:

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

VoilÃ, semuanya sudah siap sekarang. Jika Aada boot sistem dan memilih entri yang baru ditambahkan pada waktu boot, runlevel offline akan digunakan sebagai ganti dari default.

Menggunakan bootlevel

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

5.a. Variabel Lingkungan?

Apakah variabel lingkungan itu?

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.

Contoh penting

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.

Berikut ini adalah contoh definisi dari semua variabel-variabel tersebut:

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

5.b. Mendefinisikan Variabel secara Global

Direktori /etc/env.d

Untuk kebutuhan sentralisasi definisi variabel-variabel ini, Gentoo memperkenalkan direktori /etc/env.d. Di dalam direktori ini, anda akan menemukan beberapa file, seperti 00basic, 05gcc, dll, yang berisi variabel yang dibutuhkan oleh aplikasi yang bersesuaian namanya.

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"

Distro lain meminta anda untuk mengubah atau menambahkan definisi variabel lingkungan di /etc/profile atau lokasi yang lain. Gentoo memberikan kemudahan bagi Anda (dan bagi Portage) untuk memelihara dan mengatur variabel lingkungan tanpa perlu memberikan perhatian penuh pada sejumlah file yang mungkin berisi variabel lingkungan.

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"

Dengan menggunakan file yang sama untuk semua variabel, anda akan mendapatkan ringkasan cepat dari variabel yang telah anda definisikan.

Skrip env-update

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"

Rangkaian variable tidak selalu terjadi, untuk variabel-variabel berikut ini: KDEDIRS, PATH, LDPATH, MANPATH, INFODIR, INFOPATH, ROOTPATH, CONFIG_PROTECT, CONFIG_PROTECT_MASK, PRELINK_PATH dan PRELINK_PATH_MASK. Untuk semua variabel lain, nilai terakhir yang didefinisikan (dengan urutan abjad dari nama file di /etc/env.d) digunakan.

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.

5.c. Mendefinisikan Variabel Lokal

Khusus per user

Anda tidak selalu harus atau perlu mendefinisikan variabel lingkungan secara global. Contohnya, mungkin anda ingin menambahkan /home/my_user/bin ke dalam variabel PATH tetapi anda tidak ingin pengguna lain pada sistem tersebut memiliki PATH yang sama dengan milik anda. Jika anda ingin mendefinisikan variabel lingkungan lokal, anda perlu menggunakan ~/.bashrc atau ~/.bash_profile:

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:"

Ketika anda login kembali, variabel PATH anda akan diperbarui.

Khusus per sesi

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

1.a. File-file Portage

Perintah-perintah konfigurasi

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.

Informasi khusus profil

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.

Konfigurasi sepesifik pengguna

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 tersebut di atas tidak harus berupa file, tetapi juga dapat berupa direktori yang berisi satu file untuk setiap paket. Untuk mempelajari kegunaan direktori /etc/portage dan mengetahui file apa saja yang bisa anda buat, bacalah manual Portage:

Daftar Kode 1.1: Membaca manual Portage

$ man portage

Mengganti file portage & lokasi direktori

File-file konfigurasi yang telah disebutkan di atas tidak dapat diletakkan di lokasi lain - portage akan selalu mencari file-file tersebut di tempat asalnya. Bagaimanapun juga, portage menggunakan banyak lokasi yang lain untuk berbagai macam kegunaan: direktori tempat kompilasi, tempat source code, lokasi pohon 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

1.b. Penempatan File-file

Pohon portage

Lokasi default pohon portage adalah /usr/portage. Lokasi ini didefinisikan oleh variabel PORTDIR. Jika anda menempatkan pohon Portage di lokasi lain (dengan megubah variabel ini), jangan lupa untuk menyesuaikan symlink /etc/make.profile.

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.

Binari prebuilt

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.

Source code

Secara default, source code diletakkan di /usr/portage/distfiles. Lokasi ini didefinisikan oleh variabel DISTDIR.

Database portage

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

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.

1.c. Membangun Software

File-file sementara 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.

Direktori kompilasi

Portage menciptakan direktori kompilasi khusus untuk setiap paket yang diinstal di dalam /var/tmp/portage. Lokasi ini didefinisikan oleh variabel BUILD_PREFIX.

Lokasi live filesystem

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.

1.d. Fitur-fitur Logging

Logging ebuild

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

2.a. Konfigurasi Portage

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

2.b. Opsi-opsi Khusus Kompilasi

Opsi configure dan compiler

Ketika Portage mengkompilasi sebuah aplikasi, portage melewati isi-isi dari variabel-variabel berikut ini ke compiler dan skrip configure:

  • 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

Variabel USE juga digunakan selama proses configure dan kompilasi, tetapi hal ini telah dijelaskan dengan sangat terinci pada bab-bab sebelumnya.

Opsi-opsi merge

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.

2.c. Konfigurasi Perlindungan File

Lokasi yang dilindungi oleh portage

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='

Info lebih lanjut tentang perlindungan file konfigurasi portage tersedia di bagian CONFIGURATION FILES di manual emerge:

Daftar Kode 3.2: Info lebih lanjut tentang perlindungan file konfigurasi

$ man emerge

Pengecualian direktori

Untuk 'tidak melindungi' subdirektori lokasi-lokasi yang dilindungi, anda dapat menggunakan variabel CONFIG_PROTECT_MASK.

2.d. Opsi-opsi Download

Lokasi server

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

Pengaturan ketiga melibatkan lokasi server rsync yang dapat anda gunakan ketika anda memperbarui pohon portage:

  • SYNC mendefinisikan sebuah server khusus yang akan digunakan Portage untuk mendapatkan pohon Portage.

Variabel GENTOO_MIRRORS dan SYNC dapat diatur secara otomatis dengan aplikasi mirrorselect. Anda harus melakukan emerge mirrorselect sebelum dapat menggunakannya. Untuk info lebih lanjut, bacalah bantuan online mirrorselect.

Daftar Kode 4.1: Informasi lebih lanjut tentang mirrorselect

# mirrorselect --help

Jika lingkungan anda perlu menggunakan server proxy, anda dapat menggunakan variabel http_proxy, ftp_proxy dan RSYNC_PROXY untuk mendefinisikan server proxy.

Perintah-perintah download

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.

Pengaturan rsync

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.

Untuk info lebih lanjut tentang opsi-opsi ini dan yang lainnya, silahkan baca man rsync.

2.e. Konfigurasi Gentoo

Pemilihan cabang

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.

Fitur-fitur portage

Anda dapat mengaktifkan beberapa fitur portage dengan variabel FEATURES. Fitur-fitur Portage telah kita diskusikan pada bab-bab sebelumnya, seperti Fitur-fitur portage.

2.f. Tingkah Laku Portage

Manajemen sumber daya

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

Tingkah laku output

Variabel NOCOLOR, yang defaultnya adalah "false", mendefinisikan apakah portage harus menonaktifkan output berwarna atau tidak.

3. Mencampur Cabang-cabang Software

3.a. Menggunakan Satu Cabang

Cabang stabil

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.

Cabang percobaan

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"

Jika anda memperbarui sistem anda sekarang, anda akan menemukan banyak paket yang akan diperbarui. Kami ingatkan anda, ketika anda telah memperbarui sistem anda untuk menggunakan cabang percobaan, tidak ada cara mudah untuk kembali lagi ke cabang stabil yang resmi (kecuali dengan menggunakan backup, pastinya).

3.b. Mencampur Cabang Stabil dengan Percobaan

Lokasi package.keywords

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

Mencoba versi-versi tertentu

Jika anda ingin menggunakan sebuah versi software tertentu dari cabang percobaan tapi anda tidak ingin portage untuk menggunakan versi lainnya dari cabang percobaan, anda dapat menambahkan nomor versi tersebut ke lokasi package.keywords. Pada kasus ini, anda harus menggunakan operator = . Anda juga dapat menggunakan rentang versi dengan menggunakan operator <=, <, > or >=

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

3.c. Menggunakan Paket Tersembunyi

Lokasi package.unmask

Para pengembang Gentoo tidak mendukung penggunaan lokasi ini. Harap berhati-hati ketika anda menggunakannya. Permintaan dukungan yang berhubungan dengan package.unmask dan/atau package.mask tidak akan dijawab. Anda sudah diperingatkan.

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

Lokasi package.mask

Ketika anda tidak ingin Portage menginstal beberapa paket atau versi tertentu dari sebuah paket ke sistem anda, anda dapat menyembuyikan paket tersebut dengan cara menambahkan baris yang sesuai di lokasi /etc/portage/package.mask (boleh di dalam file tersebut ataupun file di dalam direktori dengan nama tersebut).

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

4.a. dispatch-conf

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

Pastikan agar anda terlebih dahulu menyunting /etc/dispatch-conf.conf dan membuat direktori yang akan direferensikan oleh variabel archive-dir.

Daftar Kode 1.1: Menjalankan dispatch-conf

# dispatch-conf

Ketika menjalankan dispatch-conf, anda akan dihadapkan dengan semua file konfigurasi yang memiliki update sekaligus. Tekan u untuk memperbarui (menimpa) file konfigurasi lama dengan yang baru dan berlanjut ke file konfiguarsi selanjutnya. Tekan z untuk zap (menghapus) file konfigurasi baru dan berlanjut ke file selanjutnya. Jika semua file konfigurasi telah diperbarui, dispatch-conf akan tertutup. Anda juga dapat menekan q kapanpun anda ingin.

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

4.b. etc-update

Anda juga dapat menggunakan etc-update untuk memperbarui file konfigurasi. Utilitas ini tidak semudah dispatch-conf, tidak memiliki fitur-fitur yang sama, tetapi juga memiliki fitur untuk menggabungkan file konfigurasi secara interaktif.

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

Setelah menggabungkan perubahan-perubahan sepele, anda akan diberikan daftar yang berisi update dari file-file yang dilindungi. Pada bagian bawah, anda akan disambut dengan beberapa opsi ini:

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'):

Jika anda mengetikkan -1, etc-update akan keluar dan tidak melanjutkan perubahan. Jika anda mengetikkan -3 atau -5, semua file konfigurasi yang tercantum akan ditimpa dengan versi yang lebih baru. Oleh karena itu, sangat penting bagi anda untuk memilih dahulu file-file konfigurasi yang tidak boleh diupdate secara otomatis. Caranya dengan mengetikkan nomor yang tertera pada bagian kiri file konfigurasi yang bersangkutan.

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

Sekarang anda dapat melihat perbedaan antara kedua file. Jika anda yakin bahwa file yang baru dapat digunakan tanpa mendatangkan masalah, tekan 1. Jika anda yakin bahwa file konfigurasi yang baru tidak penting, atau tidak menyediakan informasi baru yang berguna, tekan 2. Jika anda ingin memperbarui file konfigurasi ini secara interaktif, tekan 3.

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.

Ketika anda selesai mengupdate file konfigurasi penting, anda dapat mengupdate semua file konfigurasi yang lain. etc-update akan keluar jika tidak ada lagi file konfigurasi yang perlu diupdate.

4.c. quickpkg

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

Paket-paket prebuilt ini akan disimpan di $PKGDIR/All (secara default /usr/portage/packages/All). Symllink yang menunjuk ke paket paket ini berada di $PKGDIR/<category>.

5. Beralih dari Pohon Portage Resmi

5.a. Menggunakan sebuah Subset Pohon Portage

Pengecualian paket/kategori

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-*/*

Namun perlu dicatat bahwa langkah ini dapat mengakibatkan masalah dependensi karena paket baru yang diizinkan mungkin bergantung kepada paket baru yang dilarang.

5.b. Menambahkan Ebuild tidak Resmi

Mendefinisikan direktori overlay portage

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.

Bekerja dengan beberapa overlay

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

5.c. Software yang Dipelihara Tanpa Menggunakan Portage

Menggunakan portage dengan software yang anda pelihara sendiri

Pada beberapa kasus anda ingin mengkonfigurasi, menginstal dan memelihara sendiri beberapa software tanpa meminta portage untuk mengotomatisasikan proses ini untuk anda, walaupun portage memiliki software tersebut. Kasus yang diketahui adalah source kernel dan driver nVidia. Anda dapat mengkonfigurasi portage agar mengetahui keberadaan software yang telah anda instal sendiri ke sistem anda. Proses ini disebut sebagai penyuntikan dan didukung oleh portage dengan menggunakan file /etc/portage/profile/package.provided.

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

1.a. 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.

Untuk mulai mengkonfigurasi kartu jaringan, anda perlu menginformasikannya kepada sistem RC Gentoo. Hal ini dapat dilakukan dengan menciptakan symlink dari net.lo ke net.eth0 di /etc/init.d.

Daftar Kode 1.1: Menciptakan symlink net.eth0 ke net.lo

# cd /etc/init.d
# ln -s net.lo net.eth0

Sekarang sistem RC Gentoo telah mengetahui antarmuka tersebut. Sistem RC Gentoo juga perlu mengetahui cara mengkonfigurasi antarmuka baru. Semua antarmuka jaringan dikonfigurasikan di /etc/conf.d/net. Di bawah ini merupakan contoh konfigurasi untuk DHCP dan alamat-alamat statis.

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.

Sekarang setelah kita mengkonfigurasi antarmuka jaringan, kita dapat mencoba untuk menyalakan dan mematikannya dengan perintah-perintah berikut ini.

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.

Sekarang anda sudah bisa menyalakan dan mematikan antarmuka jaringan anda dengan sukses, anda mungkin ingin menyalakannya setiap kali Gentoo dinyalakan. Berikut ini cara melakukannya. Perintah rc terakhir memerintahkan Gentoo untuk menjalankan skrip-skrip yang ada di runlevel saat ini dan belum dijalankan.

Daftar Kode 1.4: Konfigurasi antarmuka jaringan agar dimuat ketika boot

# rc-update add net.eth0 default
# rc

2. Konfigurasi Lebih Lanjut

2.a. Konfigurasi Advance

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.

Jika perintah gagal, anda dapat menentukan perintah fallback. Fallback harus sama persis dengan struktur konfigurasi.

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.

Catatan: APIPA dan DHCP akan kita bicarakan nanti.

2.b. Dependensi Jaringan

Skrip-skrip init di /etc/init.d dapat bergantung pada satu antarmuka khusus atau hanya net. net dapat didefinisikan di /etc/conf.d/rc agar berarti sebagai hal-hal lain dengan menggunakan variabel RC_NET_STRICT_CHECKING.

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.

Tetapi bagaimana dengan net.br0 yang bergantung pada net.eth0 dan net.eth1? net.eth1 mungkin merupakan sebuah perangkat nirkabel atau PPP yang memerlukan konfigurasi sebelum dapat ditambahkan ke bridge. Ini tidak dapat dilakukan di /etc/init.d/net.br0 karena hanya merupakan symlink ke net.lo.

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
}

Untuk penjelasan lebih rinci tentang dependensi, bacalah seksi Menulis Skrip Init di Buku Pegangan Gentoo.

2.c. Nama-nama dan nilai-nilai variabel

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. Modular Networking

3.a. Modul-modul Jaringan

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" )

3.b. Pengatur Antarmuka

Kami menyediakan dua pengatur antarmuka: ifconfig dan iproute2. Anda memerlukan salah satunya untuk melakukan konfigurasi jaringan.

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" )

Karena ifconfig dan iproute2 melakukan hal yang hampir sama, kami menjadikan konfigurasi dasar kedua-duanya kompatibel. Sebagai contoh, kedua potongan konfigurasi di bawah ini dapat digunakan pada kedua modul.

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" )

3.c. DHCP

DHCP digunakan untuk mendapatkan informasi jaringan (alamat IP, server DNS, Gateway, dll) dari sebuah server DHCP. Artinya, jika terdapat sebuah server DHCP pada jaringan, anda hanya perlu mengatur setiap klien untuk menggunakan DHCP dan konfigurasi jaringan akan diatur dengan sendirinya. Tentunya, anda perlu mengkonfigurasi sendiri pengaturan lainnya, seperti wireless, PPP atau yang lainnya jika anda memerlukannya sebelum anda dapat menggunakan DHCP.

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

Jika anda telah menginstal lebih dari satu klien DHCP, anda perlu menentukan klien mana yang ingin anda gunakan - jika tidak, dhcpcd akan digunakan secara default jika tersedia.

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.

3.d. Modem ADSLdengan PPPoE/PPPoA

Pertama kita perlu menginstal software ADSL.

Daftar Kode 4.1: Instalasi paket ppp

# emerge net-dialup/ppp

Catatan: Jika anda membutuhkan PPPoA, maka anda harus menggunakan >=baselayout-1.12.x.

Selanjutnya, ciptakan skrip net PPP dan skrip net untuk antarmuka ethernet yang akan digunakan oleh PPP:

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

Jangan lupa tetapkan RC_NET_STRICT_CHECKING="yes" di /etc/conf.d/rc.

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
}

Anda juga boleh menentukan password anda di /etc/ppp/pap-secrets.

Daftar Kode 4.4: Contoh /etc/ppp/pap-secrets

# Tanda * penting
"username"  *  "password"

Anda harus menginstal br2684ctl jika anda menggunakan PPPoE dengan modem USB. Bacalah /usr/portage/net-dialup/speedtouch-usb/files/README untuk mengetahui cara mengkonfigurasinya.

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

3.e. APIPA (Automatic Private IP Addressing)

APIPA mencoba untuk mendapatkan alamat bebas pada rentang 169.254.0.0-169.254.255.255 dengan melakukan arping sebuah alamat acak di rentang tersebut pada antarmuka jaringan. Jika tidak mendapatkan balasan maka alamat tersebut akan digunakan.

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" )

3.f. Bonding

Untuk bonding/trunking link, emerge net-misc/ifenslave.

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
}

3.g. Bridging (dukungan 802.1d)

Untuk dukungan bridging, emerge net-misc/bridge-utils.

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.

3.h. Alamat MAC

Anda tidak perlu menginstal apapun untuk mengganti alamat MAC antarmuka anda jika anda memiliki sys-apps/baselayout-1.11.14 atau yang lebih baru dan ingin menggunakan alamat MAC tertentu. Tetapi, jika anda perlu menggantinya ke alamat MAC acak atau memiliki baselayout yang lebih tua dari versi tersebut di atas, anda perlu menginstal net-analyzer/macchanger untuk dapat menggunakan fitur ini.

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"

3.i. Tunnelling

Anda tidak perlu menginstal apapun untuk dapat melakukan tunnelling karena pengatur antarmuka dapat melakukannya untuk anda.

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" )

3.j. VLAN (dukungan 802.1q)

Untuk mendapatkan dukungan VLAN, emerge net-misc/vconfig.

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

4.a. Pendahuluan

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.

4.b. WPA Supplicant

WPA Supplicant merupakan sebuah paket yang dapat anda gunakan untuk melakukan koneksi ke akses poin dengan WPA. Pengaturannya agak rumit karena masih dalam status beta - tetapi sudah dapat berfungsi dengan baik di banyak bagian.

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.

Sekarang kita harus mengkonfigurasi /etc/conf.d/net sesuai kebutuhan kita, jadi kita mendahulukan wpa_supplicant daripada wireless-tools (jika keduanya terinstal, wireless-tools akan menjadi default).

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.

Gampang kan? Bagaimanapun juga, kita masih harus mengkonfigurasi wpa_supplicant sendiri yang agak sedikit rumit, tergantung seberapa aman akses poin yang akan anda gunakan. Contoh berikut ini diambil dan disederhanakan dari /usr/share/doc/wpa_supplicant-<version>/wpa_supplicant.conf.gz yang disediakan oleh wpa_supplicant.

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"
}

4.c. Wireless Tools

Pengaturan awal dan modus managed

Wireless Tools menyediakan cara umum untuk mengkonfigurasi antarmuka wireless dasar sampai ke level keamanan WEP. WEP merupakan metode keamanan yang lemah, tetapi juga merupakan metode yang paling lazim dipakai.

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" )

Peningkatan pemilihan akses poin

Anda dapat memberikan opsi-opsi tambahan untuk meningkatkan pemilihan akses poin, tetapi biasanya hal ini tidak diperlukan.

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

Terakhir kita memiliki beberapa pilihan blacklist_aps dan unique_ap. blacklist_aps bekerja dengan cara yang mirip dengan preferred_aps. unique_ap merupakan nilai yes atau no yang menyatakan apakah antarmuka wireless kedua dapat melakukan koneksi ke AP yang sama dengan antarmuka pertama.

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"

Modus Ad-Hoc dan Master

Jika anda ingin menjadikan diri anda sebagai node Ad-Hoc jika anda gagal melakukan koneksi ke AP pada modus Managed, anda juga dapat melakukan ini.

Daftar Kode 3.4: fallback ke modus ad-hoc

adhoc_essid_eth0="This Adhoc Node"

Bagaimana dengan melakukan koneksi ke jaringan Ad-Hoc atau berjalan pada modus Master untuk menjadi Akses Poin? Berikut ini merupakan konfigurasinya! Anda mungkin perlu menentukan kunci-kunci WEP seperti yang disebutkan di atas.

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.

Memecahkan masalah seputar utilitas wireless

Terdapat beberapa variabel yang dapat anda gunakan untuk membantu anda menyalakan wireless jika terdapat masalah pada driver atau lingkungan. Berikut ini merupakan tabelnya.

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.

4.d. Menentukan konfigurasi jaringan per-ESSID

Terkadang, anda memerlukan IP statis ketika anda melakukan koneksi ke ESSID1 dan anda memerlukan DHCP ketika anda melakukan koneksi ke ESSID2. Sebenarnya, hampir semua variabel modul dapat didefinisikan per ESSID. Berikut ini cara melakukannya.

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

5.a. Hook Fungsi Standar

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
}

5.b. Hook Fungsi Tool Wireless

Catatan: Ini tidak akan bekerja dengan Permohonan WPA - tetapi variabel ${ESSID} dan ${ESSIDVAR} tersedia di fungsi postup().

Dua fungsi dapat didefinisikan yang akan dipanggil di sekeliling fungsi-fungsi terkait. Fungsi-fungsi ini dipanggil dengan nama antarmuka dulu agar satu fungsi dapat mengendalikan banyak antarmuka.

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

6.a. 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.

6.b. ifplugd

ifplugd merupakan daemon yang menyalakan dan mematikan antarmuka ketika kabel ethernet dipasang atau dilepas. Daemon ini juga dapat mengatur asosiasi deteksi ke akses poin atau ketika ada akses poin baru yang ditemukan.

Daftar Kode 2.1: Instalasi ifplugd

# emerge sys-apps/ifplugd

Konfigurasi ifplugd sangatlah mudah. File konfigurasi terletak di /etc/conf.d/net. Jalankan man ifplugd untuk mengetahui kegunaan kegunaan dari setiap variabel. Baca juga /etc/conf.d/net.example untuk mengetahui contoh-contoh konfigurasi.

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"

Sebagai tambahan untuk pengaturan koneksi jaringan yang lebih dari satu, anda mungkin perlu menginstal sebuah tool untuk mempermudah penggunaan banyak server DNS dalam satu waktu beserta konfigurasinya. Tool ini sangat berguna jika anda mendapatkan alamat IP dari server DHCP. Cukup instal openresolv.

Daftar Kode 2.3: Instalasi openresolv

# emerge openresolv

Print

Diperbarui 17 April 2008

Versi asli dari terjemahan ini tidak diperbarui lagi

Rangkuman: Dokumen ini merupakan Buku Pegangan Instalasi Gentoo Tanpa Jaringan, yang berusaha menggabungkan semua informasi tentang Gentoo Linux. Buku Pegangan ini berisi petunjuk instalasi pada sistem PPC tanpa akses internet dan beberapa bagian tentang bekerja dengan Gentoo dan Portage

Sven Vermeulen
Author

Roy Marples
Author

Daniel Robbins
Author

Chris Houser
Author

Jerry Alexandratos
Author

Seemant Kulleen
Gentoo x86 Developer

Tavis Ormandy
Gentoo Alpha Developer

Jason Huebel
Gentoo AMD64 Developer

Guy Martin
Gentoo HPPA developer

Pieter Van den Abeele
Gentoo PPC developer

Joe Kallar
Gentoo SPARC developer

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Joshua Saddler
Editor

Grant Goodyear
Reviewer

Gerald J. Normandin Jr.
Reviewer

Donnie Berkholz
Reviewer

Ken Nowack
Reviewer

Lars Weiler
Contributor

Siauw Nam Khong
Translator

Dzikri Aziz
Translator

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.