[Curhat] Membuat Repository Lokal BlankOn

Beberapa bulan yang lalu saya sempat membeli 8 DVD repository BlankOn Ombilin dari http://toko.baliwae.com tepatnya pada bulan Juli lalu. Itu memang toko maniak Linux, dan saya membelinya secara online. Merupakan pengalaman pertama saya membeli barang secara online. Sebenarnya saya juga membeli DVD Wikipedia Indonesia (1 DVD, 8GB Dual Layer) pada saat yang bersamaan.

Setelah repository berada di tangan, ternata saya tidak dapat langsung memakainya karena CD/DVD ROM saya tidak dapat berfungsi sebagaimana mestinya. Tak lama setelah itu saya mendapatkan CD/DVD ROM yang baru dari bos. Saya berniat meng-copy-nya ke HDD, tetapi terkendala space HDD yang tak lagi mencukupi.

Melalui IRC di irc.freenode.net channel #blankon, pak somat memandu saya untuk menggunakan perintah apt-cdrom. Caranya adalah dengan mengetikkan perintah berikut di terminal :

$ apt-cdrom add

Sebelumnya masukkan DVD repository pertama ke dalam CD/DVD ROM, tunggu hingga komputer berhasil mengindeks DVD kemudian beri nama misalnya ‘repo1’ (saya sarankan menggunakan nama yang berurutan, sesuai urutan DVD repositorynya). Lanjutkan langkah tersebut pada DVD ke-2 dan seterusnya. Setelah semua DVD terindeks oleh komputer, sekarang tinggal memakainya. Caranya sama seperti biasa ketika kita menginstall aplikasi misalnya kita mau menginstall aplikasi melalui terminal ‘$ sudo apt-get install nama_aplikasi‘ lalu terminal akan meminta DVD repo yang di minta. Perhatikan namanya, misalnya yang diminta adalah ‘repo7’ maka masukkan DVD ke-7 dari repository yang kita miliki. Dan begitu seterusnya.

Kelemahan menggunakan apt-cdrom adalah kita akan sangat sering mengeluar-masukkan DVD ke dalam DVD ROM, dan belum tentu berkas yang ada di DVD bisa terbaca oleh komputer. Seperti pengalaman saya, komputer tak dapat membaca paket tertentu dari dalam DVD padalah setelah saya cek paket tersebut ada di dalam DVD.

Setelah itu, 8 DVD repository saya nganggur selama sekian lama. Hingga setelah lebaran saya ‘dipindahtugaskan’ oleh bos ke tempat baru. Dengan HDD 1Tb, saya merasa ‘bebas’ untuk mengumpulkan banyak ISO dan membuat repository lokal dari DVD (pikirku). Hardisk 1000GB dengan partisi 90GB untuk sistem terinstall wendus ekspi (XP), dan selebihnya adalah partisi multimedia. Merasa tak nyaman dengan sistem operasi yang terpasang, saya berniat membuat dualbooting dengan BlankOn Pattimura saya, tetapi sialnya DVD ROM yang tersedia tidak dapa diandalkan. Begitu juga dengan DVD ROM portablenya.

Pun bermasalah pada hardware lainnya, yaitu Motheboard (& CPU) yang sudah tua. Sebenarnya bukan ‘sudah tua’-nya yang jadi masalah, tetapi karena pada saat saya sedang membersihkan lantai, menggeser meja, dan CPU ‘tua’ itu roboh. Alhasil kipas processor di Motherboard lepas dan tidak mau terpasang lagi. Jadi saya saya pilih salah satu CPU client yang cukup ‘mumpuni’ untuk saya gunakan sebagai gantinya. Lumayan, Motherboard BIOSTAR G3I-M7 dengan processor Intel Dual-Core CPU @ 2.50 GHz, dan memori 1GB DDR2.

Seperti yang saya sebutkan sebelumnya, saya hendak membuat dual komputer saya ekspi dan Pattimura Pitu. Tapi sayangnya (atau ‘untungnya’) saya selalu gagal menginstall ekspi. Hasilnya selalu BS alias blue screen (mungkin ‘bad stock’ kali ya?). Namun tampaknya bukan di cd ekspinya yang rusak, karena pada saat saya mencoba menginstall BlankOn pitu saya juga gagal. Komputer tidak dapat membaca data yang ada di DVD dengan benar. Dan saya rasa DVD portablenya ‘tidak konsistem’ dalam membaca data yang ada di DVD. Dan satu-satunya jalan adalah menggunakan install BlankOn Sajadah 6.1 Ombilin LiveUSB yang sebelumnya telah terinstall di memori saya. Karena untungnya CPU yang satu ini memungkinkan untuk menggunakan LiveUSB, sedangkan CPU yang ‘jadul’ tidak.

