“framework” di MacOS X

Setelah perangkat2 development terpasang di MacBook Pro (MBP) baruku, saatnya melakukan ujicoba bikin program kecil2-an. Terutama untuk ujicoba hal2 yg sekiranya platform spesifik. Untuk memastikan kerjaan coding nanti bisa jalan lancar. Ini merupakan hal yg wajib dilakukan developer saat pertama kali migrasi platform, yaitu memahami dan beradaptasi dgn platform baru. Karena MacOS X merupakan varian dari Unix, pengetahuan Linux seharusnya bisa membantu. Windows? Lupakan saja!😀

Yg aku ujicoba pertama kali adalah bikin program untuk menampilkan data dari database. Untuk bahasa, tentu aku pilih object pascal dgn compiler FreePascal. Untuk database servernya, tentu aku pilih Firebird. Keduanya udah terinstall dan jalan dgn baik di MBP-ku. Untuk koneksi databasenya, aku menggunakan sqlDB dari FPC. Krn komponen sqlDB gak bisa terinstall di Lazarus, terpaksa harus dibuat saat runtime.

Oke… program ditulis, standar aja. Query-nya cuman buat ngambil data di tabel country dari database employee (database contoh dari instalasi Firebird). Program selesai, dan bisa di-compile dgn sukses. Aku pikir program ini harusnya akan jalan dgn mudah, toh cuman gitu doang, sama sekali gak rumit.

Saat program dijalankan, muncul pesan kesalahan bahwa pustaka Firebird client (fbclient.dll atau libfbclient.so) tidak bisa dipanggil. Ah, persis pengalaman pertama di Linux (Ubuntu) dulu. Ini paling hanya masalah nama berkas atau lokasi berkas (path) yg kurang tepat. Piece of cake, pikirku.😛 Kubuka Finder dan mencari berkas dgn nama libfbclient.dylib. Loh, gak ketemu! Terlalu spesifik mungkin, nama berkas yg dicari harus lebih generic. Aku ganti nama berkas dgn fbclient. Loh, gak ketemu juga?!

Mungkin Finder kurang ampuh. Aku buka aplikasi Terminal, pake perintah locate untuk mencari berkas dgn nama fbclient. Gak ketemu juga! Mungkin database locate kurang uptodate nih. Aku paksa melakukan perbaruan dgn perintah sudo /usr/libexec/locate.updatedb. Sambil menunggu, aku mencari informasi tentang pencarian berkas di MacOS X. Gak ada informasi yg cukup membantu.

Tak lama kemudian, database locate udah terbarui. Aku ulangi lagi pencarian. Lah, tetep gak ada juga? Aku ulangi lagi dgn berbagai kombinasi nama berkas. Tetap. Nothing is found! This is weird.😦

Seperti biasa, aku tanya ke om Gugel. Usaha2 awal gak membuahkan hasil. Kebanyakan malah merujuk ke instalasi Firebird di Mac. Berbagai kombinasi kata cari yg aku coba nampaknya kurang mengenai sasaran. Aku gak boleh putus asa nih. Dan, akhirnya, om Gugel memberi jawaban yg bagus. Itu langsung dari salah satu developer Firebird yg fokus untuk dukungan pada MacOS X. Aku baru tau kalo dia punya blog.😀

Ternyata solusinya mudah saja. *ya iya lah, udah tau jawabannya!*😛 Cukup membuat symlink dgn nama libfbclient.so di folder /usr/lib yg mengacu ke berkas /Library/Frameworks/Firebird.framework/ Versions/Current/Firebird, programku yg tadi langsung jalan dgn sukses!😀

Menarik. Dari hasil googling, banyak hal baru yg belum aku ketahui di MacOS. Banyak istilah, banyak paradigma, banyak cara. Sbg contoh, paket aplikasi di MacOS bisa banyak bentuk, ada .dmg, ada .pkg, ada framework, dan seterusnya. Firebird untuk Mac dipaket dalam bentuk framework, yg katanya adalah cara pemaketan terbaik di Mac untuk tipikal aplikasi seperti Firebird. Aku sendiri belum paham sepenuhnya. Tapi mengetahui bahwa masih banyak hal baru di Mac, merupakan keasyikan tersendiri buatku. Ini kesempatan untuk ngoprek. Hal yg udah lama gak aku lakuin lagi.😉

One Response to “framework” di MacOS X

  1. bloGEsam says:

    udah lama gak mampir kesini… makin canggih aja si boss… hehehe🙂

Leave a Reply

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

%d bloggers like this: