05 November 2006

Membuat Local Repository


Debian Sarge dikemas dalam 14 CD, jauh lebih banyak dibandingkan distro linux yang lain. Berisi lebih dari 14000 aplikasi. Jauh membengkak dari yang sebelumnya 7 CD untuk Debian Woody. Sebenarnya, untuk menginstall sistem dasar cukup menggunakan CD pertama atau CD Netinstall. Sisanya, debian akan mendownload paket-paket yang dibutuhkan. Bagi yang memiliki akses internet cepat, bukanlah masalah. Namun, bagi pengguna yang tidak memiliki akses internet, keempat belas CD tersebut sangat membantu.

Saat menginstall debian, semua CD akan discan , agar sistem mengetahui CD mana yang harus dibuka untuk menginstall suatu aplikasi. Misalkan anda ingin menginstall Apache, sistem akan meminta anda untuk memasukkan CD ke-1, 5, dan 7. Semakin sering anda menginstall, semakin sering anda bolak-balik memasukkan CD. Jelas ini tidak praktis. Berbeda dengan netinstall, anda tinggal menunggu hingga semua paket terdownload. Sistem secara otomatis menginstall dan selesai.

Local repository, sebenarnya memanfaatkan CD-CD yang sudah ada, dibuat menjadi semacam repository di internet, yang bisa diakses secara LAN. Ada 2 hal penting supaya local repository dapat bekerja:

· Struktur direktori

· File Packages.gz dan Release

Agar lebih jelas, kita bandingkan struktur direktori antara salah satu mirror di internet dengan local repository yang akan dibuat.


Gb 1. Struktur direktori pada mirror debian.indika.net.id

Gb 2. Struktur direktori pada local repository

Paket-paket yang ada di dalam CD, termasuk dalam release Sarge. Terbagi dalam 2 kelompok, contrib dan main. Kita cukup membuat struktur direktori berdasarkan kondisi tersebut, sehingga direktori yang tidak terpakai bisa dihilangkan (Gb 2).

1. Http Server

Install apache

# apt-get install apache2

Repository akan diletakkan dibawah direktori /var/www. Buat struktur direktori seperti pada gambar diatas.

# cd /var/www/

# mkdir debian

# mkdir debian/{dists,pool}

# mkdir debian/dists/sarge

# mkdir debian/dists/sarge/{contrib,main}

# mkdir debian/dists/sarge/contrib/binary-i386

# mkdir debian/dists/sarge/main/binary-i386

# mkdir debian/pool/{contrib,main}

Copykan semua paket debian yang ada di CD ke direktori /var/www/debian/pool.

# mount /media/cdrom

# cd /media/cdrom/pool/

# cp –r * /var/www/debian/pool/

# cd /

# umount /media/cdrom

Masukkan CD ke-2, mount dan copykan hingga CD terakhir. Anda bisa menambah atau mengurangi paket yang ada di dalam repository. Yang diperlukan hanyalah penyusaian isi lokal repositori dengan file Packages.gz. Tanpa kehadiran file Packages.gz dan Release, repository tidak akan bekerja. Packages.gz, berisi data semua paket yang berada dalam repositori.

untuk bagian contrib:

# cd /var/www/debian/

# dpkg-scanpackages pool/contrib/ /dev/null | gzip > Packages.gz

# mv Packages.gz dists/sarge/contrib/binary-i386/

untuk bagian main:

# cd /var/www/debian

# dpkg-scanpackages pool/main/ /dev/null |gzip > Packages.gz

# mv Packages.gz dists/sarge/main/binary-i386/

File Release berisi informasi arsitektur paket debian. Inilah isi file Release untuk bagian contrib. Jika Release berada pada bagian main, maka entri Component akan tertulis main.

Gb 3. Isi file Release

Kita cukup mengcopykan file Release yang ada di CD ke repository

# mount /mnt/cdrom

# cd /mnt/cdrom/dists/sarge/contrib/binary-i386/

# cp Release /var/www/debian/dists/sarge/contrib/binary-i386/

# cp Release /var/www/debian/dists/sarge/main/binary-i386/

Local repository telah siap

1. FTP Server

Install proftpd