Dengan HDD 1TB, rasanya memang lega. Bisa ‘untuk apa aja’ dengan komposisi sebagai berikut :

Perangkat Boot      Awal          Akhir    Blocks   Id  System
/dev/sdb1   *           1        2804    22523098+  83  Linux # mount point '/'
/dev/sdb2            2805       12191    75401077+  83  Linux # mount point '/home'
/dev/sdb3           12749      121600   874353659+   f  W95 Ext'd (LBA)
/dev/sdb4           12192       12748     4474102+  82  Linux swap / Solaris
/dev/sdb5           12749      121600   874353658+   7  HPFS/NTFS

Gila apa enggak tuh, dengan memori 1Gb, saya paksain pake swap 4GB. Saya sempat ngakak sendiri melihatnya (memangnya lucu?). Yap, saya install dengan single booting biar lebih fokus ke BlankOn saya. Kemudian saya menikmati Ombilin yang saya miliki, install aplikasi seenaknya, sepuasnya termasuk apache2, proftpd, phpmyadmin, Openoffice bawaan Ombilin saya upgrade ke LibreOffice 3.4.2. Printer Epson Stylus Photo R230 langsung kedetek, WiFi TP-LINK TL-WN321G juga langsung kedetek (karena di warnet saya koneksi antarclient dan server billing menggunakan WiFi, saat saya tanya ke bos alasannya katanya ”Terlalu semrawut kalau pake kabel” dalam hati saya bilang ”You are the bos” ha ha ha….)

Dan DVD repository saya masih menganggur juga. Komputer server tidak memiliki CD/DVD ROM, tapi untungnya komputer client malah ada CD/DVD ROMnya. Acer Aspire One yang masih tersegel tergeletak di client, tidak boleh dibongkar lantaran segelnya. Saya pun sempat kesulitan melakukan cloning, namun setelah memutar otak beberapa kali saya menemukan cara yang ‘pas’ untuk melakukan cloning dengan clonezilla. Yaitu dengan mode part_to_image di komputer yang akan dicloning (source) dan image_to_part di komputer yang akan dicloningi (destination). Karena ukuran file image untuk cloning sebesar 4,5Gb sedangkan saya tidak memiliki Flashdisk yang berukuran sebesar itu maka saya file/berkas-berkas image dari komputer source tersebut saya pecah menjadi beberapa bagian, kemudian digabungkan kembali di komputer destination. Hal ini memungkinkan karena ada CD/DVD ROMnya beserta LiveCD Clonezilla.

“Kembali ke Laptop” Di Ombilin saya, aplikasi proftpd telah aktif dan dapat berjalan seperti yang saya harapkan. Untuk panduan instalasi dan kostumisasi proftpd, silahkan hubungi guru saya Mbah Gugel atau Dokumentasi proftpd. Langkah selanjutnya yang saya lakukan adalah mencopi seluruh isi 8 DVD repository ke komputer salah satu client, kemudian mengirimnya ke server melalui Filezilla. Sekarang isi dari 8 DVD repository yang saya miliki telah berada di komputer server:

samsul@operator:/media/multimedia/repo$ ls -l
total 0
drwxrwxrwx 1 root root 0 2011-09-10 17:43 repo1
drwxrwxrwx 1 root root 0 2011-09-10 19:05 repo2
drwxrwxrwx 1 root root 0 2011-09-10 20:17 repo3
drwxrwxrwx 1 root root 0 2011-09-10 21:50 repo4
drwxrwxrwx 1 root root 0 2011-09-10 22:20 repo5
drwxrwxrwx 1 root root 0 2011-09-10 22:50 repo6
drwxrwxrwx 1 root root 0 2011-09-10 23:20 repo7
drwxrwxrwx 1 root root 0 2011-09-10 23:53 repo8

