ทดลองติดตั้ง Moonlight บน Ubuntu 7.04

by phisite
23 July 2007 - 23:50

Moonlight เป็นโครงการของทีมนักพัฒนา Mono ที่จะพัฒนาระบบทัดเทียมแบบเปิดต้นรหัส (opensource implementation) ที่เข้ากันได้กับรันไทม์ Silverlight  ของไมโครซอฟท์บนแพลตฟอร์มลินุกซ์ เนื่องจากในปัจจุบัน Silverlight สนับสนุนเฉพาะแพลตฟอร์ม Windows และ Mac OS X เท่านั้น ความน่าทึ่งของโครงการนี้อย่างหนึ่งได้แก่ การที่ทีมงานสามารถพัฒนา Moonlight ให้สามารถใช้งานได้ในขั้นต้นได้ในระยะเวลาเพียง 21 วัน !

การติดตั้ง Moonlight ในขณะนี้จำเป็นต้องคอมไพล์จากต้นรหัส และต้องการ Mono 1.2.4 ในขณะที่ Mono ที่มาพร้อมกับ Ubuntu 7.04 นั้นเป็นรุ่น 1.2.3 อย่างไรก็ตามเราไม่จำเป็นต้องคอมไพล์ Mono จากต้นรหัสเองเนื่องจากมีผู้ทำแพกเกจสำหรับ Ubuntu รุ่น 7.04 ไว้ให้แล้ว

ขั้นตอนการติดตั้งที่จะกล่าวถึงต่อไป อาศัยข้อมูลจากหน้าเว็บดังต่อไปนี้ (ประสมกับการลองผิดลองถูกอีกเล็กน้อย)

ขั้นแรก เพิ่มบรรทัดข้างล่างนี้ลงในแฟ้ม

/etc/apt/sources.list deb http://www.viraptor.info/repo feisty-custombackports contrib

จากนั้น อัปเดตทั้งแหล่งแพกแกจและตัวแพกเกจด้วยคำสั่ง

$ sudo aptitude update$ sudo aptitude dist-upgrade

เมื่ออัปเดตแล้วติดตั้งแพกเกจที่จำเป็นเบื้องต้น ได้แก่

ชุดคอมไพล์โปรแกรมและเอสวีเอ็น :

$ sudo aptitude install build-essential subversion

Mono:

$ sudo aptitude install mono libmono-dev mono-gmcs mono-mcs

GTK+:

$ sudo aptitude install libgtk2.0-dev

FFmpeg: (อาจข้ามได้ถ้าต้องการติดตั้งจากต้นรหัส)

$ sudo aptitude install libavformat-dev libswscale-dev

ALSA:

$ sudo aptitude install libasound2-dev

Mozilla: เลือกลงแพกเกจ

$ sudo aptitude install libxul-dev

หรือ

$ sudo aptitude install libnspr-dev libnss-dev firefox-dev

สร้างสารบบสำหรับต้นรหัส

$ mkdir ~/svn

ดาวน์โหลดและคอมไพล์ติดตั้ง FFmpeg (ขั้นตอนนี้อาจข้ามได้หากติดตั้ง libavformat-dev และ libswscale-dev จากแพกเกจ)

$ cd ~/svn && svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg $ cd ~/svn/ffmpeg && ./configure --prefix=/usr/local && make && sudo make install

ดาวน์โหลดและคอมไพล์ติดตั้ง Olive

$ cd ~/svn && svn checkout svn://anonsvn.mono-project.com/source/trunk/olive olive $ cd ~/svn/olive && ./configure --prefix=/usr && make && sudo make install

ขั้นตอนสุดท้าย ดาวน์โหลดและคอมไพล์ติดตั้ง Moonlight และปลั๊กอินสำหรับ Firefox

$ cd ~/svn && svn checkout svn://anonsvn.mono-project.com/source/trunk/moon moon $ cd ~/svn/moon && ./autogen.sh --prefix=/usr && make && sudo make install && make test-plugin

ในระหว่างการคอมไพล์อาจพบว่าคอมไพเลอร์ไม่พบแฟ้มที่จำเป็นสำหรับการคอมไพล์ ให้หาแฟ้มที่ต้องการจากเว็บไซต์ค้นหาแพกเกจที่ http://packages.ubuntu.com/ จากนั้นติดตั้งแพกเกจที่มีแฟ้มดังกล่าว แล้วจึงคอมไพล์ใหม่อีกครั้ง

ทดสอบว่าปลั๊กอินใช้การได้ โดยเปิดยูอาร์แอลต่อไปนี้ด้วย Firefox

http://intertwingly.net/stories/2007/05/06/?icon=caution

จะเห็นการเปรียบเทียบระหว่างการวาดภาพกราฟิกแบบเวกเตอร์โดยใช้ Silverlight/Moonlight เปรียบเทียบกับเอสวีจีซึ่ง Firefox สนับสนุนโดยตรง ดังภาพต่อไปนี้

จากนั้นอาจลองเปิดตัวอย่างอื่น ๆ ในหน้า MoonlightShots และหน้า Community Gallery ของ Silverlight เพื่อทดสอบดูด้วย อย่างไรก็ตาม เนื่องจาก Moonlight ยังอยู่ในขั้นต้นของการพัฒนา จึงอาจแสดงผลไม่ตรงตามที่ควรจะเป็นหรือทำให้ Firefox ปิดตัวเองลง (crash) ได้

ภาพข้างบนนี้ กรอบสีฟ้าที่เขียนว่า "Visit the LEARN PAGE..." คือ Silverlight ที่ฝังลงในหน้าเว็บ

ความสามารถที่น่าสนใจอย่างหนึ่งของ Moonlight คือการที่เราสามารถเขียนโปรแกรมบน Moonlight ด้วยภาษาที่ .NET/Mono สนับสนุน ซึ่งเมื่อคอมไพล์แล้วสามารถรันบนเดสก์ท็อปได้โดยตรงในทำนองเดียวกับ Dashboard ของ OS X โดยใน Moonlight จะเรียกว่า Desklet (อ่านรายละเอียดได้จากบทความของ Ars Technica) ตัวอย่างของ Desklet จะอยู่ในสารบบ

~/svn/moon/desklet

ซึ่งสามารถคอมไพล์และเรียกใช้ได้ด้วยคำสั่ง mopen ดังตัวอย่างข้างล่างนี้

$ cd ~/svn/moon/desklet/glassyclock && make $ cd ~/svn/moon/desklet && mopen --desklet glassyclock

จะได้ Desklet นาฬิกาแบบเข็มที่คอมไพล์จากสารบบ

~/svn/moon/desklet/glassyclock

การเรียกใช้ Desklet อื่น ๆ ก็เป็นไปในทำนองเดียวกัน

เท่าที่ได้ลองทดสอบดู รู้สึกประทับใจในความสามารถของ Moonlight (โดยเฉพาะอย่างยิ่งความง่ายของการพัฒนา Desklet) มากทีเดียว น่าติดตามว่าทิศทางการพัฒนาของโครงการนี้จะเป็นอย่างไรต่อไป

ที่มา - ปรับปรุงเล็กน้อยจากที่บันทึกไว้ในบล็อกส่วนตัวของผู้เขียน

Blognone Jobs Premium