# apt-get install proftpd

Jangan lupa untuk mengaktifkan user anonymous, agar client tidak perlu memasukkan username saat menggunakan local repository. Hilangkan tanda “#” di awal baris file proftpd.conf

# nano /etc/proftpd.conf

# A basic anonymous configuration, no upload directories.

#

# User ftp

# Group nogroup

# # We want clients to be able to login with "anonymous" as well as "ftp"

# UserAlias anonymous ftp

# # Cosmetic changes, all files belongs to ftp user

# DirFakeUser on ftp

# DirFakeGroup on ftp

#

# RequireValidShell off

#

# # Limit the maximum number of anonymous logins

# MaxClients 10

#

# # We want 'welcome.msg' displayed at login, and '.message' displayed

# # in each newly chdired directory.

# DisplayLogin welcome.msg

# DisplayFirstChdir .message

#

# # Limit WRITE everywhere in the anonymous chroot

#

#

# DenyAll

#

#

#

# # Uncomment this if you're brave.

# #

# # # Umask 022 is a good standard umask to prevent new files and dirs

# # # (second parm) from being group and world writable.

# # Umask 022 022

# #

# # DenyAll

# #

# #

# # AllowAll

# #

# #

#

#

Restart proftpd,

# /etc/init.d/proftpd restart

Tidak seperti http server, local repository diletakkan pada direktori /home/ftp. Jadi, saat anda mengerjakan, tidak lagi berada di direktori /var/www namun di /home/ftp. Struktur direktori, Packages.gz, dan Release semua sama dengan http server.

# cd /home/ftp/

# mkdir debian

# mkdir debian/{dists,pool}

# mkdir debian/dists/sarge

# mkdir debian/dists/sarge/{contrib,main}

# mkdir debian/dists/sarge/contrib/binary-i386

# mkdir debian/dists/sarge/main/binary-i386

# mkdir debian/pool/{contrib,main}

Mengcopy semua paket debian yang ke direktori /home/ftp/debian/pool.

# mount /media/cdrom

# cd /media/cdrom/pool/

# cp –r * /home/ftp/debian/pool/

# cd /

# umount /media/cdrom

Menambahkan file Packages.gz dan Release ke dalam repository.

# cd /home/ftp/debian/

# dpkg-scanpackages pool/contrib/ /dev/null | gzip > Packages.gz

# mv Packages.gz dists/sarge/contrib/binary-i386/

# cd /home/ftp/debian

# dpkg-scanpackages pool/main/ /dev/null |gzip > Packages.gz

# mv Packages.gz dists/sarge/main/binary-i386/

Mengcopy file Release ke repository

# mount /mnt/cdrom

# cd /mnt/cdrom/dists/sarge/contrib/binary-i386/

# cp Release /home/ftp/debian/dists/sarge/contrib/binary-i386/

# cp Release /home/ftp/debian/dists/sarge/main/binary-i386/

2. Konfigurasi Client

Cara menggunakan local repository sangatlah mudah. Edit file /etc/apt/sources.list. Tambahkan entri seperti berikut, sesuai dengan tipe local repository yang dibuat.

  • http server

deb http://ip_lokal_repositori/debian sarge contrib main

  • ftp server

deb ftp://ip_lokal_repositori/debian sarge contrib main

# nano /etc/apt/sources.list



Gb 4. Setting repository pada client

Lakukan update,

# apt-get update


Gb 5. Updating apt

Anda telah siap menginstall aplikasi, langsung dari repository.

31 May 2006

My Stuff.....edisi 4

Kali keempat saya harus mengupdate lagi rincian hardware komputer di rumah. Ternyata, dari rencana yang sebelumnya saya buat, beberapa justru terealisasi sebelum waktunya :). Syukurlah, kalau ternyata bisa mengejar jadwal yang seharusnya.

Computer 1
Compaq Deskpro EN

  • Intel 815
  • Pentium III 650 Mhz
  • 256 SDRAM 100 Mhz
  • ATI Radeon 7500 AGP with DVI-I
  • 40 GB (Seagate)
  • Sound Blaster Live 5.1 Digital Entertainment
  • Intel 100 VM Onboard