Cara mudahnya, saya tak perlu mencopy semua file tersebut ke direktori ‘/var/www/’-nya apache. Saya hanya perlu membuat symbolik link direktori ‘/media/multimedia/repo/’ ke ‘/var/www/’. Yang saya gunakan adalah nautilus, yaitu tekan Alt+F2 di keyboard ketikkan “gksu nautilus” tanpa tanda petik. Ketikkan password user, lalu masuk ke direktori ‘/media/multimedia/’ klik kanan pada folder ‘repo’ pilih ‘buat taut’ atau ‘create link’ dan masukkan link tersebut ke direktori ‘/var/www/’. Atau dengan cara yang lebih romantis, masuk ke terminal dan ketikkan perintah berikut :

$ cd /var/www                                       # untuk masuk ke direktory /var/www
$ sudo ln -s /media/multimedia/repo  # untuk membuat tautan ke /media/multimedia/repo

Perintah tersebut akan membuat symbolic link (tautan simbolis alias shortcut) direktori ‘/media/multimedia/repo/’ di direktori /var/www/’. Ini yang saya sukai dari apache, karena dia bisa mengikuti symbolic link. Ya, meski bukan apache saja yang bisa begini. Agar sesuai dengan yang ada dalam komputer saya, rubah nama tautan simbolis tersebut dengan nama ‘Ombilin’. Emm….. ini tidak harus, maksud saya hanya agar saya tidak bingung melanjutkan cerita ini karena saya telah terlanjut merubah nama symbolic link yang ada di komputer saya tersebut.

Oh, jika ternyata komputer belum terinstall apache, maka ketikkan perintah berikut di terminal :

$ sudo apt-get install apache2

Atau bisa juga menggunakan synaptic. Untuk mengujinya, ketikkan ‘http://localhost/’ (tanpa tanda kutip), jika muncul tulisn “It works” berarti instalasi berhasil. Dan coba ketikkan ‘http://localhost/Ombilin/’ jika muncul daftar direktori seperti yang ada di ‘/media/multimedia/repo/’ berarti berhasil. Maksud saya berhasil membuat tautan simbolik pada direktori apache, bukan berhasil membuat repositori lokal karena belum diuji. Seperti gambar berikut :

repositori lokal dengan apache

Kemudian saatnya menguji apakah repositori lokal yang terbentuk dapat berfungsi. Berikut ini adalah berkas /etc/apt/sources.list yang ada di komputer saya (tidak termasuk penomoran di dalamnya) :

[0]
# deb http://arsip.blankonlinux.or.id/blankon ombilin main restricted extras extras-restricted universe
# deb http://arsip.blankonlinux.or.id/blankon ombilin-updates main restricted extras extras-restricted universe
# deb http://arsip.blankonlinux.or.id/blankon ombilin-security main restricted extras extras-restricted universe
## Depôt MultiSystem
# deb http://liveusb.info/multisystem/depot all main

[1]
# deb file:///media/multimedia/repo/repo1 ombilin main restricted extras extras-restricted
# deb file:///media/multimedia/repo/repo2 ombilin main restricted extras extras-restricted
# deb file:///media/multimedia/repo/repo3 ombilin main restricted extras extras-restricted
# deb file:///media/multimedia/repo/repo4 ombilin main restricted extras extras-restricted
# deb file:///media/multimedia/repo/repo5 ombilin main restricted extras extras-restricted
# deb file:///media/multimedia/repo/repo6 ombilin main restricted extras extras-restricted
# deb file:///media/multimedia/repo/repo7 ombilin main restricted extras extras-restricted
# deb file:///media/multimedia/repo/repo8 ombilin main restricted extras extras-restricted

[2]
# deb http://192.168.2.180/Ombilin/repo1/ ombilin main restricted extras extras-restricted
# deb http://192.168.2.180/Ombilin/repo2/ ombilin main restricted extras extras-restricted
# deb http://192.168.2.180/Ombilin/repo3/ ombilin main restricted extras extras-restricted
# deb http://192.168.2.180/Ombilin/repo4/ ombilin main restricted extras extras-restricted
# deb http://192.168.2.180/Ombilin/repo5/ ombilin main restricted extras extras-restricted
# deb http://192.168.2.180/Ombilin/repo6/ ombilin main restricted extras extras-restricted
# deb http://192.168.2.180/Ombilin/repo7/ ombilin main restricted extras extras-restricted
# deb http://192.168.2.180/Ombilin/repo8/ ombilin main restricted extras extras-restricted

[3]
deb http://192.168.2.180/offline ombilin main restricted extras extras-restricted

[0] Adalah repositori online dari BlankOn, dari server BlankOn. Emm… multisystem adalah yang sering saya gunakan untuk membuat MultiBoot LiveUSB Linux.

