Buku Pegangan Instalasi Gentoo Linux Alpha 2007.0 Tanpa Jaringan
Daftar Isi:
-
Instalasi Gentoo
Pada bagian ini, anda akan belajar cara menginstal Gentoo pada sistem anda.
-
Tentang Proses Instalasi Gentoo Linux
Bab ini akan memperkenalkan metode instalasi pada bagian ini.
-
Boot CD Instalasi Universal
Dengan CD Instalasi Universal kami, anda dapat boot sistem anda ke
sebuah lingkungan yang dapat anda gunakan untuk menginstal Gentoo.
-
Konfigurasi Jaringan
Jika anda membutuhkan jaringan, di sinilah cara konfigurasi jaringan (dan
internet) dijelaskan.
-
Mempersiapkan Disk
Untuk menginstal Gentoo, anda harus menyediakan partisi-partisi yang
diperlukan. Bab ini menjelaskan cara mempartisi disk agar dapat
digunakan.
-
Menyalin File-file Instalasi Gentoo
Bab ini menjelaskan cara mengekstrak arsip stage3 dan mengkonfigurasi Portage.
-
Chroot ke dalam Sistem Dasar Gentoo
Setelah file stage3 diekstrak, kita akan melakukan chroot ke dalam sistem baru
dan mengubah variabel USE.
-
Konfigurasi Kernel
Kernel Linux adalah jantung dari setiap distro. Bab ini menjelaskan
cara mengkonfigurasi kernel.
-
Konfigurasi Sistem
Anda perlu mengedit beberapa file-file konfigurasi penting. Pada bab ini,
anda diberikan garis besar tentang file-file ini beserta penjelasannya.
-
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.
-
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.
-
Menyelesaikan Instalasi Gentoo
Anda hampir selesai. Kita hanya perlu membuat satu (atau lebih) pengguna
di sistem dan menginstal paket-paket prebuilt (opsional).
-
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.
-
Pengenalan Portage
Bab ini menjelaskan cara "sederhana" yang harus diketahui seorang pengguna
untuk memelihara software pada sistemnya.
-
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.
-
Fitur-fitur Portage
Kenali fitur-fitur yang dimiliki Portage, seperti kompilasi terdistribusi,
ccache, dan masih banyak lagi.
-
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.
-
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.
-
File dan Direktori
Jika anda ingin lebih mengenal Portage, anda harus mengetahui dimana portage
meletakkan file dan data-datanya.
-
Konfigurasi dengan Variabel
Portage dapat dikonfigurasi dengan bermacam-macam variabel yang bisa anda atur
di file konfigurasi sebagai variabel lingkungan.
-
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.
-
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.
-
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.
-
Siap Memulai
Panduan berisi cara mengaktifkan antarmuka jaringan dengan cepat pada
kebanyakan lingkungan umum.
-
Konfigurasi Lebih Lanjut
Disini kita akan belajar bagaimana sebuah konfigurasi bekerja - anda harus
mengetahui ini sebelum belajar tentang jaringan modular.
-
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.
-
Jaringan Nirkabel
Jaringan nirkabel sedikit rumit. Mudah-mudahan kami bisa membantu anda untuk
dapat menjalankannya!
-
Menambahkan Kegunaan
Jika anda suka berpetualang, anda bisa menambahkan beberapa kegunaan
jaringan anda sendiri.
-
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
| CPU |
Silahkan periksa di FAQ Alpha/Linux
|
| Memori |
64 MB |
| Ruang disk |
1.5 GB (belum termasuk swap) |
| Swap |
Paling sedikit 256 MB |
2.b. CD Instalasi Universal Gentoo
Pendahuluan
Gentoo Linux dapat diinstal dengan sebuah file tarbal stage3. Tarbal ini
adalah sebuah arsip yang berisi lingkungan minimal yang dapat anda gunakan
untuk menginstal Gentoo Linux.
Instalasi dengan stage1 atau stage2 tidak didokumentasikan di Buku Pegangan
Gentoo - bacalah FAQ Gentoo
untuk informasi tentang hal ini.
CD Instalasi Universal Gentoo
CD Instalasi Gentoo adalah CD bootable yang berisi lingkungan pendukung
Gentoo. Anda dapat mem-boot Linux dari CD tersebut. Ketika proses boot
berlangsung, hardware anda akan dideteksi dan driver-driver yang bersangkutan
akan dimuat. CD tersebut diperlihara oleh para pengembang Gentoo.
Kedua CD Instalasi yang kami sediakan saat ini adalah:
-
CD Instalasi Universal Gentoo, CD bootable yang memiliki kemampuan sama
seperti CD Instalasi Minimal, Sebagai tambahan, CD ini berisi beberapa
tarbal stage3 (teroptimasi untuk setiap subarsitektur).
-
CD Instalasi Minimal Gentoo, ramping, tanpa basa-basi, CD bootable
yang kegunaan utamanya adalah untuk mem-boot sistem, menyiapkan jaringan,
dan kemudian melanjutkan instalasi Gentoo.
CD Lain
Anda mungkin akan menemukan CD Paket di mirror kami. CD ini bukanlah CD
Instalasi, tetapi CD tambahan yang dapat anda gunakan pada instalasi tanpa
jaringan. Di dalamnya terdapat paket-paket jadi (juga dikenal dengan kumpulan
GRP) yang dapat anda gunakan untuk menginstal aplikasi tambahan (seperti
OpenOffice.org, KDE, GNOME,...) dengan mudah dan cepat setelah anda
menyelesaikan instalasi Gentoo tanpa jaringan.
Jika anda ingin menggunkan CD Paket untuk menginstal aplikasi tambahan, anda
harus menggunakan subarsitektur yang sama dengan tarbal stage3 yang anda
gunakan.
2.c. Download, Burn dan Boot CD Instalasi 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/alpha/2007.0/installcd
Di dalam direktori tersebut, anda akan menemukan file-file ISO. File-file
tersebut merupakan imej CD penuh yang dapat anda tuliskan ke sebuah CD-R.
Setelah mendownload file tersebut, anda dapat memeriksa 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).
-
Anda dapat memeriksa tanda kriptografi yang kami sediakan. Tetapi
sebelumnya anda harus mengambil kunci publik yang kami gunakan.
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, pastikan tandanya:
Daftar Kode 3.2: Memastikan 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 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 CD-RW drive anda).
-
Dengan K3B, pilih Tools > CD > Burn Image.
Lalu, anda dapat mencari file ISO anda di bagian "Image to Burn". Terakhir,
klik Start.
Boot CD Instalasi Universal
Ketika Alpha anda dinyalakan, yang pertama kali dijalankan adalah firmware.
Firmware hampir sama dengan BIOS di PC. Terdapat dua jenis firmware di sistem
Alpha: SRM (Systems Reference Manual) dan ARC (Advanced Risc
Console).
SRM didasarkan pada spesifikasi Alpha Console Subsystem, yang
menyediakan lingkungan operasi bagi sistem operasi OpenVMS, Tru64 UNIX, dan
Linux. ARM didasarkan pada spesifikasi Advanced Risc Computing (ARC),
yang menyediakan lingkungan operasi bagi Windows NT. Anda dapat menemukan panduan lengkap tentang
menggunakan SRM di website Linux Alpha.
Jika Alpha anda mendukung SRC dan ARC (ARC, AlphaBIOS, ARCSBIOS), anda harus
mengikuti intruksi ini
untuk beralih ke SRM. Jika komputer anda telah menggunakan SRM, anda sudah
siap. Jika sistem anda hanya dapat menggunakan ARC (Ruffian, nautilus, xl,
dll.), anda harus memilih MILO nantinya ketika kita berbicara tentang
bootloader.
Sekarang, untuk boot CD Instalasi Alpha, masukkan CD-ROM ke drive-nya lalu
reboot sistem anda. Anda dapat menggunakan SRM untuk boot dari CD Instalasi.
Jika anda tidak dapat melakukannya, anda harus menggunakan MILO. Jika
anda belum menginstal MILO, gunakan salah satu imej MILO jadi
yang tersedia di website
taviso.
Daftar Kode 3.3: Boot CD-ROM dengan SRM |
>>> show device
dkb0.0.1.4.0 DKB0 TOSHIBA CDROM
)
>>> boot dkb0 -flags 0
>>> boot dkb0 -flags 2
|
Daftar Kode 3.4: Booting a CD-ROM using MILO |
MILO> boot hdb:/boot/gentoo_2.6 initrd=/boot/gentoo_2_6.igz root=/dev/ram0 init=/linuxrc looptype=zisofs loop=/zisofs cdroot
MILO> boot hdb:/boot/gentoo_2.6 initrd=/boot/gentoo_2_6.igz root=/dev/ram0 init=/linuxrc looptype=zisofs loop=/zisofs console=ttyS0 cdroot
|
Anda akan menemukan prompt root ("#") di konsol anda dan dapat berpindah
konsol dengan menekan Alt-F2, Alt-F3 dan Alt-F4. Kembalilah ke konsol pertama
anda dengan menekan Alt-F1.
Sekarang, lanjutkan dengan Konfigurasi Hardware
Tambahan.
Konfigurasi Hardware Tambahan
Ketika CD Instalasi boot, semua hardware anda akan dicoba untuk dikenali dan
modul-modul kernel yang diperlukan dimuat untuk mendukungnya. Pada kebanyakan
kasus, proses tersebut sukses. Tetapi, pada beberapa kasus lainnya, proses
tersebut mungkin tidak memuat modul kernel yang anda butuhkan secara otomatis.
Jika proses pengenalan perangkat PCI melewatkan beberapa hardware di sistem
anda, anda harus memuat sendiri modul kernel tersebut.
Pada contoh berikut ini, kita akan mencoba memuat modul 8139too
(dukungan bagi beberapa jenis perangkat jaringan):
Daftar Kode 3.5: Memuat modul kernel |
# modprobe 8139too
|
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.6: 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.7: Tweak performa harddisk |
# hdparm -d 1 /dev/hda
# 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 akun user yang diperlukan dan
mengganti password root.
Untuk mengganti password root, gunakan perintah passwd:
Daftar Kode 3.8: Mengganti password root |
# passwd
New password:
Re-enter password:
|
Untuk membuat sebuah akun, pertama-tama kita masukkan identitasnya, diikuti
dengan password. Kita dapat menggunakan perintah useradd dan
passwd. Pada contoh berikut, kita akan membuat sebuah akun user dengan
nama "john".
Daftar Kode 3.9: Membuat akun user |
# useradd -m -G users john
# passwd john
New password:
Re-enter password:
|
Anda dapat mengganti id user anda dari root menjadi user yang baru dibuat
menggunakan perintah su:
Daftar Kode 3.10: 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 sebuah akun user baru (baca Opsional: User Account). Lalu tekan Alt-F2
untuk masuk ke terminal baru dan log in.
Jika anda ingin membaca dokumentasi di CD, anda dapat langsung menjalankan
lynx untuk membacanya:
Daftar Kode 3.11: Membaca dokumentasi di CD |
# lynx /mnt/cdrom/docs/html/index.html
|
Bagaimanapun juga, kami menganjurkan anda untuk menggunakan Buku Pegangan
Gentoo versi online karena lebih baru daripada versi di CD. Anda dapat
membacanya dengan lynx, tetapi hanya setelah anda menyelesaikan bab
Konfigurasi Jaringan (jika tidak, anda tidak akan dapat terhubung ke
internet untuk membaca dokumen):
Daftar Kode 3.12: Membaca Dokumentasi online |
# lynx http://www.gentoo.org/doc/id/handbook/2007.0/handbook-alpha.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 pengguna tersebut 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.13: Menjalankan daemon SSH |
# /etc/init.d/sshd start
|
Untuk dapat menggunakan sshd, pertama anda harus menyiapkan jaringan. Lanjutkan
dengan bab berikutnya tentang Konfigurasi
aringan.
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 |
# export http_proxy="http://proxy.gentoo.org:8080"
# export ftp_proxy="ftp://proxy.gentoo.org:8080"
# 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 |
# 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
# 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 |
# iwconfig eth0 essid GentooNode
# iwconfig eth0 key 1234123412341234abcd
# 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 Device
Kita akan melihat lebih dalam lagi tentang aspek disk di Gentoo Linux dan Linux
pada umumnya, termasuk filesystem Linux, partisi dan block device. Kemudian,
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 SCSI pertama anda
di sistem Linux, bernama /dev/sda.
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 anda 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.
Slice
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 sistem Alpha, block device kecil tersebut dikenal sebagai
slice.
4.b. Merancang Skema Partisi
Skema Partisi Default
Sebagai contoh, kami menggunakan tabel slice berikut:
| Slice |
Penjelasan |
| /dev/sda1 |
Slice swap |
| /dev/sda2 |
Slice root |
| /dev/sda3 |
Disk penuh (diperlukan) |
Jika anda tertarik untuk mengetahui seberapa besar sebuah partisi harusnya,
atau tentang berapa banyak partisi (atau volume) yang anda perlukan, baca terus
seksi selanjutnya. Jika tidak, lanjutkan ke Menggunakan
fdisk untuk mempartisi disk anda (hanya untuk SRM) atau Menggunakan fdisk untuk mempartisi disk anda (hanya untuk
ARC/AlphaBIOS
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, tetapi 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 pada tujuan anda.
Partisi-partisi yang terpisah memiliki beberapa keuntungan:
-
Anda dapat memilih filesystem yang paling tepat untuk setiap partisi
-
Seluruh sistem anda tidak akan kehabisan ruang jika sebuah aplikasi secara
terus-menerus menulis 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 (setuid bit 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.
4.c. Menggunakan fdisk untuk Mempartisi Disk
Bagian berikut ini menjelaskan cara menciptakan contoh tabel slice seperti
yang dijabarkan sebelumnya, yaitu:
| Slice |
Penjelasan |
| /dev/sda1 |
Slice swap |
| /dev/sda2 |
Slice root |
| /dev/sda3 |
Disk penuh (diperlukan) |
Gantilah skema slice sesuka anda.
Mencari tahu Disk yang Tersedia
Untuk mencari tahu disk apa yang anda jalankan, gunakan perintah berikut:
Daftar Kode 3.1: Mencari tahu disk yang tersedia |
# dmesg | grep 'drive$'
# dmesg | grep 'scsi'
|
Dari tampilan tersebut, anda dapat mengetahui disk apa yang terdeteksi dan
nama /dev-nya. Di bagian selanjutnya, kami anggap disk tersebut
adalah disk SCSI di /dev/sda.
Sekarang jalankan fdisk:
Daftar Kode 3.2: Menjalankan fdisk |
# fdisk /dev/sda
|
Menghapus Semua Slice
Jika harddisk anda benar-benar kosong, maka anda perlu menciptakan disklabel
BSD terlebih dahulu.
Daftar Kode 3.3: Menciptakan disklabel BSD |
Command (m for help): b
/dev/sda contains no disklabel.
Do you want to create a disklabel? (y/n) y
3 partitions:
# start end size fstype [fsize bsize cpg]
c: 1 5290* 5289* unused 0 0
|
Kita mulai dengan menghapus semua slice kecuali slice 'c' (dibutuhkan
ketika menggunakan disklabel BSD). Berikut ini adalah cara menghapus sebuah
slice (di contoh ini, kita menggunakan 'a'). Ulangi proses tersebut untuk
menghapus semua slice yang lain (kecuali slice 'c').
Ketik p untuk menampilkan semua slice yang telah ada, d
untuk menghapus sebuah slice.
Daftar Kode 3.4: Menghapus slice |
BSD disklabel command (m for help): p
8 partitions:
# start end size fstype [fsize bsize cpg]
a: 1 235* 234* 4.2BSD 1024 8192 16
b: 235* 469* 234* swap
c: 1 5290* 5289* unused 0 0
d: 469* 2076* 1607* unused 0 0
e: 2076* 3683* 1607* unused 0 0
f: 3683* 5290* 1607* unused 0 0
g: 469* 1749* 1280 4.2BSD 1024 8192 16
h: 1749* 5290* 3541* unused 0 0
BSD disklabel command (m for help): d
Partition (a-h): a
|
Setelah mengulangi proses ini untuk seluruh slice, tampilan tabel slice anda
akan tampak seperti ini:
Daftar Kode 3.5: Menampilkan tabel kosong |
BSD disklabel command (m for help): p
3 partitions:
# start end size fstype [fsize bsize cpg]
c: 1 5290* 5289* unused 0 0
|
Menciptakan Slice Swap
Pada sistem berbasis Alpha, anda tidak perlu menciptakan partisi boot yang
terpisah. Tetapi, silinder pertama tidak dapat digunakan karena imej
aboot akan disimpan di sini.
Kita akan menciptakan sebuah slice swap yang dimulai dari silinder ketiga,
sebesar 1 GB. Ketik n untuk menciptakan sebuah slice baru. Lalu,
kita akan mengubah tipenya menjadi 1 (satu), yaitu swap.
Daftar Kode 3.6: Menciptakan slice swap |
BSD disklabel command (m for help): n
Partition (a-p): a
First cylinder (1-5290, default 1): 3
Last cylinder or +size or +sizeM or +sizeK (3-5290, default 5290): +1024M
BSD disklabel command (m for help): t
Partition (a-c): a
Hex code (type L to list codes): 1
|
Setelah anda menyelesaikan langkah-langkah di atas, anda seharusnya akan
melihat tabel slice seperti berikut:
Daftar Kode 3.7: Tabel slice setelah slice swap diciptakan |
BSD disklabel command (m for help): p
3 partitions:
# start end size fstype [fsize bsize cpg]
a: 3 1003 1001 swap
c: 1 5290* 5289* unused 0 0
|
Menciptakan Slice Root
Sekarang kita akan menciptakan slice root, yang dimulai dari silinder pertama
setelah slice swap. Gunakan p untuk melihat di silinder mana
slice swap berakhir. Di contoh kita, slice swap berakhir di silinder 1003, jadi
partisi root kita akan dimulai dari silinder 1004.
Masalah lain adalah terdapat bug di program fdisk yang membuat program
fdisk menganggap silinder yang tersedia satu silinder di atas nomor
silinder yang sebenarnya. Dengan kata lain, ketika anda ditanya silinder
terakhir, kurangi satu nomor silinder tersebut (di contoh ini: 5290).
Setelah slice tersebut diciptakan, kita akan mengganti tipenya menjadi
8, untuk ext2.
Daftar Kode 3.8: Menciptakan slice root |
D disklabel command (m for help): n
Partition (a-p): b
First cylinder (1-5290, default 1): 1004
Last cylinder or +size or +sizeM or +sizeK (1004-5290, default 5290): 5289
BSD disklabel command (m for help): t
Partition (a-c): b
Hex code (type L to list codes): 8
|
Tabel slice anda sekarang akan tampak seperti berikut:
Daftar Kode 3.9: Menampilkan tabel slice |
BSD disklabel command (m for help): p
3 partitions:
# start end size fstype [fsize bsize cpg]
a: 3 1003 1001 swap
b: 1004 5289 4286 ext2
c: 1 5290* 5289* unused 0 0
|
Simpan Tabel Slice dan Keluar
Simpanlah tabel slice anda dengan mengetikkan w di fdisk.
Daftar Kode 3.10: Simpan dan keluar dari fdisk |
Command (m for help): w
|
Sekarang setelah slice-slice anda diciptakan, anda dapat melanjutkan ke
Menciptakan Filesystem.
4.d. Menggunakan fdisk untuk mempartisi Disk (hanya untuk ARC/AlphaBIOS)
Bagian berikut ini akan menjelaskan cara mempartisi disk dengan layout yang
mirip yang telah dijelaskan sebelumnya, yaitu:
| Partisi |
Penjelasan |
| /dev/sda1 |
Partisi boot |
| /dev/sda2 |
Swap partition |
| /dev/sda3 |
Partisi root |
Gantilah layout partisi sesuai dengan kebutuhan anda.
Mencari tahu Disk yang Tersedia
Untuk mencari tahu disk apa yang anda jalankan, gunakan perintah berikut:
Daftar Kode 4.1: Melihat disk yang tersedia |
# dmesg | grep 'drive$'
# dmesg | grep 'scsi'
|
Dari tampilan tersebut, anda dapat mengetahui disk apa yang terdeteksi dan
nama /dev-nya. Di bagian selanjutnya, kami anggap disk tersebut
merupakan disk SCSI di /dev/sda.
Sekarang jalankan fdisk:
Daftar Kode 4.2: Menjalankan fdisk |
# fdisk /dev/sda
|
Menghapus Semua Partisi
Jika harddisk anda benar-benar kosong, maka anda perlu menciptakan sebuah
disklabel DOS dahulu.
Daftar Kode 4.3: Menciptakan disklabel DOS |
Command (m for help): o
Building a new DOS disklabel.
|
Kita mulai dengan menhapus semua partisi. Berikut ini cara menghapus sebuah
partisi (pada contoh ini kita menggunakan '1'). Ulangi langkah ini untuk
menghapus semua partisi lain.
Ketik p untuk menampilkan semua partisi yang telah ada, lalu d
untuk menghapus sebuah partisi.
Daftar Kode 4.4: Menghapus sebuah partisi |
command (m for help): p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 478 489456 83 Linux
/dev/sda2 479 8727 8446976 5 Extended
/dev/sda5 479 1433 977904 83 Linux Swap
/dev/sda6 1434 8727 7469040 83 Linux
command (m for help): d
Partition number (1-6): 1
|
Menciptakan partisi boot
Pada sistem Alpha yang menggunakan MILO untuk boot, kita harus membuat sebuah
partisi boot vfat kecil.
Daftar Kode 4.5: Menciptakan partisi boot |
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-8727, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-8727, default 8727): +16M
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 6
Changed system type of partition 1 to 6 (FAT16)
|
Menciptakan Partisi Swap
Kita akan menciptakan sebuah partisi swap dimulai dari silinder ketiga,
dengan ukuran 1 GB. Ketik n untuk membuat sebuah partisi baru.
Daftar Kode 4.6: Menciptakan Partisi Swap |
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (17-8727, default 17): 17
Last cylinder or +size or +sizeM or +sizeK (17-8727, default 8727): +1000M
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)
|
Setelah anda menyelesaikan langkah-langkah di atas, anda seharusnya akan
melihat tabel slice seperti berikut:
Daftar Kode 4.7: Tabel partisi setelah partisi swap diciptakan |
Command (m for help): p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 16 16368 6 FAT16
/dev/sda2 17 971 977920 82 Linux swap
|
Menciptakan Partisi Root
Sekarang kita akan menciptakan partisi root. Ketik lagi perintah n.
Daftar Kode 4.8: Menciptakan Partisi Root |
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (972-8727, default 972): 972
Last cylinder or +size or +sizeM or +sizeK (972-8727, default 8727): 8727
|
Tabel partisi anda sekarang akan tampak seperti berikut:
Daftar Kode 4.9: Tabel partisi setelah partisi root diciptakan |
Command (m for help): p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 16 16368 6 FAT16
/dev/sda2 17 971 977920 82 Linux swap
/dev/sda3 972 8727 7942144 83 Linux
|
Simpan Tabel Partisi dan Keluar
Simpanlah tabel slice anda dengan mengetikkan w di fdisk.
Daftar Kode 4.10: Simpan dan keluar dari fdisk |
Command (m for help): w
|
Sekarang setelah partisi-partisi anda diciptakan, anda dapat melanjutkan ke
Menciptakan Filesystem.
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 Partisi. Jika
tidak, baca terus untuk mengetahui filesystem-filesystem yang tersedia...
Filesystem?
Ada beberapa filesystem yang tersedia. Beberapa filesystem tersebut
ditemukan stabil di arsitektur Alpha.
Catatan:
aboot hanya mendukung booting dari partisi ext2 and ext3.
|
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. Journal filesystem menghindari waktu
tunda ketika anda boot dari sistem dimana filesystem anda kebetulan berada
pada saat inkonsisten.
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 hashed
B*-tree index yang dapat meningkatkan performa pada hampir semua situasi.
Pendek kata, ext 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 directory yang mengandung puluhan ribu file.
XFS adalah filesystem dengan journal metadata yang datang dengan
fungsi fungsi mapan dan teroptimasi untuk skalabilitas. Kami hanya
merekomendasikan anda menggunakan 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
sewaktu menulis ke disk, dan ada beberapa program seperti itu) berjalan dan
sistem tiba-tiba mati.
JFS adalah filesystem journal dengan performa tinggi dari IBM.
Filesystem ini baru-baru ini menjadi filesystem yang siap pakai, dan sampai
saat ini belum banyak tentang filesystem ini jadi kami tidak dapat berkomentar
apakah filesystem ini bagus atau tidak dalam hal stabilitas, dll.
Menciptakan Filesystem di sebuah 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 |
mkreiserfs |
| xfs |
mkfs.xfs |
| jfs |
mkfs.jfs |
Sebagai contoh, untuk menciptakan filesystem ext3 di partisi root
(/dev/sda2 di contoh kita), anda harus menjalankan:
Daftar Kode 5.1: Menciptakan filesystem di partisi |
# mke2fs -j /dev/sda2
|
Sekarang ciptakan filesystem di seluruh partisi-partisi anda.
Mengaktifkan Partisi Swap
mkswap merupakan perintah untuk menciptakan partisi swap:
Daftar Kode 5.2: Menciptakan partisi swap |
# mkswap /dev/sda1
|
Untuk mengaktifkan partisi swap, gunakan swapon:
Daftar Kode 5.3: Mengaktifkan partisi swap |
# swapon /dev/sda1
|
Ciptakan dan aktifkan swap sekarang.
4.f. Mount
Setelah partisi-partisi anda memiliki filesystemnya masing-masing, sekarang
saatnya untuk me-mount partisi-partisi tersebut. Gunakan perintah mount.
Ingat untuk menciptakan direktori-direktori mount yang diperlukan untuk setiap
partisi anda. Sebagai contoh, kita akan me-mount partisi root dan boot:
Daftar Kode 6.1: Mount partisi |
# mount /dev/sda2 /mnt/gentoo
|
Catatan:
Jika anda meletakkan /tmp di partisi yang terpisah, jangan lupa
ganti perizinannya setelah proses mount: 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-alpha-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-alpha-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="-mieee -pipe -O2 -mcpu=ev6"
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
|
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. Misalnya, GMT-8 sesungguhnya adalah GMT+8.
Daftar Kode 1.1: Mengatur zona waktu |
# ls /usr/share/zoneinfo
# 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.
Untuk sistem berbasis alpha kami menyediakan gentoo-sources (source
kernel 2.6 default).
Pada contoh ini, kita akan menginstal gentoo-sources. Tentu saja,
gantikan nama kernelnya dengan pilihan anda, berikut ini hanya merupakan
contoh.
Daftar Kode 2.1: Instalasi kernel |
# emerge gentoo-sources
|
Jika anda melihat isi direktori /usr/src, anda akan menemukan
sebuah link simbolik (symlink) bernama linux yang menunjuk ke
kernel anda. Pada contoh ini, source kernel yang terinstal menunjuk ke
gentoo-sources-2.6.19-r5. Versi yang anda miliki
bisa jadi berbeda, jadi ingatlah ini selalu.
Daftar Kode 2.2: Melihat link simbolik kernel |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-2.6.19-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 cara konfigurasi secara "manual" dahulu, karena cara ini adalah
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 dilewati 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. Anda dapat 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).
Sekarang, masuklah ke direktori kernel anda dan jalankan make
menuconfig. Perintah ini akan menampilkan menu konfigurasi berbasis
ncurses.
Daftar Kode 3.1: Menjalankan menuconfig |
# cd /usr/src/linux
# make menuconfig
|
Anda akan menemukan beberapa seksi konfigurasi. Pertama-tama akan menjelaskan
beberapa opsi yang harus anda aktifkan (jika tidak, Gentoo tidak dapat
berfungsi dengan baik).
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
General setup --->
[*] Support for hot-pluggable devices
|
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.
Aktifkan juga pilihan Virtual memory dan /proc file system.
Daftar Kode 3.3: Memilih filesystem yang diperlukan |
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
|
Jika anda menggunakan PPPoE untuk koneksi internet atau modem dial-up, anda
memerlukan opsi-opsi berikut di kernel:
Daftar Kode 3.4: Memilih driver-driver PPPoE yang diperlukan |
Device Drivers --->
Networking 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 benar-benar diperlukan, begitu
juga dengan opsi PPP over Ethernet, opsi-opsi tersebut mungkin hanya
digunakan oleh ppp jika dikonfigurasi untuk melakukan PPPoE modus
kernel.
Jika anda memerlukannya, jangan lupa aktifkan dukungan kernel untuk kartu
ethernet anda.
Opsi-opsi berikut ini juga dianjurkan:
Daftar Kode 3.5: Opsi-opsi Alpha yang dianjurkan |
General setup --->
<*> SRM environment through procfs
<*> Configure uac policy via sysctl
Plug and Play configuration --->
<*> Plug and Play support
<M> ISA Plug and Play support
SCSI support --->
SCSI low-level drivers --->
<*> SYM53C8XX Version 2 SCSI support (NEW)
<*> Qlogic ISP SCSI support
Network device support --->
Ethernet (10 or 100 Mbit) --->
<M> DECchip Tulip (dc21x4x) PCI support
<M> Generic DECchip & DIGITAL EtherWORKS PCI/EISA
<M> EtherExpressPro/100 support (eepro100)
<M> EtherExpressPro/100 support (e100)
Ethernet (1000 Mbit) --->
<M> Alteon AceNIC
[*] Omit support for old Tigon I
<M> Broadcom Tigon3
[*] FDDI driver support
<M> Digital DEFEA and DEFPA
<*> PPP support
<*> PPP Deflate compression
Character devices --->
[*] Support for console on serial port
[*] Direct Rendering Manager
File systems --->
<*> Kernel automounter version 4 support
Network File Systems --->
<*> NFS
[*] NFSv3 client
<*> NFS server
[*] NFSv3 server
Partition Types --->
[*] Advanced partition selection
[*] Alpha OSF partition support
Native Language Support
<*> NLS ISO 8859-1
Sound --->
<M> Sound card support
<M> OSS sound modules
[*] Verbose initialisation
[*] Persistent DMA buffers
<M> 100% Sound Blaster compatibles
|
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 mulai proses kompilasi kernel:
Daftar Kode 3.6: Kompilasi kernel |
# make && make modules_install
# make boot
|
Setelah kernel selesai dikompilasi, salin imej kernel tersebut ke
/boot. Kernel-kernel terbaru mungkin akan menciptakan
vmlinux, bukan vmlinux.gz. Ingat ini ketika anda
menyalin imej kernel anda.
Daftar Kode 3.7: Instalasi kernel |
# cp arch/alpha/boot/vmlinux.gz /boot/
|
Sekarang lanjutkan ke Instalasi Modul-Modul
Kernel.
7.d. Alternatif: Menggunakan genkernel
Jika anda membaca bagian ini, berarti anda memilih untuk menggunakan skrip
genkernel kami untuk mengkonfigurasi kernel bagi anda.
Setelah source kernel anda terinstal, sekarang saatnya untuk mengkompilasi
kernel anda menggunakan 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 mendeteksi semua perangkat keras anda pada saat
boot, seperti yang dilakukan oleh CD Instalasi kami. Karena genkernel tidak
memerlukan konfigurasi kernel secara manual, cara ini 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 4.1: Emerge genkernel |
# emerge genkernel
|
Kemudian, kompilasilah kernel anda dengan menjalankan perintah
genkernel all. 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 harus mengkonfigurasi kernel secara manual dengan perintah
genkernel --menuconfig all dan tambahkan dukungan untuk filesystem anda
di dalam kernel (bukan sebagai modul).
Daftar Kode 4.2: Menjalankan genkernel |
# genkernel 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 kerika 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.
Daftar Kode 4.3: Memeriksa nama kernel dan initrd yang baru diciptakan |
# ls /boot/kernel* /boot/initramfs-*
|
7.e. Instalasi Modul-Modul Kernel
Konfigurasi Modul
Anda harus menuliskan semua modul yang ingin anda muat secara otomatis
di file /etc/modules.autoload.d/kernel-2.6. Anda juga dapat
menambahkan opsi-opsi tambahan pada modul-modul tersebut jika anda mau.
Untuk melihat modul yang tersedia, jalankan perintah find berikut.
Jangan lupa untuk menggantikan "<versi kernel>" dengan versi kernel yang
baru saja anda kompilasi:
Daftar Kode 5.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 atau dan menuliskan nama modul
tersebut di dalamnya.
Daftar Kode 5.2: Edit file /etc/modules.autoload.d/kernel-2.6 |
# nano -w /etc/modules.autoload.d/kernel-2.4
|
Daftar Kode 5.3: /etc/modules.autoload.d/kernel-2.6 |
3c59x
|
Lanjutkan proses instalasi dengan bab 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
|
Mari kita lihat cara menulis opsi-opsi untuk partisi /boot. Ini
hanyalah contoh, jika anda tidak menciptakan partisi /boot
terpisah, jangan disalin.
Pada contoh tabel partisi Alpha kita, biasanya /boot
adalah partisi /dev/sda1, dengan ext2 sebagai
filesystem-nya. Partisi ini harus diperiksa ketika boot, jadi kita tuliskan:
Daftar Kode 1.2: Contoh baris /boot di /etc/fstab |
/dev/sda1 /boot ext2 defaults 1 2
|
Anda mungkin tidak ingin partisi /boot di-mount secara otomatis
untuk meningkatkan keamanan sistem. Untuk itu, gantikan defaults dengan
noauto. Ini berarti anda perlu me-mount sendiri partisi ini setiap kali
anda ingin menggunakannya.
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:
Daftar Kode 1.3: Contoh lengkap /etc/fstab |
/dev/sda1 /boot ext2 defaults,noatime 1 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / ext3 noatime 0 1
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
HOSTNAME="tux"
|
Kemudian kita tetapkan nama domain:
Daftar Kode 2.2: Menetapkan nama domain |
# nano -w /etc/conf.d/net
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
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 |
127.0.0.1 tux.homenetwork tux localhost
192.168.0.5 jenny.homenetwork jenny
192.168.0.6 benny.homenetwork benny
|
Simpan dan keluarlah dari editor untuk melanjutkan
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.
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.
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. Menentukan Pilihan
Pendahuluan
Sekarang setelah kernel anda terkonfigurasi dan dikompilasi, serta file-file
konfigurasi sistem yang penting telah diisi dengan benar, ini saatnya untuk
menginstal sebuah program yang akan menjalankan kernel anda ketika anda
menghidupkan komputer anda. Program tersebut adalah bootloader.
Terdapat beberapa bootloader untuk Linux/Alpha. Anda harus memilih salah satu
dari bootloader yang didukung, bukan semua. Anda memiliki pilihan antara aBoot dan MILO.
10.b. Default: Menggunakan aboot
Catatan:
aboot hanya mendukung boot dari partisi ext2 dan ext3
|
Pertama-tama, kita instal aboot di sistem kita. Tentu saja kita menggunakan
perintah emerge untuk melakukannya:
Daftar Kode 2.1: Instalasi aboot |
# emerge aboot
|
Langkah selanjutnya adalah menjadikan bootdisk kita bootable. Ini akan
menjalankan aboot pada saat anda boot sistem anda. Kita lakukan ini
dengan dengan menuliskan aboot pada awal disk kita.
Daftar Kode 2.2: Menjadikan bootdisk bootable |
# swriteboot -f3 /dev/sda /boot/bootlx
# abootconf /dev/sda 2
|
Catatan:
Jika anda menggunakan skema partisi yang berbeda dari yang kami gunakan di
panduan ini, anda harus menyesuaikan perintah-perintahnya. Bacalah
halaman-halaman manual yang bersangkutan (man 8 swriteboot dan man 8
abootconf). Begitu juga jika filesystem root anda menggunakan filesystem
JFS, jangan lupa tambahkan ro sebagai opsi kernel agar JFS dapat
me-replay log-nya sebelum melakukan mount secara read-write.
|
Sebagai tambahan, anda dapat membuat Gentoo boot secara otomatis dengan
mengatur file konfigurasi aboot dan beberapa variabel. Anda juga dapat mencoba
untuk menetapkan variabel-variabel ini dari Linux, tetapi akan lebih mudah
untuk melakukannya langsung dari konsol SRM.
Daftar Kode 2.3: Otomatis boot Gentoo |
# echo '0:2/boot/vmlinux.gz root=/dev/sda2' > /etc/aboot.conf
# cd /proc/srm_environment/named_variables
# echo -n 0 > boot_osflags
# echo -n '' > boot_file
# echo -n 'BOOT' > auto_action
# echo -n 'dkc100' > bootdef_dev
|
Jika anda harus masuk ke konsol SRM lagi (untuk memperbaiki instalasi Gentoo
anda, bermain dengan beberapa variabel, atau lain-lain), tekan saja CTRL+C
untuk membatalkan proses boot otomatis.
Jika anda melakukan instalasi dengan menggunakan konsol serial, jangan lupa
untuk mengikutsertakan flag boot konsol serial di aboot.conf.
Bacalah /etc/aboot.conf.example untuk informasi lebih lanjut.
Sekarang aboot telah terkonfigurasi dan siap digunakan. Lanjutkan ke Reboot Sistem.
10.c. Alternatif: Menggunakan MILO
Sebelum melanjutkan, anda sebaiknya memilih bagaimana cara menggunakan MILO. Di
bagian ini, kami menganggap anda ingin membuat floppy boot MILO. Jika anda
ingin boot dari sebuah partisi MS-DOS di harddisk anda, sebaiknya anda
menyesuaikan perintah-perintahnya.
Untuk menginstal MILO, kita gunakan perintah emerge.
Daftar Kode 3.1: Instalasi MILO |
# emerge --usepkg milo
|
Setelah MILO terinstal, imej MILO seharusnya berada di /opt/milo.
Perintah-perintah berikut ini menciptakan floppy boot untuk digunakan dengan
MILO. Jangan lupa gunakan imej yang benar untuk sistem Alpha anda.
Daftar Kode 3.2: Instalasi MILO di floppy |
# fdformat /dev/fd0
# mformat a:
# mcopy /opt/milo/milo-2.2-18-gentoo-ruffian a:\milo
# mcopy /opt/milo/linload.exe a:\linload.exe
# mcopy /opt/milo/ldmilo.exe a:\ldmilo.exe
# echo -ne '\125\252' | dd of=/dev/fd0 bs=1 seek=510 count=2
|
Floppy boot MILO anda sekarang sudah siap untuk boot ke Gentoo Linux. Anda
mungkin perlu mengatur variabel lingkungan di Firmware ARCS anda agar MILO
berjalan; Hal ini dijelaskan di MILO-HOWTO dengan beberapa
contoh-contoh di sistem-sistem umum, dan contoh perintah-perintah yang
digunakan di modus interaktif.
Tidak membaca MILO-HOWTO
adalah ide yang buruk.
Sekarang lanjutkan ke Reboot Sistem.
10.d. Reboot Sistem
Keluarlah dari lingkungan chroot dan unmount semua partisi yang ter-mount. Lalu
ketik perintah ajaib yang telah anda tunggu-tunggu: reboot.
Daftar Kode 4.1: Keluar dari lingkungan chroot, unmount semua partisi and reboot |
# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot
|
Tentu saja, jangan lupa untuk mengeluarkan CD bootable, jika tidak CD tersebut
akan di-boot lagi, bukan sistem Gentoo baru anda.
Setelah anda reboot ke sistem Gentoo anda, 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:
# useradd -m -G users,wheel,audio -s /bin/bash john
# passwd john
Password:
Re-enter password:
|
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:
|
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 |
# 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
# export PKGDIR="/mnt/cdrom/packages"
# 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 |
# 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
# 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
|
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 |
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):
-
Pengaturan USE default yang ditentukan di file make.defaults
sebagai bagian dari profil anda
-
Pengaturan USE yang didefinisikan ditentukan di /etc/make.conf
-
Pengaturan USE yang ditentukan oleh pengguna di
/etc/portage/package.use
-
Pengaturan USE yang ditentukan oleh pengguna sebagai variabel lingkungan
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 : 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
+ + : 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() {
}
start() {
}
stop() {
}
restart() {
}
|
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
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 |
# cd /etc/runlevels/default
# for service in *; do rc-update add $service offline; done
# rc-update del net.eth0 offline
# rc-update show offline
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"
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 |
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 |
config_eth0=( "dhcp" )
config_eth0=( "192.168.0.7/24" )
routes_eth0=( "default gw 192.168.0.1" )
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 |
config_eth0=(
"192.168.0.2/24"
"192.168.0.3/24"
"192.168.0.4/24"
)
config_eth0=(
"192.168.0.2/24"
"4321:0:1:2:3:4:567:89ab"
"4321:0:1:2:3:4:567:89ac"
)
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 |
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 |
dns_domain_My____NET="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 |
modules=( "iproute2" )
modules_eth0=( "udhcpc" )
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
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" )
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 |
modules=( "dhcpcd" )
config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10"
dhcp_eth0="release nodns nontp nonis"
|
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 )
config_ppp0=( "ppp" )
link_ppp0="eth0"
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 |
"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 |
config_eth0=( "dhcp" )
fallback_eth0=( "apipa" )
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 |
slaves_bond0="eth0 eth1 eth2"
config_bond0=( "null" )
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 |
brctl_br0=( "setfd 0" "sethello 0" "stp off" )
bridge_br0="eth0 eth1"
config_eth0=( "null" )
config_eth1=( "null" )
config_br0=( "192.168.0.1/24" )
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 |
mac_eth0="00:11:22:33:44:55"
mac_eth0="random-ending"
mac_eth0="random-samekind"
mac_eth0="random-anykind"
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 |
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"
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 |
vlans_eth0="1 2"
vconfig_eth0=( "set_name_type VLAN_PLUS_VID_NO_PAD" )
vconfig_vlan1=( "set_flag 1" "set_egress_map 2 6" )
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 |
modules=( "wpa_supplicant" )
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 |
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1
network={
ssid="simple"
psk="very secret passphrase"
priority=5
}
network={
ssid="second ssid"
scan_ssid=1
psk="very secret passphrase"
priority=2
}
network={
ssid="example"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
priority=2
}
network={
ssid="plaintext-test"
key_mgmt=NONE
}
network={
ssid="static-wep-test"
key_mgmt=NONE
wep_key0="abcde"
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
}
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
}
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 |
modules=( "iwconfig" )
key_ESSID1="[1] s:yourkeyhere key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"
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 |
blacklist_aps=( "ESSID3" "ESSID4" )
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 |
mode_eth0="ad-hoc"
essid_eth0="This Adhoc Node"
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" )
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"
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() {
if ethtool ${IFACE} | grep -q 'Link detected: no'; then
ewarn "No link on ${IFACE}, aborting configuration"
return 1
fi
return 0
}
predown() {
if is_net_fs /; then
eerror "root filesystem is network mounted -- can't stop ${IFACE}"
return 1
fi
return 0
}
postup() {
return 0
}
postdown() {
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() {
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() {
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 |
ifplugd_eth0="..."
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
|
Isi dokumen ini dilisensikan dengan lisensi Creative Commons -
Attribution / Share Alike.
|