Log of Debian/Ubuntu packages

I have a plan to do a little research about packages in Debian and/or Ubuntu repositories. For this, I think I need a preferably complete log of packages that coming in and out of the repositories.

A friend of mine pointed me the following two mailing list archives where Debian and Ubuntu seem to be logging the packages.

If somebody knows the other sources, or if the above sources are unsuitable for the purpose I am looking for, please let me know 🙂

MongoDB dan Ubuntu 8.04

Stelah ngoprek2 tiga hari belakangan ini, akhirnya jadi juga paket MongoDB 1.0 dan PyMongo 0.6 tuk Ubuntu 8.04. Silakan disedot dari Launchpad PPA saya bagian MongoDB =D

https://launchpad.net/~fajran/+archive/mongodb/

Seperti yang tertulis di website MongoDB, SpiderMonkey yang dibawa Ubuntu 8.04 tidak memiliki dukungan terhadap UTF-8. Jadi kalau Anda sekalian sangat membutuhkan UTF-8, mending compile sendiri aja semuanya sendiri ya =P atau pake yang sudah dibuatkan oleh MongoDB. Cek saja langsung di halaman download MongoDB.

Selamat menikmati..

Mencatat berkas yang dipasang

Salah satu cara memasang sebuah aplikasi adalah dengan mengunduh kode sumbernya lalu melakukan kompilasi dan memasang berkas-berkasnya pada sistem. Bagi aplikasi yang menggunakan autoconf, hal ini dapat dilakukan dengan menjalankan 3 perintah sakti: ./configure, make, dan make install.

Direktori instalasi dapat diatur dengan mengeset parameter --prefix pada skrip configure yang ada. Contoh:

./configure --prefix=$HOME/mac/

Dengan demikian, aplikasi akan diinstal di bawah direktori mac dalam home directory saya.

$ ./configure --prefix=$HOME/mac/
$ make
$ make install

Masalah instalasi mungkin selesai sampai di sini. Pertanyaan berikutnya adalah bagaimana cara menghapus aplikasi ini?

Jika beruntung, Anda akan menemukan target uninstall pada berkas Makefile yang ada. Sehingga Anda dapat menghapus aplikasi tersebut dengan menjalankan make uninstall namun sepertinya tidak semuanya memiliki target uninstall ini. Lagipula, Anda harus mempertahankan berkas Makefile dan kawan2 yang dibuat oleh skrip configure. Tidak cocok bagi yang suka kebersihan.. hehe..

Salah satu solusinya adalah mencatat berkas yang diinstal pada saat menjalankan make install. Andai direktori instalasi belum berisi berkas-berkas lain, hal ini dapat dg mudah dilakukan dg cara mencatat berkas-berkas yang ada di sana setelah make install dijalankan. Namun jika Anda sudah pernah menginstal aplikasi lain disana, bagaimana caranya?

Berkas Makefile yang dibuat oleh skrip configure biasanya menggunakan sebuah variabel bernama DESTDIR yang berisi prefix dari prefix yang kita gunakan. Dengan demikian, kita bisa menginstal berkas-berkas aplikasi pada direktori sementara terlebih dahulu sebelum benar-benar menginstalnya pada direktori instalasi. Setelah menginstal ke direktori sementara, kita bisa mencatat daftar berkas yang ada dan menyimpannya sebagai referensi daftar berkas yang harus dihapus andai kita mau menghapus aplikasi ini.

Cara menggunakan teknik ini adalah sebagai berikut.

$ ./configure --prefix=$HOME/mac/
$ make
$ DESTDIR=/tmp/app/ make install
$ make install

Bisa dilihat, ada 1 perintah yang diselipkan di sana, yaitu DESTDIR=/tmp/app/ make install. Pemanggilan make install yang disertai dengan pengaturan nilai variabel DESTDIR akan membuat make menyalin berkas-berkas ke bawah direktori yang disebut pada DESTDIR. Jika nilai prefix kita atur dengan $HOME/mac/, atau dalam hal ini adalah /Users/iang/mac/, maka jika nilai DESTDIR diset dg /tmp/app/, berkas-berkas aplikasi akan disalin ke /tmp/app/Users/iang/mac/.

Untuk mencatat berkas-berkas yang ada, kita bisa menggunakan perintah find seperti berikut.

$ cd /tmp/app/
$ find . > aplikasi.txt

Berkas aplikasi.txt akan berisi daftar berkas yang terasosiasi dg aplikasi yang kita pasang tadi. Dengan demikian, kita dapat menggunakan daftar ini untuk menghapus berkas-berkas yang tepat yang terkait dg aplikasi tadi.

Setelah daftar berkas didapat, maka kita bisa dengan aman dan nyaman untuk menghapus direktori kode sumber dan direktori instalasi sementara yang kita sebut dalam DESTDIR. Tentunya jangan lupa memindahkan berkas aplikasi.txt ke tempat yang aman terlebih dahulu 🙂

Yak sekian saja tutorial membuat manajemen paket/aplikasi kecil-kecilan 🙂

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

Memvisualisasikan dependensi paket Ubuntu

Sebelum ngerjain tesis, mari kita pemanasan dulu =P

Gambar di atas adalah cuplikan dari aplikasi kecil yang memvisualisasikan dependensi paket-paket di Ubuntu Intrepid Ibex (mudah2an sih ngga salah menyusun data dependensinya =P) Dibuat pake Java dengan bantuan Prefuse.

Kalau mau nyoba2, silakan donlod aplikasinya lalu coba2 masukkan sebuah nama paket. Kalau udah muncul di layar, klik nama paketnya supaya paket-paket lain yg terhubung ikutan muncul.

  1. Download

    $ wget http://labs.fajran.web.id/p/ubuntu-pkg-vis/ubuntu-pkg-vis-0.1.tar.bz2
    
  2. Extract

    $ tar xjf ubuntu-pkg-vis-0.1.tar.bz2
    
  3. Jalankan

    $ cd p
    $ java -Xmx512M -cp .:prefuse.jar id/web/fajran/vis/ubuntupkg/Main orig/
    

Yayaya.. memang sangat berat! Seluruh data paket dibaca dan masuk ke memory. Selain itu, proses layouting dg Force Directed Layout emang berat, apalagi kalau datanya banyak. Walau sebenarnya diharapkan untuk tidak terlalu berat2 amat berhubung tidak seluruh data ditampilkan. Namun sepertinya Prefuse masih bermasalah dalam hanya-mengutak-atik-data-yang-tampil-saja.

Kalau mau pake subset-tidak-lengkap data yang lebih kecil, coba ganti orig/ menjadi small/

$ java -Xmx512M -cp .:prefuse.jar id/web/fajran/vis/ubuntupkg/Main small/

Contoh paket yang lumayan dapat dilihat dalam data kecil ini adalah pinot, jadi coba cari paket tsb.

Source code? err.. berhubung aplikasi ini beneran tuk icip2 Prefuse, saya gak nyimpen source code nya xD ada sih, tapi udah babak belur di sana sini. Nanti aja kalo saya udah gapé pake Prefuse, saya bikin lagi aja yg baru =P