[1] Adalah repositori offline/lokal dari komputer. Hanya perlu menghilangkan tanda ‘#’ untuk menggunakannya. Yang perlu diperhatikan dalam mode ini adalah penulisan ‘file:///media/…….’ setelah tanda ‘:’ terdapat tiga tanga ‘/’. Sebelumnya saya menggunakan dua tanda ‘/’ dan hasilnya, selalu ada peringatan kesalahan penulisan lokasi direktori. Jika menggunakan yang ini, maka apache tidak perlu diinstall/dijalankan. Emm…. ya, dijalankan pun tak masalah dan tidak akan mengganggu jalannya update.

[2] Adalah repositori lokal dengan menjalankan apache. Ini berguna untuk sharing repositori melalui jaringan lokal/LAN/WAN. ‘192.168.2.180’ adalah IP static mesin BlankOn saya. Untuk menggunakannya, saya hanya perlu menghilangkan tanda ‘#’-nya.

[3] Sebenarnya pada nomor [2] pembuatan repositori lokal saya telah berhasil. Namun saya masih merasa belum puas. Saya ingin agar delapan repositori tersebut menjadi satu. Saya mencoba bertanya pada teman saya, saudara saya, paman saya, dan mbah saya, yaitu mbah gugel. Saya menemukan banyak referensi (saya cantumkan di bawah). Lanjut di bawah ya ceritanya…

Dari semua referensi yang saya bara, dapat saya ambil kesimpulan bahwa jika kita ingin menggabungkan repository menjadi satu maka yang perlu kita gabungkan adalah direktori (folder) ‘pool’ pada masing-masing repository karena di sinilah letak paket-paket aplikasi berada. Setelah semua repositori berhasil dijadikan satu, kemudian download file indeks dari internet. Tetapi dari yang saya coba, hal ini tidak berjalan baik, karena ternyata berkas indeks yang saya download adalah untuk paket-paket baru yang memang ada di repositori online BlankOn. Saya pikir, ini hanya akan menipu komputer karena berkas indeks menggunakan yang terbaru tetapi paket-paket aplikasi yang tersedia adalah paket-paket lama. Maka akan sangat bijak jika membuat berkas indeks tersebut sendiri. Caranya? Silahkan simak cerita selanjutnya….

Yang perlu saya lakukan pertama adalah menentukan/membuat direktory baru untuk menyimpan repositori yang disatukan tersebut :

$ mkdir /media/multimedia/Ombilin  $ mkdir /media/multimedia/Ombilin/ombilin 

Kemudian dalam direktori ‘ombilin’ dibuat direktori baru, kurang lebih sebagai berikut gambaran struktur direktori yang saya buat :

samsul@operator:/media/multimedia/Ombilin/dists$ tree
.
`-- ombilin
    |-- extras
    |   `-- binary-i386
    |       `-- Packages.gz
    |-- extras-restricted
    |   `-- binary-i386
    |       `-- Packages.gz
    |-- main
    |   `-- binary-i386
    |       `-- Packages.gz
    `-- restricted
        `-- binary-i386
            `-- Packages.gz

9 directories, 4 files
samsul@operator:/media/multimedia/Ombilin/dists$ cd ..
samsul@operator:/media/multimedia/Ombilin$ cd ..
samsul@operator:/media/multimedia/Ombilin$ cd pool
samsul@operator:/media/multimedia/Ombilin/pool$ tree
.
`-- pool
    |-- extras
    |   `-- .................
    |-- extras-restricted
    |   `-- .................
    |-- main
    |   `-- .................
    `-- restricted
        `-- ................

Beberapa kali mencoba menggabungkan repository, akhirnya saya menemukan cara yang paling sederhana. Yaitu dengan membuat script yang paling sederhana pula. Simpan script berikut dengan ekstensi *.sh misalnya rsync.sh :

#! /bin/bash
rsync -avH /media/multimedia/repo/repo1/pool /media/multimedia/Ombilin/ ;
rsync -avH /media/multimedia/repo/repo2/pool /media/multimedia/Ombilin/ ;
rsync -avH /media/multimedia/repo/repo3/pool /media/multimedia/Ombilin/ ;
rsync -avH /media/multimedia/repo/repo4/pool /media/multimedia/Ombilin/ ;
rsync -avH /media/multimedia/repo/repo5/pool /media/multimedia/Ombilin/ ;
rsync -avH /media/multimedia/repo/repo6/pool /media/multimedia/Ombilin/ ;
rsync -avH /media/multimedia/repo/repo7/pool /media/multimedia/Ombilin/ ;
rsync -avH /media/multimedia/repo/repo8/pool /media/multimedia/Ombilin/ ;
exit 0

