Instal paket di Ubuntu melalui Firefox

Firefox yang dipasang pada Ubuntu (dan BlankOn) sudah dilengkapi dengan sebuah pengaya bernama Ubufox (atau Blankfox pada BlankOn) yang digunakan khusus untuk keperluan Ubuntu (dan BlankOn). Salah satu fungsinya adalah melakukan instalasi paket!

Di Firefox, kita bisa mengatur aplikasi khusus yang akan menangani sebuah protokol yang kita tuliskan pada kotak isian alamat. Hal inilah yang dimanfaatkan oleh pengaya tersebut agar dapat membuat instalasi paket dapat dilakukan melalui Firefox.

Dengan menuliskan sebuah URL dengan protokol apt, maka kata yang disebut setelahnya akan dianggap sebagai sebuah nama paket yang mau diinstal dengan menggunakan synaptic. Contoh:

apt://minbar

Cobalah ketikkan URL di atas pada kotak isian alamat di Firefox pada Ubuntu atau BlankOn! Sebuah kotak dialog akan muncul dan menanyakan apakah Anda ingin menginstal paket minbar atau tidak. Jika Anda sudah menginstalnya, maka kotak dialog akan berisi pemberitahuan kalau Anda sudah pernah menginstalnya.

Hal ini juga yang dimanfaatkan oleh sebuah katalog online aplikasi di Ubuntu, yaitu appnr. Proses pencarian atau penemuan aplikasi bisa jadi bukan hal yang mudah. Bisa jadi masih banyak aplikasi-aplikasi menarik yang belum Anda temui di antara sekian ribu paket pada repositori Ubuntu. Oleh karena itu, situs katalog semacam ini hadir untuk membantu Anda.

Jika Anda mengklik tombol Install pada situs tersebut, maka Anda akan dialihkan ke sebuah URL baru dengan protokol apt. Jika Anda menggunakan pengaya Ubufox (atau Blankfox) yang sudah terpasang pada instalasi Firefox di Ubuntu (atau BlankOn), maka Synaptic akan dijalankan secara otomatis dan mencoba menginstal paket yang Anda pilih pada situs appnr tadi.

Mengunduh seluruh berkas dalam repositori Ubuntu

.. atau Debian .. atau BlankOn. Sama saja 🙂

Untuk menyalin sebuah repositori Debian (maupun turunannya) secara komplit, kita dapat menggunakan aplikasi rsync atau debmirror. Namun bagaimana jika kedua aplikasi tersebut tidak ada? Atau andai akses melalui rsync tidak diperkenankan?

Jawabannya adalah download saja dengan download manager kesukaan Anda!

Tentu saja download manager yang mampu membaca sebuah daftar berkas dalam bentuk URL dan mengunduh seluruh berkas yang terdaftar di sana. Saya biasa menggunakan wget, bagi Anda yang tukang download, pasti Anda tahu harus menggunakan apa 🙂

Namun, bagaimana cara mendapatkan daftar berkas tersebut? Mari kita pelajari caranya.

Dalam repositori Debian dan turunannya, terdapat sebuah berkas yang berperan sebagai daftar isi yang menyimpan seluruh informasi berkas/paket yang ada. Berkas ini bernama Packages dan Anda dapat menemui berkas ini dalam repositori pada direktori berikut.

http://server.repo/ubuntu/dists/[versi]/[komponen]/binary-[arsitektur]/Packages

Contohnya adalah

http://kambing.ui.edu/ubuntu/dists/intrepid/main/binary-i386/Packages

Ganti Packages menjadi Packages.gz kalau ingin mengunduh versi yang terkompresi dengan gzip.

Untuk mencari tahu versi, komponen, maupun arsitektur yang tersedia, buka saja direktori induknya. Nanti akan terlihat versi, komponen, dan arsitektur yang ada pada repositori tersebut. Misalnya untuk mencari tahu komponen yang ada pada Ubuntu Intrepid, Anda dapat membuka http://kambing.ui.edu/ubuntu/dists/intrepid dan melihat isinya. Ada empat buah subdirektori di saya, yaitu main, multiverse, restricted, dan universe.

Setelah mendapatkan berkas Packages, mari kita bongkar isinya untuk mendapatkan daftar berkas.

Berkas Packages adalah sebuah daftar isi paket yang ada dalam sebuah repositori. Setiap paket yang ada akan dituliskan deskripsinya di sana. Mulai dari nama paket, versi, ukuran berkas, lokasi berkas, sampai penjelasan (deskripsi) paket tertulis di sana. Kali ini, informasi yang kita butuhkan adalah lokasi berkas yang ditandai dengan Filename:

Setiap baris yang diawali dengan kata Filename: adalah informasi yang kita perlukan. Silakan gunakan fasilitas dalam teks editor yang Anda gunakan sehingga Anda dapat menghapus semua informasi/baris lain kecuali baris yang diawali dengan Filename:.

