ทดลองติดตั้ง Moonlight บน Ubuntu 7.04
Moonlight เป็นโครงการของทีมนักพัฒนา Mono ที่จะพัฒนาระบบทัดเทียมแบบเปิดต้นรหัส (opensource implementation) ที่เข้ากันได้กับรันไทม์ Silverlight ของไมโครซอฟท์บนแพลตฟอร์มลินุกซ์ เนื่องจากในปัจจุบัน Silverlight สนับสนุนเฉพาะแพลตฟอร์ม Windows และ Mac OS X เท่านั้น ความน่าทึ่งของโครงการนี้อย่างหนึ่งได้แก่ การที่ทีมงานสามารถพัฒนา Moonlight ให้สามารถใช้งานได้ในขั้นต้นได้ในระยะเวลาเพียง ๒๑ วัน !
การติดตั้ง Moonlight ในขณะนี้จำเป็นต้องคอมไพล์จากต้นรหัส และต้องการ Mono 1.2.4 ในขณะที่ Mono ที่มาพร้อมกับ Ubuntu 7.04 นั้นเป็นรุ่น 1.2.3 อย่างไรก็ตามเราไม่จำเป็นต้องคอมไพล์ Mono จากต้นรหัสเองเนื่องจากมีผู้ทำแพกเกจสำหรับ Ubuntu รุ่น 7.04 ไว้ให้แล้ว
ขั้นตอนการติดตั้งที่จะกล่าวถึงต่อไป อาศัยข้อมูลจากหน้าเว็บดังต่อไปนี้ (ประสมกับการลองผิดลองถูกอีกเล็กน้อย)
- http://www.mono-project.com/Moonlight
- http://johansoft.blogspot.com/2007/07/how-to-install-moonlight-desklets-step.html
- http://groups.google.com/group/mono-olive/browse_thread/thread/7706c2dac175d4f6/e0c922d8d2c10b40#e0c922d8d2c10b40
ขั้นแรก เพิ่มบรรทัดข้างล่างนี้ลงในแฟ้ม /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 subversionMono:$ sudo aptitude install mono libmono-dev mono-gmcs mono-mcsGTK+:$ sudo aptitude install libgtk2.0-devFFmpeg: (อาจข้ามได้ถ้าต้องการติดตั้งจากต้นรหัส)$ sudo aptitude install libavformat-dev libswscale-devALSA:$ sudo aptitude install libasound2-devMozilla: เลือกลงแพกเกจ$ 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) ได้
ความสามารถที่น่าสนใจอย่างหนึ่งของ 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) มากทีเดียว น่าติดตามว่าทิศทางการพัฒนาของโครงการนี้จะเป็นอย่างไรต่อไป
Technorati Tags: ubuntu, linux, silverlight, moonlight
Powered by ScribeFire.


Comments
ต้องลองบ้างซะแล้ว
ขอไปลง Blognone หน่อยสิพี่