Beri hak akses eksekutabel agar dapat dieksekusi, kemudian jalankan script tersebut:

$ sudo chmod +x rsync.sh
$ ./rsync.sh

Menjalankan script tersebut juga dapat dengan dobel-klik, kemudian klik ‘jalankan’/’run’. Di komputer saya proses ini membutuhkan waktu beberapa jam, saya tak tau pasti. Pokoknya, malam hari dijalankan pagi harinya sudah selesai. Ngantuk mode on😀

Saya rasa, saya telah berhasil menggabungkan kedelapan repositori saya menjadi satu. Hal yang paling mudah untuk melihat apakah script yang saya buat berhasil menjalankan tugasnya adalah memerikasa direktori tujuan, terutama dari segi ukuran. Ukurannya tidak akan jauh berbeda dari aslinya, kalaupun ada selisihnya tak akan terlalu besar selisihnya. Dan saya berhasil, telah terbentuk direktori baru di ‘/media/multimedia/Ombilin/pool’ dengan ukuran 31,7GB.

Langkah selanjutnya adalah membuat berkas indeksnya. Sebelumnya persiapkan direktori-direktorinya seperti pohon direktori yang pertama di atas tanpa berkas ‘Packages.gz’ karena berkas itu yang akan dibuat. Berikut ini script yang paling sederhana yang dapat saya buat :

#! /bin/bash
dpkg-scanpackages pool/main /dev/null | gzip -9c > dists/ombilin/main/binary-i386/Packages.gz ;
dpkg-scanpackages pool/extras /dev/null | gzip -9c > dists/ombilin/extras/binary-i386/Packages.gz ;
dpkg-scanpackages pool/extras-restricted /dev/null | gzip -9c > dists/ombilin/extras-restricted/binary-i386/Packages.gz ;
dpkg-scanpackages pool/restricted /dev/null | gzip -9c > dists/ombilin/restricted/binary-i386/Packages.gz ;
exit 0

Simpan script tersebut dengan ekstensi *.sh misalnya ‘scanpackages.sh’ simpan dan letakkan di direktori ‘/media/multimedia/Ombilin’. Seperti sebelumnya, beri hak akses eksekutabel lalu eksekusi. Proses ini memakan waktu tidak lebih lama dari proses sebelumnya. Kurang lebih sekitar satu jam. Untuk memeriksa apakah script yang saya buat berhasil menjalankan tugasnya adalah memeriksa setiap direktori ‘binary-i386’, jika terdapat berkas ‘Packages.gz’ di masing-masing direktori tersebut berarti proses pembuatan berkas indeks ini berhasil sejauh ini.

Buat symbolic link ke direktori ‘/var/www/’ untuk ‘/media/multimedia/Ombilin’, dalam kasus ini symbolic link yang saya buat saya beri nama ‘offline’. Pada akhirnya pada berkas ‘/etc/apt/sources.list’ yang saya aktifkan (uncomment) hanya [3] :

deb http://192.168.2.180/offline ombilin main restricted extras extras-restricted

Saya ucapkan selamat kepada diri saya sendiri, kini telah dapat menikmati repository offline. Tinggal menjalankan perintah berikut di terminal :

$ sudo apt-get update && apt-get install nama_aplikasi

Demikian curhatan dari saya, dan karena sifatnya curhatan saya tidak membuatnya seperti sebuah tutorial pada umumnya. Mohon maaf, ceritanya ngelantur ke sana ke mari. Doyan, silahkan dimakan. Kalau enggak doyan, tak usah dimakan kecuali sebagai obat.

Alhamdulillah, cerita yang saya buat selama empat hari ini akhirnya selesai juga.

Referensi :

5 thoughts on “[Curhat] Membuat Repository Lokal BlankOn

  1. wah2 panjang amat kang caranya.. agak susah memang kalo dipraktekin sama nubitol kaya saya🙂, tapi aseli curhatannya mantabb banget.. bravo

  2. Wahh… Kang, mantap!!, repo gabungan online ama offlline,.. saya bener ge butuh banget..
    Makasih banyak…

Orang pintar pasti punya komentar___

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s