Jika sudah, Anda akan mendapatkan ratusan baris seperti contoh di bawah ini.

Filename: pool/main/a/abiword/abiword_2.6.4-4ubuntu4_i386.deb
Filename: pool/main/a/abiword/abiword-common_2.6.4-4ubuntu4_all.deb
...

Yang kita butuhkan adalah nama dan direktori berkas paket. Oleh karena itu, hapuslah kata Filename: pada awal baris dan sisakan nama berkas yang diawali oleh pool/.

Setelah itu, tambahkan alamat dasar repositori di depan nama direktori/berkas yang ada. Dua baris pada contoh di atas akan menjadi seperti berikut.

http://kambing.ui.edu/ubuntu/pool/main/a/abiword/abiword_2.6.4-4ubuntu4_i386.deb
http://kambing.ui.edu/ubuntu/pool/main/a/abiword/abiword-common_2.6.4-4ubuntu4_all.deb

Silakan gunakan repositori kesayangan Anda.

Selanjutnya? siapkan waktu luang dan pita Internet yang lapang untuk mengundung seluruh berkas pada repositori!

Oh iya, jangan lupa untuk mengunduh berkas dari seluruh komponen yang ada sehingga Anda dapat mendapatkan repositori yang lengkap. Untuk Ubuntu, Anda harus mengunduh berkas pada komponen main, universe, multiverse, dan restricted.

Oh iya lagi, cara yang ditulis ini hanya ditujukan jika Anda ingin mengunduh atau setidaknya mendapatkan seluruh nama berkas dalam sebuah repositori. Tidak ditujukan untuk membuat repositori lokal.

Jika Anda ingin membuat repositori lokal, aplikasi download manager yang Anda gunakan harus mampu merekonstruksi ulang direktori-direktori yang ada. Sehingga setiap berkas akan diletakkan pada direktorinya masing-masing sesuai dengan kondisi yang ada pada repositori. Selain itu, unduh juga berkas Packages dan letakkan pada direktori sesuai dengan yang ada pada repositori.

Jika aplikasi download manager Anda dapat melakukannya, maka selamat Anda telah membuat repositori lokal secara manual tanpa bantuan aplikasi khusus!

PS: Saya pernah membuat skrip kecil yang melakukan seluruh hal di atas secara otomatis. Silakan cek di arsip GitHub saya.

Membuat repositori lokal Ubuntu dari DVD Repository

Ada banyak cara membuat repositori lokal dari DVD, coba saja cari di google. Salah dua di antaranya dapat dibaca di wiki ubuntu-id dan wiki telkomspeedy. Saya cuma mau nambahin aja cara yang lain 🙂

Sepanjang yang saya perhatikan, ada dua aliran pembuatan repositori lokal dari dvd ini. Yang pertama adalah cara yang mencoba merekonstruksi ulang repositori asli, yaitu seluruh isi DVD digabungkan menjadi satu kesatuan. Cara yang biasa dilakukan adalah dengan menyalin seluruh isi DVD ke dalam satu buah direktori dan menggabungkan daftar isi repositori (atau mengambil dari repositori asli) yang tertulis dalam berkas Packages. Tutorial pembuatan model ini dapat dilihat pada wiki ubuntu-id.

Aliran kedua adalah pembuatan repositori lokal yang terpisah-pisah sebanyak jumlah DVD yang ada. Misalkan jumlah DVD ada 5 maka akan ada 5 buah direktori yang masing-masing harus dimasukkan ke dalam daftar repositori yang tertulis pada berkas sources.list.

Agar ada sesuatu kontribusi baru dalam cara pembuatan repositori lokal yang akan saya jelaskan ini, saya perlu menceritakan sedikit mengenai sebuah kasus yang mungkin cocok untuk dijawab dengan cara yang akan saya tuliskan ini. Andaikan Anda menyimpan berkas iso dari DVD repository dan Anda juga ingin membuat repositori lokal. Anda tentu saja dapat melakukannya dengan cara yang dijabarkan dalam wiki telkomspeedy. Namun Anda akan mendapati repositori yang tersebar menjadi beberapa bagian. Bagaimana jika Anda ingin mendapatkan repositori utuh namun Anda tidak ingin menyalin isi dari seluruh DVD yang Anda miliki?

Jawabannya adalah dengan cara menggabungkan direktori pool/ dalam DVD yang mengandung berkas-berkas paket. Seluruh direktori tersebut digabungkan menjadi satu direktori sehingga seolah-olah berkas-berkas yang tersebar itu akan berada di bawah satu direktori tertentu. Setelah direktori pool/ “digabungkan”, Anda tentunya perlu menggabungkan daftar isi seperti yang dibahas pada wiki ubuntu-id. Daftar isi ini benar-benar harus digabungkan isinya bukan hanya terlihat menjadi satu seperti isi direktori pool/.

