50 tutorial 10

Upload: sutajitar

Post on 13-Oct-2015

19 views

Category:

Documents


0 download

DESCRIPTION

How To in Linux

TRANSCRIPT

  • INFOLINUX 10/200550

    TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    YUM

    Mungkin untuk pengguna distro Debian Sarge 3.1 yang jumlah CD-nya mencapai 14 buah dan di dalamnya sudah tersedia sekitar 14.000

    paket, tentu sangatlah menyenangkan dapat

    mencoba hampir semua software yang

    terdapat di Linux. Apalagi Debian sudah

    dilengkapi dengan tools apt yang sangat

    memanjakan penggunanya dalam urusan

    manajemen instalasi software.

    Namun jangan takut, bagi Anda para

    pengguna distro Fedora, sekarang dapat

    memanfaatkan paket YUM (Yellow dog

    Updater, Modifi ed) yang dapat berfungsi

    layaknya tools apt di Debian. Dengan meng-

    gunakan Yum, para pengguna Fedora tidak

    perlu memikirkan lagi ketergantungan pa-

    ket yang akan diinstal atau di-remove, kare-

    na Yum yang akan melakukannya sendiri.

    Yum secara otomatis akan mencari depen-

    dencies paket yang diperlukan dan akan me-

    nampilkan paket apa yang seharusnya diin-

    stal. Dengan Yum akan memudahkan Anda

    memanajemen grup software dibandingkan

    Anda melakukannya secara manual dengan

    menggunakan perintah rpm.

    Beberapa fi tur yang dimiliki oleh Yum,

    di antaranya:

    Dapat terdiri dari beberapa repositori. File konfi gurasi yang mudah. Mencari otomatis ketergantungan paket

    yang dibutuhkan.

    Operasi pekerjaan yang cepat. Pekerjaan rpm dapat dilakukan secara

    konsisten.

    Mendukung grup comps.xml, termasuk mengelompokkan beberapa grup reposi-

    tori.

    Mudah digunakan.

    Pada artikel ini, penulis akan menjelas-

    kan cara membuat repository Yum, dan

    cara penggunaan Yum. Dalam membuat

    artikel ini, penulis menggunakan distro

    Fedora Core 4 untuk uji cobanya. Meski

    demikian, langkah ini juga dapat diterapkan

    bagi anda pengguna distro Fedora Core 1, 2

    maupun 3.

    Persiapan awalSebelum dapat mengikuti langkah-langkah

    ini, sebaiknya Anda siapkan terlebih dahulu

    beberapa kebutuhan di bawah ini:

    1. Koneksi Internet Item ini dibutuhkan jika Anda telah me-

    miliki koneksi Internet. Jika tidak ada

    koneksi Internet, Anda dapat meman-

    faatkan fi le-fi le RPM Fedora Core 4 Extras

    yang terdapat pada CD-1 InfoLinux edisi

    Agustus 2005. Bagi pengguna Fedora Core

    versi lainnya, download terlebiih dahulu

    paket-paket RPM tambahan di Intenet.

    2. Sistem Fedora yang sudah terinstalasi dengan baik

    Dalam contoh ini, distro yang penulis

    gunakan adalah Fedora Core 4.

    3. Yum Anda dapat menginstalasi Yum yang su-

    dah ada di CD 4 distro Fedora Core 4.

    4. Wget Instalasikan paket wget ini, untuk ke-

    pentingan download paket RPM fedora

    dari Internet.

    5. Vsftpd Paket ini digunakan untuk membuat ftp

    server, agar paket RPM dapat diakses

    melalui ftp server.

    6. Apache Paket ini digunakan untuk membuat web

    server, sehingga repository dapat diakses

    melalui web.

    7. Createrepo Berfungsi untuk membuat metadata re-

    pository umum. Anda dapat menginstal-

    nya dari CD 4 yang ada di Fedora Core 4.

    8. Ruang harddisk kosong Sediakan space sesuai dengan banyaknya

    paket yang ingin anda letakkan di hard-

    disk lokal.

    Repository Yum menggunakan Ftp serverJika semua persiapan pada tahap pertama

    telah anda siapkan, langkah berikutnya

    adalah check apakah semua telah terinstal-

    lasi dengan baik.

    1. Mengecek versi software yang dibutuh-

    kan

    Check versi distro Fedora yang Anda gunakan.

    $ cat /etc/redhat-release Fedora Core release 4

    (Stentz)

    Check versi yum $ yum --version 2.3.2

    Check versi createrepo $ createrepo --version 0.4.2

    2. Mengonfi gurasikan vsftpd

    Langkah berikutnya adalah mengon-

    fi gurasikan vsftpd sebagai ftp server

    yang akan kita gunakan sebagai reposi-

    tory Yum. Jika Anda sudah menginstala-

    sikannya, check apakah paket vsftp sudah

    Membuat Local Repository YUMdan Cara PenggunaannyaSalah satu kendala utama bagi para pengguna distro Fedora adalah pada saat mengin-stalasikan suatu aplikasi yang memiliki ketergantungan terhadap paket lainnya (packet dependencies). Artikel kali ini akan membahas penggunaan YUM untuk mengatasi packet dependencies itu.

  • INFOLINUX 10/2005 51

    TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    YUM

    terinstalasi dengan baik di sistem Anda.

    # rpm -qa | grep vsftpdvsftp-2.0.3-1

    Berikutnya, kita akan mengonfi gurasi-

    kan hanya vstp hanya untuk user anony-

    mous. ubah fi le vsftpd.conf menjadi vs-

    ftpd.conf.bak

    # cd /etc/vsftpd# mv vsftpd.conf vsftpd.conf.bak# touch vsftpd.conf# chmod 600 vsftpd.conf

    Isikan fi le vstpd.conf yang baru kita buat

    dengan menggunakan editor kesukaan

    anda, dengan konfi gurasi sebagai berikut:

    # Isi dari file /etc/vsftpd/vsftpd.confanonymous_enable=YESanon_upload_enable=NOanon_mkdir_write_enable=NOlocal_enable=NOwrite_enable=NOlocal_umask=022xferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESpam_service_name=vsftpduserlist_enable=YESlisten=YEStcp_wrappers=YESftpd_banner=Service ready for use.

    Restart service vstfpd

    # service vsftpd restart

    Selanjutnya coba login ke FTP server

    dengan menggunakan user anony-

    mous atau ftp dengan tidak perlu

    memasukkan password. Nantinya hanya

    akan terlihat direktory pub yang ber-

    tindak sebagai default direktori.

    $ ftp localhostConnected to localhost (127.0.0.1).Name (localhost:root): anonymous331 Please specify the passwordPassword :230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp> ls227 Entering Passive Mode (127,0,0,1,165,236)150 Here comes the directory listing.drwxr-xr-x 3 0 0 4096 Aug 09 09:25 pub226 Directory send OK.ftp>quit221 Goodbye.

    3. Berikutnya buat direktori tempat peny-

    impanan paket-paket RPM yang akan

    kita letakkan di direktori ftp server.

    # mkdir -p /var/ftp/pub/fedora/1/updates# mkdir -p /var/ftp/pub/fedora/2/updates# mkdir -p /var/ftp/pub/fedora/3/updates

    # mkdir -p /var/ftp/pub/fedora/4/updates# cd /var/ftp/pub/fedora/4/updates

    Sebagai latihan, copy-kan saja fi le-fi le

    yang ada pada CD 1 InfoLINUX edisi

    Agustus 2005 ke direktori /var/ftp/pub/

    fedora/4/updates. Misal cdrom Anda

    termount pada directory /media/cdrom.

    Ketikkan perintah berikut:

    # cp /media/cdrom/extras/*.rpm /var/ftp/pub/fedora/4/updates

    Jalankan perintah createrepo yang ber-

    fungsi untuk mendaftarkan paket-paket

    RPM yang berada dalam suatu direktori.

    Nantinya perintah createrepo ini akan

    menghasilkan suatu folder yang berna-

    ma repodata dan didalamnya akan berisi

    fi le-fi le sebagai berikut: fi lelist.xml.gz,

    other.xml.gz, primary.xml.gz, repomd.

    xml. Dari langkah berikut, Anda sudah

    berhasil untuk membuat local repository

    Yum.

    # cd /var/ftp/pub/fedora/4/updates # createrepo /var/ftp/pub/fedora/4/updates

    Jika ingin mengaktifkan fi tur group, copy

    terlebih dahulu fi le comps.xml yang ada

    pada directory /usr/share/comps/i386/

    comps.xml ke direktori yang sama de-

    ngan paket RPM berada.

    # cp /usr/share/comps/i386/comps.xml /var/ftp/pub/

    Instalasi Bluefish menggunakan perintah yum install. Option grouplist di Yum untuk menampilkan daftar paket group.

  • INFOLINUX 10/200552

    TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    YUM

    fedora/4/updates# cd /var/ftp/pub/fedora/4/updates# createrepo -g comps.xml /var/ftp/pub/fedora/4/updates

    Selanjutnya, Anda dapat mengonfi gu-

    rasikan fi le yum.conf, yang kali ini akan

    kita arahkan ke ftp server yang sudah

    menyediakan yum repository. Caranya,

    edit fi le /etc/yum.conf, menjadi seperti

    di bawah ini:

    [main]cachedir=/var/cache/yumdebuglevel=2logfile=/var/log/yum.logpkgpolicy=newestdistroverpkg=redhat-releasetolerant=1exactarch=1retries=20obsoletes=1#gpgcheck=1gpgcheck=0

    # PUT YOUR REPOS HERE OR IN separate files named file.repo# in /etc/yum.repos.d

    [local-repository]name=Paket Updatesbaseurl=ftp://localhost/pub/fedora/4/updatesenabled=1enablegroups=1gpgcheck=0

    Selanjutnya, pindah ke direktori /etc/

    yum.repos.d, edit beberapa fi le yang ada

    di direktori tersebut. Diantaranya fi le fe-

    dora-extras.repo, fedora.repo dan fedora-

    updates.repo. Ubah nilai pada parameter:

    enabled = 1

    menjadi :

    enabled = 0

    Berikutnya lakukan yum check-update

    untuk untuk men-download kumpulan

    lengkap header paket yang telah terdefi -

    nisi di metadata repository.

    # yum check-updateSetting up repositories

    local-repository 100% |=========================| 1.1 kB 00:00Reading repository metadata in from local filesprimary.xml.gz 100% |=========================| 150 kB 00:00local-repo: ###################################### 417/417Added 417 new packages, deleted 0 old in 20.25 seconds

    4. Coba test dari komputer tersebut, apakah

    repository Yum yang baru saja Anda cip-

    takan sudah dapat berjalan dengan baik.

    Caranya, instal salah satu program yang

    terdapat pada repository tersebut. Seba-

    gai contoh kita akan menginstalasikan

    games supertux yang ada pada direktori

    tersebut.

    # yum install supertux........................................................Transaction Summary============================Install 1 Package(s)Update 0 Package(s)Remove 0 Package(s)Total download size: 6.3 MIs this ok [y/N]: yDownloading Packages:(1/1): supertux-0.1.2-3.i 100% |=========================| 6.3 MB 00:04Running Transaction Testwarning: supertux-0.1.2-3: Header V3 DSA signature: NOKEY, key ID 1ac70ce6Finished Transaction TestTransaction Test SucceededRunning Transaction Installing: supertux ####################### [1/1]

    Installed: supertux.i386 0:0.1.2-3Complete!

    5. Jika pada tahap di atas Anda sudah dapat

    menginstalasikan program dari server

    yum dengan baik, Anda tinggal melan-

    jutkannya dengan membaca bagian

    Konfi gurasi Yum pada komputer client.

    Repository Yum Menggunakan HTTP ServerKali ini penulis akan menjelaskan juga, cara

    installasi Yum server menggunakan Http

    Server. Pada prinsipnya, penggunaan Ftp

    server maupun Http server sebagai media

    Yum tidak jauh berbeda fungsinya. Meski

    demikian, penulis tetap akan menjelaskan

    langkah-langkahnya secara detail.

    1. Langkah pertama ini sama dengan yang

    ada pada repository yum menggunakan

    Ftp Server.

    2. Mengonfi gurasikan Apache

    Langkah berikutnya adalah mengon-

    fi gurasikan Apache sebagai Http Server

    yang akan kita gunakan sebagai reposi-

    tory Yum. Jika Anda sudah menginstal-

    lasikannya, check apakah paket Apache

    sudah terinstalasi dengan baik di sistem

    anda.

    # rpm -qa | grep httpd httpd-2.0.54-10

    Secara default, lokasi directory root

    Apache terletak di /var/www/html. Pa-

    da folder ini kita akan membuat sebuah

    fi le yang bernama index.html yang

    berisikan pesan Selamat Datang dan

    link yang menunjuk ke letak repository

    server.

    # cd /var/www/html# vi index.html

    Yum Web Server

    Welcome, to access repository server packages click on link below

    RPM Repository

    Selanjutnya, Apache akan kita konfi -

    gurasikan dengan menggunakan option

    Alias. Sebagai latihan, penulis tetap akan

    menggunakan fi le-fi le RPM yang terle-

    tak di /var/ftp/pub/fedora/4/updates, de-

    ngan tujuan menghemat ruang harddisk

    Anda.

    # cd /etc/httpd/conf# cp httpd.conf httpd.conf.

  • INFOLINUX 10/2005 53

    TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    YUM

    bak# vi httpd.conf

    Pada fi le itu, cari pada bagian Alias, yang

    bertujuan untuk membuat nama Alias

    yang mengarah ke directory repository

    berada. Sebagai contoh kita akan mem-

    buat sebuah Alias dengan nama reposi-

    tory yang menunjuk ke /var/ftp/pub/fe-

    dora/4/updates.

    ............................

    ............................# Nama Alias adalah repository# rpm repositoryAlias /repository /var/ftp/pub/fedora/4/updates

    Options Indexes AllowOverride None Order allow,deny Allow from 192.168.2.0/24

    ........................................................

    Simpan hasil perubahan fi le itu, kemu-

    dian restart serviice httpd.

    # service httpd restart

    3. Test dengan membuka browser Anda, lalu

    pada url link, ketikkan http://. Sebagai contoh, IP yang penu lis

    gunakan adalah 192.168.2.1, maka ketik -

    kan http://192.168.2.1. Jika muncul hala-

    man index.html yang telah kita buat sebe-

    lumnya, klik link RPM Repository yang

    ada pada halaman tersebut. Jika Anda

    dapat melihat daftar paket RPM yang ada,

    berarti Anda telah berhasil membuat re-

    pository Yum mengguna kan Http Server.

    4. Konfi gu rasikan fi le yum.conf, yang kali

    ini akan kita arahkan ke http server yang

    sudah menyedia kan yum repository.

    Caranya, edit fi le /etc/yum.conf, menjadi

    seperti di bawah ini:

    ............................

    ............................[http-local-repository]name= Http Paket Updatesbaseurl=http://192.168.2.1/pub/fedora/4/updatesenabled=1enablegroups=1gpgcheck=0

    5. Lakukan yum check-update, kemudian

    test dengan menginstal salah satu pa-

    ket yang ada di dalam yum repository.

    (Note: lihat pada bagian repository Yum

    menggunakan Ftp Server).

    Konfigurasi pada komputer clientPenulis sudah menjelaskan cara membuat

    server lokal repository yum, berikutnya

    akan dijelaskan juga cara konfi gurasinya

    dari komputer client. Sebagai contoh,

    semua komputer dalam contoh ini ber-IP

    192.168.2.X. Di mana server yum yang kita

    gunakan memiliki IP 192.168.2.1.

    Selanjutnya, pindah ke direktori /etc/

    yum.repos.d, edit beberapa fi le yang ada di

    direktori tersebut. Di antaranya fi le fedora-

    extras.repo, fedora.repo dan fedora-updates.

    repo. Ubah nilai pada parameter:

    enabled = 1

    menjadi :

    enabled = 0

    Kemudian edit fi le /etc/yum.conf, dan

    tambahkan daftar repository Yum ke dalam

    fi le tersebut.

    Berikutnya lakukan yum check-update

    untuk untuk men-download kumpulan

    lengkap header paket yang telah terdefi nisi

    di metadata repository.

    # yum check-update

    Setelah ini, Anda dapat melakukan pe-

    rintah-perintah yang ada di Yum, yang

    dapat Anda baca di bagian option-option

    yang ada di Yum.

    [main]cachedir=/var/cache/yumdebuglevel=2logfile=/var/log/yum.logpkgpolicy=newestdistroverpkg=redhat-releasetolerant=1exactarch=1retries=20obsoletes=1#gpgcheck=1gpgcheck=0

    # PUT YOUR REPOS HERE OR IN separate files named file.repo# in /etc/yum.repos.d

    [local-repository]

    Repository Yum menggunakan Ftp server. Repository Yum menggunakan Http server.

  • INFOLINUX 10/200554

    TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    YUM

    name=Paket Updatesbaseurl=ftp://192.168.2.1/pub/fedora/4/updatesenabled=1enablegroups=1gpgcheck=0

    [http-local-repository]name= Http Paket Updatesbaseurl=http://192.168.2.1/pub/fedora/4/updatesenabled=1enablegroups=1gpgcheck=0

    Option-option yang ada di YumSecara syntax, perintah yum memiliki syn-

    tax sebagai berikut:

    yum [option] [command] [package ...]

    Beberapa command yang terdapat di

    Yum di antaranya adalah:

    1. check-update

    Perintah ini berfungsi untuk men-down-

    load kumpulan lengkap header paket yang

    telah terdefi nisi di metadata repository.

    Example: yum check-update

    2. install [package1] [package2][...]

    Perintah ini berfungsi untuk menginstall

    paket yang terdapat pada repository yum.

    Example: yum install bluefi sh

    3. remove [package1] [package2][...]

    Perintah ini berfungsi untuk menghapus

    paket yang telah terinstal di dalam sistem

    Anda.

    Example: yum remove bluefi sh

    4. update [package1] [package2][...]

    Perintah ini berfungsi untuk meng-up-

    date paket yang ingin Anda instal.

    Example: yum update bluefi sh

    5. upgrade [package1] [package2][...]

    Perintah ini sama dengan perintah update

    dengan obsoletes fl ag. Option ini lebih

    tepat digunakan jika Anda ingin meng-

    update semua paket yang ada (example :

    hampir sama dengan mengupgrade dari

    Fedora Core 3 ke Fedora Core 4).

    Example: yum upgrade

    6. list [...]

    Perintah ini berfungsi untuk mendaftar

    semua paket RPM yang ada di sistem.

    Paket di sini adalah paket yang sudah ter-

    instal dalam sistem, maupun paket yang

    ada di repository.

    Example: yum list

    7. Search [string1] [string2] [...]

    Perintah ini berfungsi untuk mencari

    suatu paket RPM yang ada dalam sistem

    kita, berdasarkan string yang dimasukkan.

    Example: yum search squid

    8. groupinstall [group1] [group2] [...]

    Perintah ini berfungsi untuk menginstal

    paket berdasarkan group. Anda dapat

    me lihat daftar group yang ada dengan

    menggunakan option group list. Sebagai

    contoh, Anda ingin meng instal seluruh

    paket yang ada dalam group Web Server,

    maka semua paket yang ada dalam group

    itu (httpd, webalizer, mod_python, dist-

    cache, mod_perl, tux, squid, php, httpd_

    manual, dan sebagainya) akan terinstal

    secara otomatis.

    Example: yum groupinstall Web Server

    Yumex, Utility Grafis Untuk YumSetelah dijelaskan seluruh perintah yang ada

    di Yum dan cara penggunaannya, ada bebe-

    rapa user yang menanyakan perta nyaan ini:

    Saya tidak terlalu suka mengetikkan banyak

    perintah di terminal, Apakah ada utility ber-

    bentuk grafi s sebagai interface yum? Jawab-

    nya ada. Anda dapat menggunakan paket

    yang bernama Yumex (Yum Extender) un-

    tuk mempermudah penggunaan Yum.

    Yumex dibuat oleh Tim Lauridsen,

    setelah dia membaca postingan yang ada di

    FedoraForum.org. Setelah itu, dia langsung

    belajar tentang Python, dan PyGTK yang

    akhirnya terciptalah Yumex.

    Yumex sangat cocok bagi user yang tidak

    terlalu suka mengetikkan banyak perintah di

    command, tetapi ingin dapat menggunakan

    Yum dengan mudah. Sebelum mengunakan

    Yumex, Anda harus men-download-nya ter-

    lebih dahulu di http://linux.rasmil.dk/yumex.

    Tapi tak perlu khawatir, karena paket Yumex

    ada di CD Majalah InfoLINUX kali ini.

    Berikut ini akan dijelaskan sedikit me-

    ngenai cara penggunaan Yumex:

    1. Sebelum dapat menginstalasi Yumex,

    pas ti kan versi Yum Anda paling tidak

    memiliki versi 2.2. Selanjutnya instalkan

    paket Yumex ini dengan menggunakan

    perintah rpm.

    # rpm -ivh yumex-0.40-1.tla.1. FC4.noarch.rpm

    2. Setelah terinstalasi dengan baik, jalankan

    Yumex. Dari konsole ketikkan perintah

    berikut untuk menjalankan Yumex.

    $ yumex &

    Tampilan paket yang dapat Anda install di Yumex. Pilih repository Yum yang akan Anda gunakan.

  • INFOLINUX 10/2005 55

    TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    YUM

    Atau dari Menu Applications => Sys-tem Tool => Yum Extender

    Masukkan password root Anda, untuk

    memulai penggunaan Yumex.

    3. Klik Icon Repos, lalu pilih repository

    lokal yang telah Anda buat, selanjutnya

    klik Refresh.

    4. Selanjutnya sangat mudah bagi Anda

    untuk melakukan update paket, instal

    paket, maupun remove paket. Untuk

    menginstal, Anda hanya perlu mengklik

    paket-paket yang ingin Anda Instal, dan

    klik Instal. Yum akan mencari secara oto-

    matis ketergantungan paket yang akan di

    install. Dan seluruh kegiatan Yum yang

    telah dilakukan, dapat Anda lihat kemu-

    dian di menu Output.

    Tip and trik YumAda beberapa Tips and Trick Yum, yang

    akan penulis jelaskan :

    1. Jika komputer Anda hanya satu, dan

    ingin tetap membuat repository Yum,

    Anda tidak perlu membuat Ftp Server

    maupun Http Server. Cukup letakkan

    fi le-fi le RPM yang telah anda dapatkan

    ke dalam suatu direktori lalu tambah-

    kan directory path tersebut ke dalam fi le

    yum.conf dengan menggunakan fi le://.

    Misal seluruh fi le RPM Anda akan dico-

    pykan ke directory /home/supri/fedora4/

    updates.

    $ cp *.rpm /home/supri/fedora4/updates$ cd /home/supri/fedora4/updates$ createrepo /home/supri/fedora4/updates# vi /etc/yum.conf

    .............................

    .............................[Home Directory]name=Direktory RPMbaseurl=file:///home/supri/fedora4/updatesenabled=1enablegroups=1gpgcheck=0

    2. Untuk Alasan penghematan ruang hard-

    disk, Anda dapat mem-burning seluruh

    folder yang berisi fi le RPM dan repo-

    datanya ke dalam CD-ROM. Lalu sama

    seperti di langkah 1, hanya saja mount

    terlebih dahulu CD-nya dan arahkan ba-

    seurl-nya sesuai dengan letak CD Anda

    di mount. Misalkan Anda mem-burning

    seluruh folder dan isi folder dari /home/

    sup ri/fedora4/updates ke CD. Setelah di-

    burning, Anda memount CD itu ke /me-

    dia/cdrom. Sehingga letak fi le-fi le RPM

    dalam CD terbaca di /media/cdrom/up-

    dates. Selanjutnya, Anda hanya perlu

    me nambahkan letak url path tersebut ke

    yum.conf, lalu lakukan yum check-up-

    date.

    .............................baseurl=file:///mnt/cdrom/updates.............................

    3. Dalam artikel ini, penulis mengabaikan

    GPG-Key yang ada dalam setting-an

    Yum.conf. Hal ini dapat Anda lihat di

    settingan yum.conf, di mana nilai pa-

    rameter gpg-check=0. Jika Anda tetap

    menginginkan gpg-check ini tetap aktif,

    dengan alasan agar sistem Anda tetap se-

    cure saat melakukan update, download

    gpg-key dari situs bersangkutan, lalu ke-

    tikkan perintah ini:

    # rpm import public.gpg.key

    Untuk menginstall GPG Key dari Fedora

    Project, lakukan perintah berikut:

    # rpm import /usr/share/rhn/RPM-GPG-KEY-fedora

    Lalu edit parameter gpg-check=1

    Demikian tutorial Yum yang telah penu-

    lis jelaskan. Dengan adanya repository Yum

    lokal ini, Anda yang tidak memiliki koneksi

    Internet dapat memanfaatkan Repository

    Yum lokal untuk mencari paket-paket Fe-

    dora terbaru yang ingin diinstal. Dan jika

    resource Internet Anda berlimpah, cukup

    tambahkan url situs yang menyediakan re-

    pository Yum ke dalam yum.conf Anda.

    Pada akhirnya, penulis hanya bisa ber-

    harap, semoga dengan adanya artikel ini,

    dapat membantu Anda dalam mengalami

    masalah sulitnya instalasi software di Fedora

    Core.

    Supriyanto ([email protected])

  • INFOLINUX 10/200556

    TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    Suhu Komputer

    Komputer adalah seperti manusia. Bisa kepanasan dan berhenti beker-ja apabila kepanasan. Dan, tole ransi untuk berhenti bekerja pada komputer

    sa ngatlah rendah. Apalagi untuk sebuah

    server yang dituntut untuk memiliki up-

    time lebih dari 99,9%. Betul bahwa kita bisa

    membeli server besar yang secara hardware

    telah sa ngat hebat. Tapi, tidak semua dari

    kita mampu membeli server branded yang

    mahal. Dan, sejujurnya, server branded yang

    mahal tidaklah selalu diperlukan. Terutama

    bagi perusahaan kecil sampai menengah.

    Bagi Anda yang menggunakan server

    rakitan yang secara hardware sama seper -

    ti komputer desktop, sekaligus berada di

    dalam ruang kerja tidak berpendingin ruang-

    an, namun harus tetap mampu melayani,

    maka ada baiknya bagi Anda untuk mampu

    memelihara komputer tersebut secara soft-

    ware.

    Kepanasan merupakan salah satu faktor

    yang sangat umum dalam membuat kom-

    puter berhenti bekerja ataupun membuat

    kerusakan permanen pada hardware. Tidak

    ada satu pun sistem operasi yang mampu

    menahan kerusakan pada hardware. Yang

    paling bisa kita lakukan adalah membuat

    sistem berhenti bekerja sebelum kepanas-

    an mencapai batas yang tidak dapat ditole-

    ransi.

    Sebenarnya, solusi dengan membuat

    sistem berhenti bekerja sebelum kepanas-

    an seharusnya disisipkan pada level kernel,

    sehingga bisa lebih responsif dan memiliki

    hak yang lebih tinggi. Namun, hal tersebut

    jauh lebih susah untuk dilakukan.

    Sebagai gantinya, kita akan membuat

    aplikasi user space dengan memanfaat-

    kan shell scripting. Prinsip kerjanya sangat

    sederhana. Kita akan menjalankan suatu

    program secara berkala (misal, setiap me-

    nit), dimana di dalam program tersebut,

    kita memeriksa suhu sistem dan mengam-

    bil tindakan yang bersesuaian dengan suhu

    yang didapat tersebut. Untuk menjalankan

    program secara berkala, kita akan menggu-

    nakan cron. Sementara, untuk mengambil

    suhu sistem, Anda bisa menggunakan salah

    satu dari program-program berikut:

    ACPID. Sangat fl eksibel dan ekstensible dalam menangani event ACPI. Daemon

    ini akan membaca /proc/acpi/event dan

    menjalankan aksi yang bersesuaian. Sa-

    yangnya, tidak semua sistem mendukung

    acpi.

    Xmbmon. Alternatif ACPID yang sangat menyenangkan. Kita akan menggunakan

    program yang satu ini dalam tulisan kali

    ini. Sayangnya, ada beberapa sistem yang

    tidak dikenal oleh xmbmon sehingga ap-

    likasi ini tidak dapat digunakan sebagai

    alat bantu. Dari namanya, kita bisa men-

    duga bahwa program ini bisa dijalankan

    dari X. Hal tersebut tidak kita inginkan.

    Untungnya, pembuatnya juga membuat

    versi consolenya (mbmon), yang akan

    kita gunakan.

    Untuk tindakan yang akan diambil apa-

    bila suhu mencapai batas yang diinginkan,

    secara default adalah shutdown, yang berarti,

    kita akan memanfaatkan program shutdown

    (/sbin/shutdown) yang telah dimiliki oleh

    semua sistem. Namun, bagi Anda yang ingin

    pendekatan lain, software suspend (/sbin/

    swsusp) bisa dipergunakan apabila tindakan

    yang akan diambil adalah melakukan sus-

    pend secara software. Untuk melakukan sus-

    pend, pastikan telah didukung oleh kernel.

    Untuk men-shutdown sistem, tentu

    saja program monitoring harus dijalankan

    oleh root. Bagi Anda yang tidak ingin men-

    jalankan sebagai root, sudo bisa digunakan.

    Tulisan ini akan mengasumsikan Anda

    menjalankan program sebagai root.

    CronBerikut ini, kita akan melihat dasar-dasar

    penggunaan cron secara sederhana, untuk

    men jalankan aplikasi kita secara berkala. Ter-

    gantung dari distribusi yang Anda gunakan,

    umumnya, cron daemon sudah dijalankan

    pada saat booting. Pastikan crond sudah di-

    jalankan karena kita akan membutuhkannya.

    Setelah itu, login-lah sebagai root, dan

    berikan perintah berikut ini untuk mem-

    buat entri tabel cron yang baru:

    # crontab -e

    Apabila belum ada entri sama sekali, ma-

    ka Anda akan mengedit fi le kosong. Untuk

    membuat entri tabel yang baru yang memuat

    contoh tugas yang akan dijalankan setiap me-

    nit, cobalah memberikan baris berikut ini:

    * * * * * /bin/echo `date` >> /tmp/DATE

    Contoh entri tersebut akan menulis jam

    dan tanggal aktif ke /tmp/DATE setiap me-

    nit. Untuk menambahkan entri tabel crontab

    yang baru, Anda bisa membuatnya di baris

    baru.

    Cron sendiri memiliki lima fi eld yang

    pada contoh sebelumnya kita isi dengan *.

    Berikut ini adalah penjelasan kelima fi eld

    yang digunakan:

    Field pertama adalah menit keberapa. Nilai yang diizinkan adalah 0-59. Kita

    bisa mengisikan nilai * yang berarti awal

    sampai akhir.

    Field kedua adalah jam keberapa. Nilai yang diizinkan adalah 0-23.

    Field ketiga adalah hari keberapa dalam satu bulan. Nilai yang diizinkan adalah

    1-31.

    Monitoring Suhu KomputerSuhu yang terlampau tinggi terkadang menjadi penyebab suatu sistem gagal bekerja. Le-bih parah lagi, hardware sistem bisa ikut rusak. Di artikel ini, kita akan mengatur langkah antisipatif dengan memeriksa suhu komputer secara berkala dan memberikan aksi yang bersesuaian.

  • INFOLINUX 10/2005 57

    TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    Suhu Komputer

    Field keempat adalah bulan keberapa dalam satu tahun. Nilai yang diizinkan

    adalah 1-12.

    Field kelima adalah hari dalam satu min-ggu. Nilai yang diizinkan adalah 0-7. Ni-

    lai 0 atau 7 adalah minggu (sun).

    Sebagai contoh, apabila kita ingin men-

    jalankan suatu tugas setiap jam 21.15 setiap

    hari, maka berikanlah entri tabel berikut:

    15 21 * * * /path/to/app

    xmbmonBerikutnya, kita akan melihat penggunaan

    program xmbmon. Versi xmbmon yang

    digunakan adalah 2.0.5. Program ini dibuat

    oleh Yoshifumi R. Shimizu (http://www.nt.phys.kyushu-u.ac.jp/shimizu/index.html).

    Distribusi xmbmon umumnya berada

    dalam format source code. Untuk itu, Anda

    perlu melakukan konfi gurasi dan kompilasi

    sebelum bisa digunakan:

    $ ./configure$ make

    Setelah kompilasi selesai, tergantung

    konfi gurasi sistem Anda, Anda mungkin

    akan menjumpai program xmbmon dan

    mbmon di direktori aktif. Yang kita perlu-

    kan adalah program mbmon.

    Untuk mendapatkan suhu sistem, jalan-

    kanlah mbmon tanpa parameter. Se bagai

    contoh:

    # ./mbmon

    Temp.= 44.8, 32.1, 23.8; Rot.= 0, 0, 0Vcore = 1.54, 3.19; Volt. = 3.26, 4.98, 12.01, 0.00, 0.00

    Temp.= 44.8, 32.1, 23.8; Rot.= 0, 0, 0Vcore = 1.54, 3.19; Volt. = 3.26, 4.98, 12.01, 0.00, 0.00

    Temp.= 44.8, 32.1, 23.8; Rot.= 0, 0, 0

    Vcore = 1.54, 3.19; Volt. = 3.26, 5.00, 12.01, 0.00, 0.00

    Secara default, mbmon akan menampil-

    kan informasi suhu sistem dan informasi

    lainnya setiap lima detik sekali. Dalam ap-

    likasi yang akan kita buat, kita perlu me-

    minta kepada mbmon untuk menjalankan

    hanya sekali tanpa perulangan. Untuk itu,

    kita perlu memberikan opsi -c1 pada saat

    menjalankan:

    # ./mbmon -c1

    Temp.= 43.7, 30.8, 23.8; Rot.= 0, 0, 0Vcore = 1.54, 3.20; Volt. = 3.26, 4.98, 12.01, 0.00, 0.00

    Informasi yang kita dapatkan terlalu

    lengkap. Bagaimana kalau kita hanya ingin

    mengambil suhu sistem saja? Jalankanlah

    mbmon dengan tambahan opsi -T1:

  • INFOLINUX 10/200558

    TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    Suhu Komputer

    # ./mbmon -T1 -c141.5

    Sayangnya, informasi yang kita inginkan

    adalah suhu dalam tipe integer. Oleh karena

    itu, kita akan membuang informasi pecah-

    annya. Gunakan program cut untuk mem-

    bantu:

    # ./mbmon -T1 -c1 | cut -d. -f141

    Untuk memastikan bahwa semua

    whitespace diabaikan, gunakan bantuan

    program tr:

    # ./mbmon -T1 -c1 | cut -d. -f1 | tr -d [[:space:]]41#

    Selanjutnya, kita bisa gunakan output

    perintah tersebut untuk mengisi variabel

    temperatur kita, sebagai contoh TEMP=`./

    mbmon -T1 -c1 | cut -d. -f1 | tr -d [[:

    space:]]`.

    AutoshutdownSampai di sini, kita telah siap membangun

    aplikasi. Aplikasi yang akan kita bangun cu-

    kup sederhana. Kita berikan nama hwmon2.

    Tugas dari program ini adalah memeriksa

    suhu sistem dan membuat laporan seder-

    hana. Program hwmon2 ini akan dijalankan

    setiap menit, dan oleh karenanya, kita akan

    mendapatkan laporan suhu sistem setiap

    menit (yang disimpan dalam fi le hwmon2.

    report). Berikut ini adalah source code pro-

    gram hwmon2:

    #!/bin/sh

    TEMP_OK=55TEMP=`/home/DATA/PUB/Apps/System/LowLevel/xmbmon/xmbmon205/mbmon -c1 -T1 | cut -d. -f1| tr -d [[:space:]]`STATUS=OK--$TEMP of $TEMP_OK

    [ $TEMP -ge $TEMP_OK ] && STATUS=DANGER--$TEMP of $TEMP_OKecho [`date`] $STATUS >> ~/BACKUP/hwmon2.report

    Sebagai catatan, script tersebut dijalan-

    kan oleh root dan semua fi le disimpan di

    /root/BACKUP/. Gantilah path ke mbmon

    sesuai konfi gurasi sistem Anda. Ganti pula

    lokasi laporan dan script Anda.

    Untuk membuat autoshutdown, kita

    akan membuat program tambahan, sebut

    saja hwmon3, yang akan memeriksa baris

    terakhir pada hwmon2.report, dan akan

    melakukan tindakan yang bersesuaian apa-

    bila menemukan kata DANGER. Program

    ini juga akan mencatat waktu shutdown dan

    suhu terakhir ketika shutdown dilakukan.

    Berikut ini adalah source code program hw-

    mon3:

    #!/bin/sh

    STATUS=`tail -n1 ~/BACKUP/hwmon2.report | grep -i danger | tr -d [[:space:]]`if [ ! -z $STATUS ] then echo `date` DANGEROUS SHUTDOWN $STATUS >> ~/BACKUP/shutdown.time /sbin/shutdown -h nowfi

    Berikut ini adalah contoh isi fi le shut-

    down.time:

    Sun Jul 3 21:26:00 WIT 2005 DANGEROUS SHUTDOWN SunJul321:25:00WIT2005DANGER--55of55

    Jangan lupa untuk menjalankan hw-

    mon2 dan hwmon3 setiap menit. Tam-

    bahkan kedua baris ini ke dalam crontab

    Anda.

    * * * * * /root/BACKUP/hwmon2.sh* * * * * /root/BACKUP/hwmon3.sh

    Dengan kerja sama antara hwmon2 dan

    hwmon3, kita bisa mendapatkan laporan

    status sistem setiap jangka waktu tertentu,

    dan dapat pula mengambil tindakan yang

    diinginkan.

    Satu pertimbangan penting yang mung-

    kin perlu adalah masalah seberapa sering ki-

    ta menjalankan program hwmon2 dan hw-

    mon3. Terlalu sering tentu akan berakibat

    pada kesibukan sistem yang mungkin tidak

    perlu. Namun, terlalu lama juga akan mem-

    buat aplikasi ini kurang berguna. Se suaikan

    dengan kondisi server Anda dan load server

    yang mungkin.

    Pertimbangan lainnya adalah suhu yang

    bisa ditoleransi (TEMP_OK pada hwmon2).

    Pastikan jangan terlalu rendah dan jangan

    lupa terlalu tinggi. Kenali pula karakteristik

    processor yang digunakan.

    Sampai di sini dulu pembahasan kita.

    Source code program-program tersebut

    masih bisa dikembangkan lebih lanjut se suai

    kebutuhan Anda. Selamat mencoba!

    Noprianto ([email protected])

    Situs untuk memperoleh tool xmbmon.

  • INFOLINUX 10/2005 59

    TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

  • INFOLINUX 10/200560

    TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    Oracle Cluster

    Oracle database-nya nanti di-cluster saja, ya Pak? Biar lebih baik perfor-mansinya Kata-kata tersebut se ring penulis dengar ketika hendak meng-

    implementasi sistem dan aplikasi berbasis

    Orac le. Banyak orang berbicara tentang

    cluster dan cluster. Tren Oracle cluster di

    Indonesia berdasarkan pengamatan penulis

    bukan ha nya terjadi di perusahaan yang me-

    merlukan availability dan scalability yang

    tinggi, namun perusahaan yang menurut

    penulis belum per lu mengimplementasikan

    Oracle Cluster pun juga mulai keranjingan

    dengan teknologi tersebut.

    Real Application Cluster ArchitectureReal Application Cluster (RAC) database

    me merlukan dua atau lebih mesin yang me-

    mungkinkan untuk bekerja bersamaan di

    bawah kendali sistem operasi yang sudah di-

    lakukan cluster sebelumnya. Architecture dari

    RAC sendiri dapat dilihat pada gambar 1.

    Gambar 1 memperlihatkan bahwa satu

    database diakses secara bersamaan oleh 2

    mesin (Instance RAC1 dan Instance RAC2)

    melalui Cluster Interconnect.

    Real Application Cluster on Linux?Mengapa penulis memilih Linux? bukan IBM-

    AIX, Sun Solaris atau Microsoft Windows?

    Hal ini bukan karena Linux memang

    sedang trend sekarang ini, namun dari be-

    berapa kali implementasi Oracle Real Ap-

    plication cluster yang penulis lakukan, yaitu

    mulai dari yang berbasis Windows, Linux,

    Solaris dan AIX, Linux memberikan hasil

    yang sangat memuaskan dalam memenuhi

    modern business requirement sekarang ini.

    Yaitu dilihat dari Reliability, Portability,

    Recoverability, Secure ability, Audit

    ability, Manageability & Maintainability,

    Scalability, Availability, dan Response.

    Linux dapat memenuhi semua kriteria terse-

    but dikarenakan Oracle Corporation sendiri

    sudah memfokuskan teknologinya menggu-

    nakan sistem operasi Linux.

    Instalasi Oracle Real Application ClusterMelalui artikel ini penulis mencoba membagi

    pengalaman bagaimana melakukan instalasi

    Oracle RAC di Linux. Penulis memberikan

    contoh menggunakan Oracle9i dengan Patch-

    es terakhir dan menggunakan Redhat Advance

    Server 3.0 update 2 untuk versi Linux-nya.

    Mengapa bukan Oracle versi 10g? Pada

    prinsipnya langkah-langkah untuk Oracle 10g

    tidak jauh berbeda, mungkin di lain kesempa-

    tan penulis juga akan membagi pengalaman

    bagaimana melakukannya untuk Oracle 10g.

    Konfigurasi sistemBerikut ini adalah konfi gurasi sistem yang

    penulis gunakan untuk membangun Real

    Application Cluster. Pada kesempatan ini

    penulis akan menggunakan dua mesin atau

    dua node untuk menyederhanakan masalah.

    Walaupun pada kasus di lapangan, cluster-

    ing Oracle banyak diimplementasikan de-

    ngan menggunakan minimal tiga node.

    Mesin 1 (HP DL 380 G3) Hostname: dsmp1 IPAddress: eth0 192.168.1.1 netmask 255.255.255.0

    eth1 10.1.1.1 netmask 255.255.255.0

    Processor: 4 x Intel Pentium IV Xeon 3.0 Ghz

    Memory: 4 x 1 GB Harddisk: 18.2 x 4 SCSI 10k (RAID 0 + 1)

    Operating System: Redhat Avance Server 32 Bit Update 2

    Fibre Card: QLogic 2214 (Certifi ed for Linux)

    Oracle Database Version: Oracle Enterprise Editions 9i(9.2.0.4) for

    Linux

    Mesin 2(HP DL 380 G3) Hostname: dsmp2 IPAddress: eth0 :192.168.1.2 netmask 255.255.255.0

    eth1 : 10.1.1.2 netmask 255.255.255.0

    Processor: 4 x Intel Pentium IV Xeon 3.0 Ghz

    Memory: 4 x 1 GB Harddisk: 18.2 x 4 SCSI 10k (RAID 0 + 1)

    Operating System: Redhat Advance Server 32 Bit Update 2

    Oracle Cluster pada Red Hat Linux Advance Server 3.0Bagian 1 dari 3 Artikel

    Ada apa dengan Oracle Real Application Cluster sebenarnya? Apakah memang sesuatu yang perlu kita implementasikan? Ataukah hanya sebuah sugesti tren teknologi? Temukan jawabannya pada paparan berikut ini.

    Gambar 1. Architecture RAC.

  • INFOLINUX 10/2005 61

    TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    Oracle Cluster

    Fibre Card: QLogic 2214 (Certifi ed for Linux)

    Oracle Database Version: Oracle Enterprise Editions 9i(9.2.0.4) for

    Linux

    Storage Name: HP Storage Work Modular Smart Array

    1000

    Harddisk: 36.4 x 14 SCSI 15k (RAID 0 + 1)

    Detail Configuration Parallel SCSI A ( 34731 MB) - /dev/sda1 RAID (1+0) Bay 1 , 2 Purpose: Quorumfi le & Share Con-

    fi guration

    Parallel SCSI B (243122 MB) - /dev/sdb1 RAID (5) Bay 3 - 10 Purpose: OCFS (Oracle Cluster File

    System)

    Parallel SCSI C ( 110000 MB) - /dev/sdc1 RAID (5) spare 1 Disk Bay 14 Bay 11-13 Purpose: Backup & Archive Log

    Paket-paket yang dibutuhkanSebelum melakukan instalasi Oracle, baik

    itu OCFS, Oracle Cluster Manager dan

    Oracle Database Enterprise Edition, Anda

    harus yakin bahwa beberapa fi le rpm sudah

    terinstall dalam semua mesin yang akan di-

    cluster. File-fi le rpm tersebut adalah:

    1. CD-2 Redhat Advance Server 3.0

    setarch-1.3-1.i386.rpm tcl-8.3.5-92.i386.rpm

    2. CD-3 RedHat Advance Server 3.0

    openmotif21-2.1.30-8.i386.rpm compat-db-4.0.14-5.i386.rpm compat-gcc-7.3-2.96.122.i386.rpm compat-gcc-c++-7.3-2.96.122.i386.

    rpm

    compat-libstdc++-7.3-2.96.122.i386.rpm

    c o m p a t - l i b s t d c + + - d e v e l - 7 . 3-2.96.122.i386.rpm

    Setelah semua fi le tersebut terinstal di

    dalam mesin Linux, sekarang saatnya kita

    melakukan beberapa konfi gurasi yang dibu-

    tuhkan oleh Oracle database pada saat insta-

    lasi dijalankan. Untuk itu ikutilah langkah-

    langkah yang akan disajikan secara bersam-

    bung dalam majalah kesayangan kita ini.

    Konfigurasi kernel LinuxInstalasi Oracle membutuhkan beberapa

    perubahan pada kernel Linux, untuk me-

    nambahkan beberapa parameter yang ber-

    hubungan dengan Oracle database. Untuk

    itu tambahkan parameter seperti berikut ini

    pada kedua mesin (dsmp1 & dsmp2):

    [root@dsmp1 root]# vi /etc/sysctl.conf

    # Oracle Configuration for RACnet.core.rmem_default=262144net.core.wmem_default=262144net.core.rmem_max=262144net.core.wmem_max=262144# End of for RAC

    # Oracle Configurationkernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096

    kernel.sem = 250 32000 100 128fs.file-max = 65536net.ipv4.ip_local_port_range = 1024 65000# End of Oracle

    [root@dsmp1 root]# vi /etc/security/limits.conf

    # Oracle Configuration* soft nproc 2047* hard nproc 16384* soft nofile 1024* hard nofile 65536# End of Oracle

    [root@dsmp1 root]# vi /etc/pam.d/login

    # Oracle Configurationsession required /lib/security/pam_limits.so# End of Oracle Configuration

    Setelah menambahkan parameter terse-

    but, lakukan restart pada kedua mesin Linux.

  • INFOLINUX 10/200562

    TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    Oracle Cluster

    Konfigurasi hangcheck-timerTambahkan parameter berikut pada /etc/

    modules.conf Red Hat Linux di semua me-

    sin RAC.

    [root@dsmp1 root]# echo options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180 >> /etc/modules.conf[root@dsmp1 root]#

    Hangcheck-timer memiliki dua para-

    meter, yaitu:

    1. hangcheck_tick, parameter ini berguna

    untuk melakukan check terhadap Sys-

    tem Health

    2. hangcheck_margin, parameter ini adalah

    maksimum Hang Delay yang ditole-

    ransi sebelum hangcheck-timer melaku-

    kan reset terhadap RAC Node.

    Membuat group dan user OracleTahap selanjutnya adalah membuat user

    Oracle. User Oracle digunakan untuk

    melakukan administrasi terhadap data-

    base Oracle. User Oracle yang dibuat ha-

    rus merupakan member dari group oinstall

    dan dba. Untuk membuatnya lakukan de-

    ngan perintah-perintah di bawah ini pada

    kedua mesin:

    [root@dsmp1 root]# groupadd oinstall[root@dsmp1 root]# groupadd dba[root@dsmp1 root]# adduser Oracle -g oinstall -G dba[root@dsmp1 root]#

    Konfigurasi ORACLE_HOME & User ProfileSelanjutkan kita harus membuat ORACLE_

    HOME. ORACLE_HOME adalah tempat

    Oracle database & Oracle cluster manager

    akan diinstal. ORACLE_HOME pada insta-

    lasi diletakkan pada /u01/app/product/Ora-

    cle/9.2. Untuk membuatnya ikuti langkah di

    bawah ini:

    [root@dsmp1 root]# mkdir -p /u01/app/Oracle/product/9.2[root@dsmp1 root]# chown -R Oracle:oinstall /u01/app[root@dsmp1 root]#

    Script di atas juga harus dilakukan di

    semua mesin cluster. Oracle juga memerlu-

    kan modifi kasi pada fi le .bash_profi le pada

    user Oracle untuk menentukan nilai dari

    $ORACLE_BASE, $ORACLE_HOME dan

    juga ORACLE_SID. Ikuti langkah berikut

    ini untuk memodifi kasi fi le .bash_profi le:

    Mesin 1 (dsmp1)[root@dsmp1 root]# su - Oracle[Oracle@dsmp1 Oracle]$ vi .bash_profile

    ORACLE_BASE=/u01/app/Oracle; export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/9.2; export ORACLE_HOMEORACLE_SID=reald1;ORACLE_OWNER=Oracle; export ORACLE_OWNERPATH=$PATH:$ORACLE_HOME/bin; export PATHLD_LIBRARY_PATH=$ORACLE_HOME/jlib; export LD_LIBRARY_PATHCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlibCLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib;export CLASSPATHLD_ASSUME_KERNEL=2.4.19; export LD_ASSUME_KERNEL

    Mesin 2 (dsmp2)[root@dsmp2 root]# su - Oracle[Oracle@dsmp2 Oracle]$ vi .bash_profile

    ORACLE_BASE=/u01/app/Oracle; export ORACLE_BASEORACLE_HOME=$ORACLE_BASE/product/9.2; export ORACLE_HOMEORACLE_SID=reald2;ORACLE_OWNER=Oracle; export ORACLE_OWNERPATH=$PATH:$ORACLE_HOME/bin; export PATHLD_LIBRARY_PATH=$ORACLE_HOME/jlib; export LD_LIBRARY_PATHCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlibCLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib;export CLASSPATHLD_ASSUME_KERNEL=2.4.19; export LD_ASSUME_KERNEL

    Konfigurasi networkTambahkan konfi gurasi berikut ini pa-

    da /etc/hosts di kedua mesin (dsmp1 &

    dsmp2):

    192.168.1.1 dsmp1192.168.1.2 dsmp210.1.1.1 dsmp1-priv10.1.1.2 dsmp2-priv

    Konfigurasi rsh untuk Remote OperationKetika melakukan instalasi Oracle pada

    RAC Node, Oracle akan menggunakan fi tur

    rsh untuk melakukan copy Oracle software

    dari satu node ke node yang lainnya. Oleh

    karena itu, Oracle account harus di-trust

    oleh semua RAC Node. Untuk melakukan-

    nya, ikuti langkah berikut:

    Yakinkan rsh server sudah terinstal di server Anda.

    [root@dsmp1 root]# rpm -qa | grep rshrsh-0.17-17rsh-server-0.17-17[root@dsmp1 root]#

    Aktifkan service rsh, yang biasanya di-disable oleh Linux.

    [root@dsmp1 root]# chkconfig rsh on[root@dsmp1 root]# chkconfig rlogin on[root@dsmp1 root]# service xinetd reloadReloadingconfiguration: [OK][root@dsmp1 root]#

    Tambahkan konfi gurasi berikut ini pada fi le /etc/hosts.equiv.

    +dsmp1 Oracle+dsmp2 Oracle+dsmp1-priv Oracle+dsmp2-priv Oracle

    Ubahlah mode fi le tersebut.[root@dsmp1 root]# chmod 600 /etc/hosts.equiv[root@dsmp1 root]# chown root:root /etc/hosts.equiv

    Lakukan langkah di atas di semua mesin

    RAC dan setelah itu yakinkan bahwa user

    Oracle dapat melakukan remote opera-

    tion tanpa meminta password. Untuk itu

  • INFOLINUX 10/2005 63

    TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    Oracle Cluster

    ikuti langkah berikut ini:

    [root@dsmp1 root]# su - Oracle[Oracle@dsmp1 Oracle]$ rsh dsmp2 hostnamedsmp2[Oracle@dsmp1 Oracle]$ rsh dsmp2-priv hostnamedsmp2[Oracle@dsmp1 Oracle]$

    Jika Linux sudah tidak lagi meminta

    password, maka konfi gurasi rsh sudah Anda

    lakukan dengan benar. Namun jika Linux

    tetap meminta password, ulangi langkah di

    atas. Jika step ini tidak dilakukan dengan

    benar, instalasi Oracle dipastikan akan gagal

    karena Oracle tidak dapat melakukan re-

    mote copying.

    Patches Red Hat Linux Advance Server 3.0Sebelum melakukan instalasi Oracle, Anda

    perlu melakukan patches pada Redhat Ad-

    vance Server 3.0 agar instalasi Oracle ber-

    jalan dengan lancar tanpa error. Patches

    tersebut adalah p3006854_9204_LINUX.

    zip, yang bisa didapatkan dari http://meta-

    link.oracle.com. Untuk melakukan patches

    harus su atau login sebagai user root dan

    dilakukan di semua mesin yang akan di-

    cluster.

    Mesin 1 ( dsmp1)[root@dsmp1 patches]# unzip p3006854_9204_LINUX.zipArchive: p3006854_9204_LINUX.zip creating: 3006854/ inflating: 3006854/rhel3_pre_ install.sh inflating: 3006854/README.txt[root@dsmp1 patches]# cd 3006854/[root@dsmp1 3006854]# sh rhel3_pre_install.shApplying patch...Ensuring permissions are correctly set...Done.Patch successfully applied

    Mesin 2 (dsmp2)[root@dsmp2 source]# unzip p3006854_9204_LINUX.zipArchive: p3006854_9204_LINUX.zip creating: 3006854/ inflating: 3006854/rhel3_pre_ install.sh inflating: 3006854/README.txt[root@dsmp2 source]# cd 3006854/[root@dsmp2 3006854]# sh rhel3_pre_install.shApplying patch...Ensuring permissions are correctly set...Done.Patch successfully applied[root@dsmp2 3006854]#

    Pada bagian kedua akan membahas

    mengenai cara instalasi OCFS (Oracle Clus-

    ter File System) yang akan digunakan untuk

    membangun Oracle RAC (Real Application

    Cluster).

    Yahya Yanuar ([email protected])

  • INFOLINUX 10/200564

    TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    SQLite

    Database embbeded selalu menjadi cerita yang seru bagi pengguna yang ingin segalanya serba prak-tis. Dan, jumlah pengguna tersebut sangat-

    lah banyak di seluruh dunia. Penulis juga

    merupakan salah satunya. Tak heran apabila

    database semacam DB(F) dan MDB sangat

    populer sampai hari ini. Berjuta-juta peng-

    guna komputer di dunia ini masih meng-

    gunakan database jenis tersebut. Dengan

    database embbeded, semua data disimpan

    di dalamumumnyasatu fi le tunggal,

    yang menjadikannya sangat mudah untuk

    dibagi, sangat mudah untuk dipindahkan

    dan secara umum, sangat mudah untuk di-

    manage.

    Database system semacam ini jelas ber-

    tentangan dengan database yang bekerja se-

    cara client/server seperti PostgreSQL atau-

    pun MySQL. Arsitektur database system

    keduanya memungkinkan adanya bagian

    yang jelas antara server database dan client

    database. Dengan demikian, untuk kebu-

    tuhan data diakses ramai-ramai, pengguna

    tidak perlu mengatur fi le sharing secara

    manual, karena database system-nya sen diri

    telah mengizinkan. Dibandingkan dengan

    database embedded, database semacam ini

    jelas memiliki keunggulan seperti multi

    user native seperti disebutkan sebelumnya,

    skema keamanan yang lebih fl eksibel, dan

    umum nya, lebih mendukung sistem enter-

    prise. Namun, jangan lupa bahwa proses

    replikasi, back-up, dan restore juga tidak

    mudah.

    Sebagai pengguna database, pemili-

    han suatu database system merupakan hal

    yang sangat penting. Benar bahwa hampir

    semuanya menggunakan bahasa SQL stan-

    dar, namun, tidak semua menuruti standar

    benar-benar. Boleh dikatakan, masing-ma-

    sing database system yang menerapkan SQL

    pun, umumnya menambahkan fi tur sen diri

    yang oleh karenanya tidak dimiliki oleh da-

    tabase system lain. Lebih detil, ada pula ma-

    salah tipe data yang disebabkan tidak menu-

    ruti standar SQL.

    Untuk memilih database system itu

    sendiri, Anda mungkin akan memilih dulu

    apakah database system yang akan Anda

    gunakan tersebut termasuk kategori yang

    embbeded atau yang bekerja secara client/

    server. Berikut ini adalah beberapa alasan

    untuk menggunakan database embedded:

    Anda akan sering memindah-mindah-kan database dari satu tempat ke tempat

    lainnya.

    Database tidak digunakan untuk mela-yani kebutuhan enterprise (contoh: tidak

    perlu database clustering).

    Anda tidak membutuhkan banyak fi tur advanced (contoh: tidak membutuhkan

    trigger, stored procedure, dan lain-lain).

    Apabila Anda memiliki alasan-alasan

    tersebut, maka tidak ada salahnya apabila

    Anda mencoba menggunakan embedded

    database. Bicara soal ukuran data yang

    mampu ditampung oleh database embed -

    ded, umumnya hal tersebut bukan merupa-

    kan masalah lagi. Ukuran yang mampu

    di tampung oleh suatu embedded database

    juga tergantung pada sistem operasi yang

    digunakan. Apabila diperkirakan data-

    base Anda perlu menampung database

    ber ukuran sekitar 2 GB misalnya, maka ba-

    nyak sekali database embedded yang sudah

    mendukung. Ukuran fi le 2 GB juga bukan

    masalah besar untuk sistem operasi mo-

    dern. Beberapa database embedded secara

    teori mampu menampung data sampai satu-

    an Tera, namun, apabila data Anda sudah

    berkisar pada ukuran tersebut, akan sangat

    disarankan apabila Anda menggunakan da-

    tabase system yang memiliki dukungan un-

    tuk dunia enterprise.

    Mari kita batasi bahwa kita akan menggu-

    nakan database embedded. Solusi tidak ser-

    ta merta muncul begitu saja karena terdapat

    begitu banyak database embbeded yang ada

    di pasaran. Untuk di dunia open source saja,

    diperkirakan ada belasan database embed-

    ded yang tersedia. Walau, yang benar-benar

    bisa diandalkan barangkali hanya di bawah

    sepuluh. Beberapa yang sangat populer di-

    antaranya DB dari Sleepycat dan Sqlite.

    Bicara soal database, umumnya yang se-

    lalu terbayang di dalam benak kita adalah

    sintaks SQL. Sayangnya, tidak semua da-

    tabase embedded mendukung fi tur yang

    satu ini. Banyak sekali embbeded database

    yang hanya mendukung operasi pencarian

    dengan lookup pada key, sementara operasi

    penambahan data dan modifi kasi atau peng-

    hapusan data menggunakan API yang telah

    disediakan. DB (BerkeleyDB) misalnya.

    Walaupun merupakan salah satu database

    embbeded terpopuler yang ada, tidaklah

    mendukung sintaks SQL. Keputusan untuk

    tidak datang bersama fi tur ini umumnya

    macam-macam. Ada yang memang karena

    Database Embedded dengan SQLiteUntuk kebutuhan database, tidak semua pengguna harus menggunakan MySQL ataupun PostgreSQL. Keduanya membutuhkan resource sistem yang cukup besar dan sistem da-tabasenya pun cukup rumit. Apabila Anda membutuhkan database satu file, yang ke-cil, sederhana, bisa dipindahkan dengan sangat mudah, maka Anda selalu bisa mencoba SQLite.

  • INFOLINUX 10/2005 65

    TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    keterbatasan teknologi, ada yang dikarena-

    kan tujuan optimasi dan compactness. De-

    ngan tidak datang bersama fi tur dukungan

    SQL, maka setidaknya tidak akan ada kegi-

    atan parsing dan mengartikan sintaks SQL

    yang diberikan. Kecepatan proses pun bisa

    ditingkatkan.

    Mengenal SQLiteDari beberapa embbeded database yang me-

    miliki cukup banyak fi tur, sekaligus datang

    dengan kemampuan SQL, penulis cukup

    senang dengan kehadiran SQLite. Ada be-

    berapa alasan mengapa SQLite menyenang-

    kan:

    Secara umum sangat stabil. Penulis cuk-up lama menggunakan SQLite dan tidak

    ada masalah yang berarti.

    Lisensi yang sangat menyenangkan. SQLite merupakan software yang dili-

    sensikan public domain. Ini jauh lebih

    menyenangkan daripada GPL.

    Sangat cepat. Dari sisi dukungan SQL, mendukung

    banyak sekali standar SQL92.

    Mampu menampung data sampai 2 Tera. Walaupun yang satu ini umumnya

    tidak terlalu menjadi fi tur yang pa ling

    menarik, setidaknya, SQLite mampu

    menampung data sangat besar.

    Tidak memerlukan banyak memory. Ini sangat berguna untuk sistem yang juga

    embedded.

    Banyak bahasa program telah mendu-kung database yang satu ini.

    Mendukung ACID, bahkan pada kegaga-lan sistem atau power.

    Perkembangannya juga cukup stabil. Dan, tentunya, sebagai database embed-

    ded, tidak ada usaha tambahan untuk

    pengaturan data, selain itu, database pun

    disimpan dalam satu fi le tunggal. File

    tersebut dapat dipindahkan bahkan dari

    mesin LE (Little Endian) ke BE (Big En-

    dian) dan lain sebagainya.

    Tabel dapat disimpan pada fi le terpisah, dan dapat di-attach ke database utama.

    SQLite adalah database system yang

    dikembangkan oleh D. Richard Hipp dari HWACI Applied Software Research

    ([email protected]). Sqlite dapat di-down-

    load di http://www.sqlite.org. Namun, sebe-

    lum men-download, cobalah cari terlebih

    dahulu ke dalam CD-ROM Anda. Hampir

    semua distro desktop umumnya telah me-

    maketkan sqlite ke dalam CD/DVD distro.

    Saat ini, SQLite telah mencapai versi 3.x,

    walaupun versi 2.x masih tetap dimaintain.

    Karena versi 2.x masih sangat banyak di-

    gunakan, maka pada distribusi versi 3, be-

    berapa penyesuaian pun dilakukan. Sebagai

    contoh, nama header pustaka pada versi 3

    adalah sqlite3.h, dan bukan sqlite.h. De ngan

    beberapa penyesuaian tersebut, maka di-

    mungkinkan adanya dua versi SQLite terin-

    stall dalam sistem.

    Berikut ini kita akan membahas beberapa

    fi tur baru versi 3, sekaligus membandingkan

    dengan versi 2.

    Format file baruFormat fi le data SQLite telah mengalami

    perubahan dibandingkan dengan versi 2.

    Sayangnya, perubahan format tersebut ti-

    dak kompatibel satu sama lainnya. Versi 2

    tidak akan membaca database versi 3, dan

    sebaliknya.

    Untungnya, walaupun format data tidak

    kompatibel, migrasi tetap dapat dilakukan

    dengan sangat mudah dengan memanfaat-

    kan perintah dump dari program sqlite versi

    2, dan hasilnya kemudian disimpan pada

    database versi 3 menggunakan program

    sqlite versi 3. Hal ini dimungkinkan karena

    dalam satu sistem bisa terinstal lebih dari

    satu versi SQLIte.

    Secara teknikal, format fi le baru SQLite

    mempergunakan tipe data B+Tree untuk

    tabel (untuk indeks, b-tree konvensional

    masih dipergunakan). Pada tree ini, semua

    data disimpan pada daun-daun tree. Menu-

    rut pengembang SQLite, format baru ini

    akan memungkinkan skalabilitas yang lebih

    baik.

    Tipe dataDukungan untuk BLOB dan tipe data. Se-

    lama ini, SQLite dikenal sebagai database ser-

    ver yang tidak bertipe (walaupun pada DDL

    didukung). Pada SQLite 2.x, semua data

    akan dikonversi ke teks ASCII. Pada versi 3,

    apabila memungkinkan, maka data akan di-

    simpan sebagai tipe yang didefi niskan oleh

    user. Penyimpanan ke format non-ASCII

    sangat penting untuk memungkinkan ada-

    nya tipe data BLOB (Binary Large Object).

    BLOB pada versi 2.x dimungkinkan apabila

    data telah diencode terlebih dahulu.

    Masalah tipe data ini merupakan hal

    yang sangat penting. Pada versi 2.8, kare-

    na semua data akan dikonversi ke teks

    ASCII, maka dengan demikian, data yang

    seharusnya disimpan ke kolom satu bisa

    Website SQLite.

    SQLite

  • INFOLINUX 10/200566

    TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    SQLite

    disimpan ke kolom lain. Hal ini mungkin

    terdengar sangat asing pada database sys-

    tem lain. Pada SQLite versi 3, fi tur ini ma-

    sih diperta hankan, namun penanganannya

    telah diperbaiki. Pada saat data dimasuk-

    kan ke dalam kolom, SQLite 3 akan men-

    coba untuk melakukan konversi ke format

    yang telah didefi nisikan. Apabila konversi

    tidak dimungkinkan, SQLite 3 tetap akan

    menyim pan data tersebut.

    Sebagai contoh, apabila data string ingin

    dimasukkan ke dalam kolom integer, maka

    SQLite akan memeriksa apakah data dapat

    dikonversi ke bilangan. Apabila dapat, maka

    konversi dilakukan dan data akan disimpan

    ke dalam kolom integer. Apabila tidak dapat

    dikonversi, maka data akan tetap disimpan

    sebagai string.

    Berikut ini adalah tipe-tipe data yang

    didukung:

    NULL, nilai null INTEGER, menyimpan integer sampai

    integer 8 byte

    REAL, menyimpan nilai fl oating point/pecahan sampai 8 byte IEEE fl oating

    point

    TEXT, menyimpan teks BLOB, menyimpan data blob

    ConcurencySebuah database tentunya bisa diakses oleh

    lebih dari satu orang pada saat yang sama.

    Dan, dengan kondisi demikian, maka lock-

    ing adalah isu yang sangat penting. Pada

    SQLite 3, locking pada level tabel juga telah

    diimplementasikan, walaupun tidak akan

    sebaik locking pada database system besar

    lain.

    ROWID 64bitSetiap baris dalam tabel akan memiliki ID

    yang unik (rowid). Dibandingkan dengan

    versi 2.8 yang hanya mendukung rowid

    sampai 32bit, versi 3 telah mendukung sam-

    pai 64bit.

    Dukungan UTF-8 dan UTF-16SQLite 3 telah mendukung baik teks UTF-8

    dan UTF-16 secara natif. Hal ini menjadi-

    kan dukungan yang lebih luas untuk ba-

    hasa di dunia. Implementasi saat ini belum

    sepenuhnya mendukung kedua encoding

    tersebut, namun, di masa depan, SQLite 3

    akan mendukung sepenuhnya.

    Fitur SQL92 yang tidak didukungSQLite berusaha untuk mendukung seba-

    nyak mungkin fi tur SQL92. Namun, untuk

    kecepatan dan alasan lain, beberapa fi tur

    tidak didukung. Berikut ini adalah fi tur

    SQL92 yang tidak didukung:

    CHECK constrain. Parser mengenali CHECK namun tidak akan dijalankan,

    kecuali UNIQUE dan NOT NULL.

    FOREIGN KEY. Parser mengenali na-mun tidak akan menjalankan.

    Dukungan trigger komplit. Saat ini, du-kungan trigger pada SQLite belumlah

    komplit.

    ALTER TABLE. Untuk mengubah tabel, hapuslah tabel dan buatlah kembali. Saat

    ini, hanya ALTER TABLE ... RENAME

    TABLE ... yang didukung.

    Transaksi bersarang (nested transaction). Fungsi COUNT(DISTINCT X). Cara al-

    ternatif adalah dengan menggunakan sub-

    query seperti SELECT count(x) FROM

    (SELECT DISTINCT x FROM tbl);

    RIGHT OUTER JOIN dan FULL OUT-ER JOIN tidak diimplementasikan. Yang

    telah diimplementasikan adalah LEFT

    OUTER JOIN.

    Menulis ke view tidak diimplementasi-kan. Pada SQLite, view adalah read-only.

    GRANT dan REVOKE. Hal ini disebab-kan karena pengguna fi le database yang

    disimpan langsung pada fi lesystem, se-

    hingga hak akses akan menuruti hak ak-

    ses pada fi lesystem.

    Bisa dilihat bahwa fi tur yang tidak didu-

    kung sudah cukup sedikit dan tidak terlalu

    vital. Yang mungkin sedikit vital adalah

    FOREIGN KEY, yang terpaksa harus dicapai

    melalui program.

    Distribusi SQLiteDistribusi SQLite 3 sebenarnya hanya terdiri

    dari satu program dan beberapa pustaka C

    untuk mengakses database. Program sqlite3

    yang datang bersama distribusi SQLite3

    merupakan program untuk bekerja de ngan

    SQLite, mulai dari pembuatan database

    sampai memungkinkan perintah-perintah

    khusus SQLite dan sintaks SQL untuk di-

    jalankan.

    Secara sederhana, program sqlite3 bisa

    dianggap seperti halnya program psql (client

    PostgreSQL) dan mysql (client MySQL).

    Sementara, pustaka yang datang bersama

    SQLite adalah pustaka libsqlite3. Pustaka

    ini dapat digunakan oleh developer untuk

    bekerja dengan database SQLite.

    Umumnya, paket-paket dalam distro

    dibagi dalam paket sqlite dan sqlite-de-

    vel. Untuk pengembangan program, paket

    sqlite-devel harus diinstal. Paket sqlite-de-

    vel akan berisi dokumentasi, fi le-fi le header

    dan pustaka untuk kebutuhan pembuatan

    program.

    Menggunakan sqlite3Begitu dijalankan, sqlite3 dapat menerima

    dua macam perintah: perintah sqlite3 atau-

    pun perintah SQL. Perintah sqlite3 adalah

    perintah yang diawali oleh tanda titik dan

    dapat menerima parameter. Berikut ini

    adalah beberapa perintah sqlite3 yang ber-

    guna:

    .help berguna untuk melihat daftar pe-rintah sqlite3.

    .databases berguna untuk melihat nama dan fi le yang digunakan database.

    .dump berguna untuk melakukan dump database.

    .echo berguna untuk menampilkan pe-rintah yang dijalankan dalam hasil.

    .mode berguna untuk mengatur mode output. Mode yang tersedia cukup ba-

    nyak, diantaranya line, html, column,

    csv dan lain sebagainya.

    .output berguna untuk menyimpan out-put perintah ke fi le tertentu.

    .read berguna untuk menjalankan SQL dari fi le tertentu.

    .tables berguna untuk menampilkan daf-tar tabel.

    Untuk perintah SQL, Anda dapat lang-

    sung memberikannya di prompt.

    Membuat database baruUntuk membuat database baru, cukup

    jalankan program sqlite, diikuti oleh sebuah

    parameter berupa nama database. Ekstensi

    nama fi le database umumnya adalah .db,

    namun Anda dapat menggunakan ekstensi

    yang Anda suka. Tidak ada pembatasan.

    Setelah itu, masukkanlah perintah SQL

    untuk membuat tabel ataupun mengisi-

    kan data ke dalam tabel. Setelah itu, begitu

    Anda keluar dari sqlite3, database telah ter-

    simpan.

  • INFOLINUX 10/2005 67

    TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    SQLite

    Contoh:

    $ sqlite3 test.dbSQLite version 3.1.3Enter .help for instructionssqlite> create table test(a integer, b integer);sqlite> .exit

    Melihat daftar tableUntuk melihat daftar table, berikanlah pe-

    rintah .tables seperti contoh berikut ini:

    $ sqlite3 test.db SQLite version 3.1.3Enter .help for instructionssqlite> .tablestest test2 test3 test4 test5sqlite> .exit

    Menjalankan sintaks SQL dari com-mand lineAda kalanya, Anda ingin menjalankan sin-

    taks SQL dari command line, misalnya keti-

    ka digunakan dalam script. Untuk kebutuh-

    an tersebut, Anda bisa langsung memberi-

    kan perintah SQL langsung pada command

    line seperti contoh berikut:

    $ sqlite3 test.db select * from test;1|12|2

    Sebenarnya, Anda pun bisa saja men-

    jalankan perintah internal sqlite3 di com-

    mand line:

    $ sqlite3 test.db .tables;test test2 test3 test4 test5

    Menjalankan sintaks SQL dari file lainUntuk menjalankan sintaks SQL yang ter-

    simpan dalam fi le lain, gunakanlah perintah

    internal .read seperti contoh berikut ini.

    isi file test.sqlselect * from test;insert into test(a,b) values(3,3);select * from test;

    Contoh penggunaan .read:

    $ sqlite3 test.db SQLite version 3.1.3

    Enter .help for instructionssqlite> .echo onsqlite> .read test.sql .read test.sql select * from test;1|12|23|3insert into test(a,b) values(3,3);select * from test;1|12|23|33|3

    sqlite> .exit

    Dump database ke fileWalaupun back-up dapat dilakukan de-

    ngan langsung meng-copy fi le database ke

    lokasi lain, tidak harus dengan cara dump

    seperti MySQL ataupun PostgreSQL, ada

    kalanya dump diperlukan. Contoh paling

    baik adalah ketika Anda ingin memigrasi

    data dari SQLite versi lama ke SQLite versi

    baru.

    Berikut ini adalah langkah-langkah

    melakukan dump:

    jalankan sqlite3 berikan perintah .output

    berikan perintah .dump atur kembali agar output kembali disim-

    pan ke stdout dengan perintah .output

    stdout

    Contoh:

    $ sqlite3 test.db SQLite version 3.1.3Enter .help for instructionssqlite> .output dump.sqlsqlite> .dumpsqlite> .output stdoutsqlite> .exit

    Contoh fi le hasil dump:

    $ cat dump.sql BEGIN TRANSACTION;CREATE TABLE test(a integer, b integer);INSERT INTO test VALUES(1, 1);INSERT INTO test VALUES(2, 2);INSERT INTO test VALUES(3, 3);

    INSERT INTO test VALUES(3, 3);CREATE TABLE test2(a integer, b integer);CREATE TABLE test3(a integer, b integer);CREATE TABLE test4(a integer, b integer);CREATE TABLE test5(a integer, b integer);COMMIT;

    Melihat skema databaseUntuk melihat skema dalam database, beri-

    kanlah perintah .schema seperti contoh

    berikut:

    $ sqlite3 test.db SQLite version 3.1.3Enter .help for instructionssqlite> .schemaCREATE TABLE test(a integer, b integer);CREATE TABLE test2(a integer, b integer);CREATE TABLE test3(a integer, b integer);CREATE TABLE test4(a integer, b integer);CREATE TABLE test5(a integer, b integer);sqlite> .exit

    Output sqlite_to_web.sh.

  • INFOLINUX 10/200568

    TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    SQLite

    Untuk melihat skema per table, berikan

    parameter nama tabel pada .schema:

    sqlite> .schema testCREATE TABLE test(a integer, b integer);sqlite>

    Membuat auto-incrementSQLite tidak memiliki dukungan khusus

    untuk membuat fi eld auto-increment. Apa

    yang bisa dilakukan untuk membuat fi eld

    auto-increment adalah dengan membuat

    suatu fi eld bertipe integer dan menjadikan-

    nya primary key. Pada saat insert, pengguna

    tidak perlu memasukkan nilai tertentu ke

    fi eld tersebut. SQLite akan menambahkan-

    nya sendiri, sehingga auto-increment pun

    dimungkinkan.

    Sebagai contoh, kita akan membuat table

    test6 yang terdiri dari dua fi eld berikut ini:

    a bertipe integer dan berupa primary key b bertipe integer

    Berikut ini adalah sintaks SQL untuk ke-

    butuhan pembuatan tabel:

    sqlite> create table test6(a integer primary key, b integer);

    Kita telah mempersiapkan fi eld a sebagai

    fi eld auto-increment. Dengan tidak mema-

    sukkan nilai ke fi eld a setiap kali melakukan

    insert, nilai data pada fi eld a akan ditambah-

    kan satu. Contoh:

    sqlite> insert into test6(b) values(1);sqlite> insert into test6(b) values(2);sqlite> insert into test6(b) values(3);

    Berikut ini adalah isi table test6:

    select * from test6;1|12|23|3

    Proses penambahan ini akan berhenti

    apabila telah mencapai nilai 2147483647.

    Selanjutnya, nilai random yang akan dima-

    sukkan.

    Mengubah prompt sqlite3Secara default, prompt pada sqlite3 adalah

    sqlite> dan prompt untuk baris lanjutan

    perintah yang belum selesai adalah ...>.

    Anda bisa menggantinya dengan perintah

    .prompt apabila diinginkan.

    Contoh:

    $ sqlite3 test.db SQLite version 3.1.3Enter .help for instructionssqlite> select ...> * ...> from ...> test;1|12|23|33|3sqlite> .prompt mydb> --->mydb>select --->* --->from --->test;1|12|23|33|3mydb>

    Output ke format CSVAnda bisa membuka isi dari suatu tabel

    database sqlite di OpenOffi ce.org ataupun

    di Excel. Caranya adalah dengan mem-

    buat output program sqlite3 menjadi for-

    mat CSV. Setiap record kemudian akan

    di tampilkan perbaris, dan setiap fi eld akan

    ditampilkan dengan dipisahkan oleh koma.

    Berikut ini contohnya:

    $ sqlite3 test.db SQLite version 3.1.3Enter .help for instructionssqlite> .mode csvsqlite> .output test.csvsqlite> select * from test;sqlite> .output stdoutsqlite> .mode listsqlite> .exit

    Berikut ini adalah isi fi le test.csv:

    1,12,23,33,3

    Output ke format HTMLApabila isi table ingin ditampilkan di inter-

    net, maka format output bisa diganti ke for-

    mat HTML. Berikut ini adalah contohnya:

    $ sqlite3 test.db SQLite version 3.1.3Enter .help for instructionssqlite> .header onsqlite> .mode htmlsqlite> .output test.htmlsqlite> select * from test;sqlite> .output stdout;sqlite> .mode listsqlite> .header offsqlite> .exit

    Berikut ini adalah isi test.html:

    ab11

    22

    33

    33

    Sebagai catatan, perintah .header on

    berguna untuk meminta sqlite3 untuk me-

    nampilkan nama fi eld setiap kali query di-

    lakukan. Tentunya, kita tidak ingin tabel

    HTML yang dibuat tidak memiliki judul,

    bukan?

    Output teks yang rapiOutput pada sqlite3 memang tidak rapi.

    Apabila Anda menginginkannya untuk tam-

    pil rapi seperti psql misalnya, gantilah for-

    mat output menjadi column, dan ja ngan lu-

    pa untuk mengatur lebar kolom data Anda.

    Berikut ini adalah contohnya:

    $ sqlite3 test.db SQLite version 3.1.3Enter .help for instructionssqlite> .header onsqlite> .mode columnsqlite> .width 20 20sqlite> select * from test;a b --------------- ---------------1 1 2 2

  • INFOLINUX 10/2005 69

    TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    SQLite

    3 3 3 3 sqlite> .exit

    Sebagai catatan, perintah .width dan

    parameter 20 20 dimaksudkan untuk me-

    ngubah lebar kolom pertama sebesar 20

    karakter dan lebar kolom kedua sebesar 20

    karakter. Dengan cara seperti ini, lebar ko-

    lom tertentu bisa diatur dengan fl eksibel.

    Vakum databasePada saat Anda menghapus banyak record

    dari database, ukuran fi le database umum-

    nya tidak akan berkurang. Hal ini wajar

    karena ruang kosong (yang tadinya digu-

    nakan untuk menampung data sebelum di-

    hapus) akan ditandai sebagai ruang kosong

    internal. Ruang kosong internal tersebut

    nantinya akan digunakan begitu ada data

    baru dimasukkan.

    Apabila Anda tidak senang dengan cara

    kerja demikian dan ingin mendapatkan

    pengurangan ukuran database begitu data

    dihapus (SQLite sebelum 3.1, karena pada

    3.1, auto vacuum menjadi default), Anda

    bisa menggunakan perintah VACUUM.

    Perintah yang satu ini akan membangun

    ulang database dari awal. Hal ini akan se-

    dikit memakan waktu dan space harddisk.

    Pada sistem dimana SQLite dibangun, va-

    kum akan memakan waktu setengah detik

    untuk setiap MB data, dan akan memakan

    space dua kali ukuran database.

    Berikut ini adalah contoh penggunaan

    perintah vacuum:

    $ sqlite3 test.db SQLite version 3.1.3Enter .help for instructionssqlite> vacuum;sqlite> .exit

    Contoh aplikasi : iterasi tabel dan menampilkan hasilnya di webPada contoh sebelumnya, kita telah melihat

    bagaimana mengubah format output dari

    perintah SQL yang dijalankan ke HTML.

    Ini berarti, kita dapat membukanya di web

    browser atau menampilkannya di Internet.

    Namun, bagaimana kalau kita ingin

    menampilkan semua tabel dan isinya ke

    internet dengan cara yang mudah? Untuk

    lebih mudahnya, kita bisa membangun shell

    script sederhana yang akan membuat se-

    buah HTML tunggal untuk semua tabel dan

    isinya. Berikut ini adalah source code shell

    script tersebut:

    #!/bin/sh

    # (c) Noprianto# 20 June 2005

    SQLITE=/usr/bin/sqlite3OUT=$1.html

    HEADER=SQLITE TO WEB: $1$1FOOTER=Generated by `basename $0` on `date`LINKS=TABLE_CONTENTS=

    echo sqlite_to_web.shecho (c) Nop, 2005

    #checking routine[ ! -x $SQLITE ] && echo Sorry: SQLITE binary not found && exit 1[ -z $1 ] && echo Sorry: I need one parameter, which is your database && exit 2[ ! -e $1 ] && echo Sorry: Database file you specified cannot be found && exit 3[ ! -r $1 ] && echo Sorry: Database file you specified cannot be read && exit 4

    #get table listTABLES=`$SQLITE $1 .tables`

    #create table HTML codefor i in $TABLESdo LINK=$i TABLE_CONTENT=`$SQLITE -header -html $1 \select * from $i\;` LINKS=$LINKS $LINK

    TABLE_CONTENTS=$TABLE_ CONTENTS $TABLE_CONTENTdone

    echo $HEADER $LINKS $TABLE_CONTENTS $FOOTER > $OUT

    echo DONE.

    Catatan program Untuk secara otomatis menampilkan

    header, berikanlah parameter -header

    pada program sqlite3

    Dan, untuk secara mengotomatis me-ngubah format output ke HTML, beri-

    kan parameter -html.

    Cara kerja program: Pertama-tama, script akan memeriksa

    apakah binary SQLITE tersedia atau ti-

    dak. Pengguna dapat mengubah lokasi

    pencarian dengan mengubah path ke bi-

    nary SQLITE pada variabel $SQLITE.

    Setelah itu, pemeriksaan akan dilanjut-kan kepada pemeriksaan parameter per-

    tama (apakah pengguna memasukkan

    parameter pertama atau tidak).

    Kemudian, dilanjutkan dengan meme-riksa ketersediaan database di fi lesystem

    (apakah fi le ditemukan).

    Dan pemeriksaan diakhiri dengan memeriksa apakah database dapat di-

    baca atau tidak (pemeriksaan fi lesistem

    semata, karena database sqlite disimpan

    sebagai fi le biasa).

    Daftar table pun kemudian didapat de-ngan memanggil binary SQLITE diikuti

    dengan perintah .tables (merupakan pe-

    rintah terpisah).

    Berdasarkan daftar table yang didapat, kita pun membuat link dan table isi table

    database.

    Akhirnya, semua variabel yang didapat-kan kita tuliskan di HTML output.

    Selanjutnya, script tersebut bisa digu-

    nakan untuk menampilkan keseluruhan

    isi semua table di dalam database SQLite

    Anda. Dan, dengan script tersebut pulalah,

    kita menutup artikel ini. Sampai di sini du-

    lu perkenalan kita dengan database SQLite.

    Selamat mencoba!

    Noprianto ([email protected])

  • INFOLINUX 10/200570

    TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    LIDS

    Sebelumnya mari kita bahas terlebih dahulu langkah yang kita lakukan se-belumnya. Pada bagian pertama kita melakukan dua langkah. Langkah per tama

    adalah patching terhadap kernel dengan

    menggunakan LIDS dan mengaktifkan fung-

    si-fungsi keamanan pada saat konfi gurasi

    kernel. Lalu pada langkah kedua yang telah

    kita lakukan adalah menginstal lidstools,

    yaitu tools yang digunakan untuk melaku-

    kan administrasi terhadap lids serta menga-

    tur ACLs pada LIDS.

    Lidstools terdiri atas dua aplikasi, yaitu lids-

    adm dan lidsconf. Lidsadm digunakan untuk

    melakukan administrasi kemampuan (capa-

    bility) dari LIDS, sedangkan lidsconf diguna-

    kan untuk membuat ACLs pada sistem. File-

    fi le konfi gurasi berada pada direktori /etc/lids.

    Bagi Anda yang telah familiar dengan sin-

    taks iptables maka tidak akan kesulitan untuk

    membuat ACLs LIDS. Pada LIDS yang men-

    jadi subjek adalah semua program yang bisa

    berjalan pada Linux seperti binary fi le, shell

    script, sedangkan yang menjadi objek adalah

    apa saja yang ingin diakses oleh subjek ter-

    masuk fi le, direktori, capability, dan lainnya.

    3. Konfigurasi ACLs LIDSBerikut contoh penulisan sintaks dari lid-

    adm dan lidsconf.

    Untuk perintah lidsadm:

    # lidsadm -[S|I] -- [+|-][LIDS_FLAG] [...]# lidsadm -h

    LIDS_FLAG pada perintah pertama

    merupakan capability yang dapat dilihat

    pada bagian Lampiran atau pada perintah

    kedua seperti di atas.

    Untuk perintah lidsconf:

    # lidsconf -A [-s subject] -o object [-d] [-t from-to] [-i level] -j ACTION

    Keterangan parameter dari perintah di

    atas dapat dilihat dengan menjalankan pe-

    rintah berikut ini:

    # lidsconf -h

    Baiklah, selanjutnya kita akan melaku-

    kan konfi gurasi dasar untuk ACLs. Ketik-

    kan perintah di bawah ini langsung pada

    shell atau masukkan ke dalam sebuah fi le

    script.

    /sbin/lidsconf -A -o /sbin -j READONLY/sbin/lidsconf -A -o /bin -j READONLY/sbin/lidsconf -A -o /usr -j READONLY/sbin/lidsconf -A -o /usr/local -j READONLY/sbin/lidsconf -A -o /lib -j READONLY/sbin/lidsconf -A -o /opt -j READONLY/sbin/lidsconf -A -o /etc -j READONLY/sbin/lidsconf -A -o /usr/local/etc -j READONLY/sbin/lidsconf -A -o /etc/shadow -j DENY/sbin/lidsconf -A -o /etc/lilo.conf -j DENY

    /sbin/lidsconf -A -s /bin/login -o /etc/shadow -j READONLY/sbin/lidsconf -A -s /usr/bin/vlock -o /etc/shadow -j READONLY/sbin/lidsconf -A -s /bin/su -o /etc/shadow -j READONLY/sbin/lidsconf -A -s /bin/su -o CAP_SETUID -j GRANT/sbin/lidsconf -A -s /bin/su -o CAP_SETGID -j GRANT/sbin/lidsconf -A -o /boot -j READONLY/sbin/lidsconf -A -o /root -j READONLY/sbin/lidsconf -A -s /bin/bash-o /root/.bash_history -j WRITE/sbin/lidsconf -A -o /var/log -j APPEND/sbin/lidsconf -A -s /bin/login -o /var/log/wtmp -j WRITE/sbin/lidsconf -A -s /bin/login -o /var/log/lastlog -j WRITE/sbin/lidsconf -A -s /sbin/init -o /var/log/wtmp -j WRITE/sbin/lidsconf -A -s /sbin/init -o /var/log/lastlog -j WRITE/sbin/lidsconf -A -s /sbin/halt -o /var/log/wtmp -j WRITE/sbin/lidsconf -A -s /sbin/halt -o /var/log/lastlog -j WRITE/sbin/lidsconf -A -s /etc/rc.d/

    Mengamankan Server Linux dengan LIDSBagian 2 dari 2 Artikel

    Jika Anda tidak menemui kendala mengikuti artikel bagian satu, Anda akan berada pada shell dengan kernel yang baru. Bagian dua ini mengonfigurasikan ACLs LIDS pada sistem, yang menentukan dalam melindungi sistem Anda.

  • INFOLINUX 10/2005 71

    TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    LIDS

    rc.sysinit \ -o /var/log/wtmp -i 1 -j WRITE/sbin/lidsconf -A -s /etc/rc.d/rc.sysinit \ -o /var/log/lastlog -i 1 -j WRITE/sbin/lidsconf -A -s /sbin/hwclock -o /etc/adjtime -j WRITE/sbin/lidsconf -A -s /sbin/init -o CAP_INIT_KILL -j GRANT/sbin/lidsconf -A -s /sbin/init -o CAP_KILL -j GRANT/sbin/lidsconf -A -s /etc/rc.d/init.d/halt \ -o CAP_INIT_KILL -i 1 -j GRANT/sbin/lidsconf -A -s /etc/rc.d/init.d/halt \ -o CAP_KILL -i 1 -j GRANT/sbin/lidsconf -A -s /etc/rc.d/init.d/halt \ -o CAP_NET_ADMIN -i 1 -j GRANT/sbin/lidsconf -A -s /etc/rc.d/init.d/halt \ -o CAP_SYS_ADMIN -i 1 -j GRANT/sbin/lidsconf -A -s /sbin/update -o CAP_SYS_ADMIN -j GRANT

    Setelah ACLs dasar tersebut telah dibuat

    selanjutnya kita lakukan pengetesan terha-

    dap sistem yang telah dilindungi oleh LIDS,

    dengan cara menonaktifkan capabilty

    dari ACL_DISCOVERY dengan perintah

    berikut:

    #lidsadm -S -- -ACL_DISCOVERY

    Masukkan password, lalu dengan meng-

    gunakan account root, cobalah untuk mem-

    buat sebuah fi le kosong pada direktori home

    root.

    Sampai di sini kita telah mengonfi gu-

    rasikan LIDS untuk kebutuhan dasar sistem.

    ACLs tersebut dapat ditambahkan sesuai ke-

    butuhan dengan sintaks yang sama, namun

    menggunakan paramater yang berbeda se-

    suai kebutuhan.

    4. KesimpulanAccount root pada sistem operasi *NIX

    dan variannya ternyata memiliki masalah

    yang sangat besar. Dengan kemampuan-

    nya untuk melakukan apa saja terhadap

    sistem, menjadi target yang banyak dicari

    oleh para intruder. Untuk itu, diperlukan

    sebuah aturan yang dapat membatasi root.

    Sehingga, sekalipun intruder mendapatkan

    account root terhadap sistem, ia tidak dapat

    melakukan apapun.

    LIDS (Linux Intrusion Detection Sys-

    tem) merupakan patch keamanan pada ker-

    nel Linux, yang memiliki kemampuan un-

    tuk melindungi sistem, bahkan dari account

    root sekalipun.

    Namun LIDS bukanlah segalanya. Per-

    lindungan terhadap sistem tidaklah cukup

    dengan hanya melakukan patch terhadap

    kernel, sebab keamanan adalah sebuah

    proses. Tidak ada sistem di dunia ini yang

    100% aman. Selama sistem itu dibuat oleh

    manusia masih banyak cara untuk menyu-

    supinya sekali pun kemungkinan itu sangat

    kecil. Untuk itu, menjaga keamanan sebuah

    sistem bukanlah bergantung pada sebuah

    patch, tools, dan lainnya, tetapi bergan-

    tung pada user yang menggunakan sistem

    tersebut. Pepatah terkenal menyatakan,

    Its not about the gun, but the man behind

    the gun.

    Irvan ([email protected])

    ### 0: In a system with the _POSIX_CHOWN_RESTRICTED option defined, this overrides the restriction### 0: of changing file ownership and group ownership.#+0:CAP_CHOWN

    ### 1: Override all DAC access, including ACL execute access if _POSIX_ACL is defined. Excluding### 1: DAC access covered by CAP_LINUX_IMMUTABLE.#+1:CAP_DAC_OVERRIDE

    ### 2: Overrides all DAC restrictions regarding read and search on files and directories, including### 2: ACL restrictions if _POSIX_ACL is defined. Excluding DAC access covered by### 2: CAP_LINUX_IMMUTABLE.#+2:CAP_DAC_READ_SEARCH

    ### 3: Overrides all restrictions about allowed operations on files, where file owner ID must be equal### 3: to the user ID, except where CAP_FSETID is applicable. It doesnt override MAC and DAC

    ### 3: restrictions.#+3:CAP_FOWNER

    ### 4: Overrides the following restrictions that the effective user ID shall match the file owner ID### 4: when setting the S_ISUID and S_ISGID bits on that file; that the effective group ID (or one of### 4: the supplementary group IDs) shall match the file owner ID when setting the S_ISGID bit on### 4: that file; that the S_ISUID and S_ISGID bits are cleared on successful return from chown(2)### 4: (not implemented).#+4:CAP_FSETID

    ### 5: Overrides the restriction that the real or effective user ID of a process sending a signal must### 5: match the real or effective user ID of the process receiving the signal.#+5:CAP_KILL

    ### 6: - Allows setgid(2)

    LIDS CAPABILITY

  • INFOLINUX 10/200572

    TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial

    www.infolinux.web.id

    LIDS

    LIDS CAPABILITY (Sambungan)manipulation### 6: - Allows setgroups(2)### 6: - Allows forged gids on socket credentials passing.#+6:CAP_SETGID

    ### 7: - Allows set*uid(2) manipulation (including fsuid).### 7: - Allows forged pids on socket credentials passing.#+7:CAP_SETUID

    ### 8: Transfer any capability in your permitted set to any pid, remove any capability in your### 8: permitted set from any pid.#-8:CAP_SETPCAP

    ### 9: Allow modification of S_IMMUTABLE and S_APPEND file attributes.#+9:CAP_LINUX_IMMUTABLE

    ### 10: Allows binding to TCP/UDP sockets below 1024.+10:CAP_NET_BIND_SERVICE

    ### 11: Allow broadcasting, listen to multicast.+11:CAP_NET_BROADCAST

    ### 12: - Allow interface configuration### 12: - Allow administration of IP firewall, masquerading and accounting### 12: - Allow setting debug option on sockets### 12: - Allow modification of routing tables### 12: - Allow setting arbitrary process / process group ownership on sockets### 12: - Allow binding to any address for transparent proxying### 12: - Allow setting TOS

    (type of service)### 12: - Allow setting promiscuous mode### 12: - Allow clearing driver statistics### 12: - Allow multicasting### 12: - Allow read/write of device-specific registers+12:CAP_NET_ADMIN

    ### 13: - Allow use of RAW sockets### 13: - Allow use of PACKET sockets+13:CAP_NET_RAW

    ### 14: - Allow locking of shared memory segments### 14: - Allow mlock and mlockall (which doesnt really have anything to do with IPC)+14:CAP_IPC_LOCK

    ### 15: Override IPC owner