Computer 2

Compaq Deskpro EP

  • Intel 440BX
  • Pentium II 450 Mhz
  • 196 MB SDRAM 133 Mhz
  • Matrox Millenium II 8 MB PCI
  • 6GB (Fujitsu Siemens)
  • SoundBlaster AWE 32 PnP
  • 3com 3c905B-TX-M


Cadangan :

Matrox G400 16 MB SGRAM

3com 3c905B-TX-M (3 bh)
3com 3c905B-TX-NM

Harddisk 6 GB (Fujitsu Siemens)

Operating System

  • Windwos XP Professional 2002
  • RedHat 9.0 Shrike
  • Debian Sarge 3.1r0a

13 March 2006

Mendownload Linux Debian dengan Jigdo

Beberapa bulan yang lalu, saya beralih menggunakan debian, dari yang sebelumnya linux RedHat. Dimulailah tugas berat mendownload file-file iso. Tiga file iso sudah terdownload. Ketika dicek dengan md5sum, tak satupun file cocok. Dengan kata lain, file iso tersebut tidak valid. Alangkah kecewanya.

Kita terbiasa mendownload menggunakan http atau ftp. Nah, disinilah kelemahannya. Http dan ftp kurang cocok untuk mendownload file besar yang terdiri dari file-file kecil. Permasalahannya, http/ftp tidak memeriksa checksum (validitas data) setiap kali mulai mendownload maupun ketika me-resume download. Koneksi down, putus, semakin memperbesar kemungkinan file tersebut tidak valid.

Debian menawarkan alternatif untuk mendapatkan file iso, yaitu jigdo (Jigsaw Download). Jigdo selalu memeriksa checksum file yang didownload. Bagi server http/ftp, jigdo lebih ringan dibandingkan dengan metode biasa.


1. Cara Kerja Jigdo

Ketika jigdo dijalankan, di dalam direktori, terbentuk 6 file dan 1 subdirektori.
  • sarge-i386-1.iso.list
  • sarge-i386-1.iso.tmp
  • sarge-i386-1.jigdo
  • sarge-i386-1.jigdo.unpacked
  • sarge-i386-1.template
  • jigdo-file-cache.db
  • sarge-i386-1.iso.tmpdir/
Wget adalah jantung dari jigdo. Jigdo menggunakan wget untuk mendownload file. Download dilakukan per 10 paket, hingga semua paket selesai didownload.



Jigdo mengambil informasi 10 file pertama dari sarge*.jigdo (nama-nama file) dan sarge*.template (daftar md5sum). Wget mendownload file-file tersebut sambil dicocokkan validitasnya. File yang terdownload berada di direktori sarge*.iso.tmpdir/. Setelah selesai, 10 file tersebut ditulis dalam image sementara sarge*.iso.tmp. Begitu seterusnya hingga semua file terdownload. File image sarge*.iso.tmp yang lengkap, secara otomatis berubah menjadi sarge*.iso.


2. Mendownload File-file ISO dengan Jigdo

Install jigdo.
# apt-get install jigdo-lite

Ambil file sarge*.jigdo dan sarge*.template dari http/ftp server. Jalankan jigdo,

$ jigdo-lite sarge*.jigdo

Saat jigdo menanyakan darimana file akan didownload, arahkan ke server http/ftp terdekat. Jigdo sudah mulai bekerja, tunggulah hingga file iso terbentuk


3. Catatan

Jigdo juga tersedia dalam bentuk aplikasi GUI, dan installer dalam berbagai platform, termasuk windows.

Saat menggunakannya dalam lingkungan windows, usahakan sedekat mungkin dengan direktori teratas (C:\ atau D:\). File-file debian , kadang memiliki nama yang panjang, sedangkan windows membatasinya hanya untuk 255 karakter (full path). Misal, C:\debian-cd\xchat-common_2.6.1-1_all.deb, dihitung mulai dari huruf 'd' untuk debian.

Sayangnya, jigdo tidak secara luas digunakan di semua distribusi linux. Hanya debian saja yang memakainya. Varian debian (ubuntu), juga tersedia dalam bentuk jigdo, namun tidak untuk varian debian yang lain.