Untuk memperjelas, coba perhatikan diagram berikut ini.

/media/hardy-1/pool/  --+
/media/hardy-2/pool/    |
/media/hardy-3/pool/    +-->  /var/www/ubuntu/pool/
/media/hardy-4/pool/    |
/media/hardy-5/pool/  --+

Lima buah direktori pool/ di bawah /media/hardy-*/ akan “digabung” menjadi satu ke dalam /var/www/ubuntu/pool/.

Setelah itu, daftar isi dalam /var/www/ubuntu/dists/ akan dibuat. Bisa dengan cara menggabungkan bekas Packages yang terpecah atau mengunduh ulang dari repositori asli Ubuntu. Untuk keperluan ini, saya telah membuat skrip sederhana yang akan mengunduh berkas Packages.

Urusan penggabungan direktori dapat dilakukan dengan beberapa cara. Salah duanya adalah dengan menggunakan aufs dan mhddfs. Tutorial penggunaan mhddfs dapat dilihat di blog bang udienz. Kalau saya akan nyoba menggunakan aufs 🙂

Sudah cukup dulu basa-basinya, sekarang mari kita mulai tutorialnya.

  1. Siapkan berkas ISO yang Anda miliki, mount point untuk seluruh berkas ISO tersebut, dan direktori tujuan.

    Katakanlah berkas iso ada di /home/repo/, mount point ada di bawah /media/, dan direktori tujuan adalah /var/www/ubuntu/

  2. Mount seluruh DVD yang ada.

    $ sudo mount -o loop /home/repo/ubuntu-8.04-repository-i386-1_contrib.iso /media/hardy-1
    $ sudo mount -o loop /home/repo/ubuntu-8.04-repository-i386-2_contrib.iso /media/hardy-2
    $ sudo mount -o loop /home/repo/ubuntu-8.04-repository-i386-3_contrib.iso /media/hardy-3
    $ sudo mount -o loop /home/repo/ubuntu-8.04-repository-i386-4_contrib.iso /media/hardy-4
    $ sudo mount -o loop /home/repo/ubuntu-8.04-repository-i386-5_contrib.iso /media/hardy-5
    
  3. “Gabungkan” direktori pool/ dengan aufs. aufs ini adalah sebuah modul di kernel yang berguna untuk menggabungkan sistem berkas. Pada Ubuntu Hardy Heron yang saya gunakan ini, modul tersebut sudah terpasang dan siap digunakan.

    $ sudo mkdir -p /var/www/ubuntu/pool
    $ sudo mount -t aufs 
      -o dirs=/media/hardy-1/pool:/media/hardy-2/pool:/media/hardy-3/pool:/media/hardy-4/pool:/media/hardy-5/pool 
      none /var/www/ubuntu/pool
    

    Dengan demikian, direktori /var/www/ubuntu/pool/ akan berisi gabungan direktori pool/ yang terpisah dalam beberapa DVD.

  4. Untuk berkas daftar isi repositori dari repositori Ubuntu. Anda juga dapat menggabungkan berkas daftar isi yang terpecah namun kali ini saya akan mencontohkan cara yang lain, yaitu dengan mengunduh ulang dari repositori Ubuntu.

    Unduh skrip pengunduh daftar isi.

    $ wget http://github.com/fajran/iseng/raw/master/download-debian-dists/download-dists.sh
    $ chmod +x download-dists.sh
    

    Gunakan skrip tersebut untuk mengunduh daftar isi.

    $ ./download-dists.sh 
        http://kambing.ui.edu/ubuntu/ 
        hardy 
        main,restricted,universe,multiverse 
        i386 
        /var/www/ubuntu/
    

    Skrip tersebut meminta lima buah parameter. Parameter pertama adalah URL dasar sebuah repositori Ubuntu, parameter kedua adalah daftar kode nama rilis, parameter ketiga adalah daftar komponen, parameter keempat adalah daftar arsitektur, dan parameter kelima adalah direktori tujuan. Daftar yang disebut dalam parameter kedua, ketiga, dan keempat dipisahkan oleh sebuah koma.

    Pastikan Anda telah menginstal wget sebelum menjalankan skrip tersebut.

Ya itu saja! Repositori lokal Anda sudah tersedia di /var/www/ubuntu.

Oh iya, saya belum benar-benar mencobanya 😛 namun kira2 caranya seperti itu. Tolong laporkan jika Anda mencoba tutorial di atas 🙂

Kalau Anda jeli, Anda akan melihat kegunaan tambahan dengan menggunakan cara ini. Anda dapat menyediakan berkas ISO DVD repository dan repositori siap akses dengan tetap menghemat penggunaan harddisk! Jika Anda menyediakan repositori dan juga berkas ISO DVD repository, maka Anda sebenarnya telah menyimpan dua buah salinan repositori. Boros bukan?

Anda juga dapat menambahkan direktori yang dapat ditulisi pada harddisk saat membuat direktori gabungan dengan aufs. Dengan demikian, Anda juga dapat menyediakan repostori -updates dan -security yang diperbaharui setiap saat.

Karena repositori utama itu tidak akan berubah lagi isinya, maka sebenarnya Anda dapat menyimpannya dalam media hanya tulis (read only) seperti berkas ISO (termasuk dalam bentuk ISO DVD repository!). Berkas-berkas dalam repositori Ubuntu yang dapat berubah isinya (-updates dan -security) dapat tetap Anda simpan dalam harddisk. Berhubung seluruh pembagian repositori ini menggunakan satu direktori yang sama untuk menyimpan berkas paket (yaitu dalam direktori pool/), maka Anda dapat menggunakan aufs untuk menggabungkan direktori pool/ yang sebenarnya tersebar di beberapa tempat, yaitu harddisk dan berkas ISO.

Bagi yang pusing membaca tulisan saya, mudah2an diagram berikut dapat memperjelas.

/media/repo/ubuntu/pool/   --+
                             |
/media/iso-1/pool/           +--> /var/www/ubuntu/pool/
/media/iso-2/pool/           |
/media/iso-./pool/           |
/media/iso-n/pool/         --+

Isi dari /media/iso-* adalah isi dari berkas ISO yang tentu saja tidak dapat ditulisi. Sedangkan /media/repo/ubuntu/ terletak pada harddisk yang bisa ditulisi. Anda menyimpan repositori utama pada berkas iso yang kemudian dikaitkan ke /media/iso-* dan repositori -updates dan -security, yang isinya terus berubah, Anda simpan dalam harddisk pada /media/repo/ubuntu/.

Sekian saja. Semoga bermanfaat 🙂

Debootstrap

Sekedar catatan.. soalnya lupa terus. Daripada nyomot mulu dari blognya imtheface, mending ditulis di sini jg sekalian..

$ sudo debootstrap --variant=buildd hardy chroot http://nl.archive.ubuntu.com/ubuntu/

Perintah di atas digunakan untuk membuat lingkungan instalasi Ubuntu versi sangat minimalis di dalam direktori bernama chroot.

Setelah itu, instal paket language-pack-en dan gnupg di dalamnya supaya siap di-apt-get tanpa banyak pesan peringatan.

Instal ulang Ubuntu tanpa (benar2) menghapus partisi

Siang ini saya (tanpa alasan yang jelas) mengupgrade instalasi Ubuntu Hardy Heron saya ke Intrepid Ibex. Berhubung lagi pengen sekalian beberes sistem yg entah udah diinstalin apa aja itu, saya memutuskan tuk instal ulang dari awal.

Saat ada di halaman pengaturan partisi, saya memilih tuk mengatur secara manual. Saya pilih partisi tujuan, atur agar dijadikan partisi root, pilih sistem berkas, dan.. format.. humm.. saya pilih agar partisi tersebut tidak diformat. Sekalian ngetes apa yang akan terjadi.

Ternyata, si installer akan menghapus direktori2 sistem yang ada. Namun direktori data seperti /home

akan dibiarkan tak disentuh. Wah.. bagus deh. Saya jadi ngga perlu banyak konfigurasi ulang.

Setelah instalasi selesai dan masuk ke sistem yang baru, meja kerja saya sudah siap dipakai seperti sedia kala. Tidak perlu mengatur apa2 lagi karena memang konfigurasi sebelumnya tidak diapa-apakan.

dan sekarang.. saya memutuskan tuk downgrade lagi ke Ubuntu Hardy Heron.. hahaha.. ternyata aplikasi yang sempat menjadi alasan saya tuk upgrade perlu pustaka-pustaka yang ada di ubuntu hardy heron juga *mumet*

Cara downgrade-nya tentu saja sama dengan cara saya meng-upgrade. Langsung saja timpa partisi yang ada. Berkas-berkas sistem sebelumnya akan dihapus otomatis oleh si installer.

Oya, tentu saja saya tetap membuat salinan (backup) data-data saya.

Nyoba2 layouting di Prefuse

Bikin sesuatu yg bernama LevelLayout. Terpaksa dibikin berhubung NodeLinkTreeLayout yang diharapkan tuk bekerja ternyata tidak bekerja. Yaa.. sekalian lah.

Pake data versi lengkap tetep aja lemotubbies. Jadi bikin data versi rada kecil namun komplit. Uh, ini apa emang musti dioptimasi atau emang prefusenya aja yang dodolz?

Oya, sekarang kodingan udah ditaro juga di github. Coba diintip di http://github.com/fajran/ubuntu-pkg-vis-prefuse/tree/master