หมายเหตุ: บทความนี้เขียนก่อน Skype Linux 4.2 เปิดตัวอย่างเป็นทางการ ดังนั้นบางสิ่งที่เขียนที่นี่อาจไม่適用แล้ว และทุกอย่างอาจทำงาน smooth as butter หรือไม่ ก็อ่านด้วยนะ
เมื่อเร็วๆ นี้ ผมจับได้ข่าวลือ/ความกังวลใหม่ว่า Skype ไม่สามารถติดตั้งบน Ubuntu รุ่นล่าสุดได้ คือ 13.04 Raring Ringtail เพิ่มเติม บางคนระบุอย่างชัดเจนว่า Skype จะไม่ทำงานบน non-Unity flavors เช่น Xubuntu หรือแบบนั้น
ผมตัดสินใจตรวจสอบข่าวลือนี้และ verify หากมันจริง และถ้าใช่ ให้คุณ workaround สามวิธีที่คุณสามารถได้ Skype running นี่จะเป็นบทเรียนมีค่า เราจะทำ geeky things หลายอย่าง อยู่กับผม เริ่มต้นแล้ว
ติดตั้ง Skype
คุณสามารถลองใช้ Ubuntu Software Center หรือดาวน์โหลด Debian installer จาก official site โปรดทราบ installer มีแค่ 32-bit flavor ดังนั้นคนรัน 64-bit systems อาจรู้สึก anxious นิดหน่อย แตไม่มีเหตุผลจริงๆ หากคุณ double-click ไฟล์ที่ดาวน์โหลด Ubuntu Software Center จะ launch และ prompt ให้คุณติดตั้งแพ็กเกจ มันยัง sort out dependencies เล็กๆ น้อยๆ ใน background นี่ somewhat like สิ่งที่เราทำกับ Steam เร็วๆ นี้
หากคุณเลือกติดตั้งแพ็กเกจจาก command line คุณจะต้อง force architecture กล่าวคือ บางอย่างแบบนี้:
sudo dpkg -i --force-architecture skype-ubuntu*.deb
รัน Skype
เมื่อแพ็กเกจติดตั้งแล้ว รันมัน มัน most likely จะ fail ตอนนี้ คุณต้อง debug issue เล็กน้อยเพื่อเข้าใจว่าอาจผิดพลาดอะไร เราจะใช้ hacking skills ที่คุณได้หลังอ่าน ton ของ so-called super duper tutorials ของผม สิ่งแรก เราจะ execute Skype จาก command line
คุณจะเห็น error ดังนี้:
Segmentation fault (core dump)
Core dump & basic debugging
ปกติ core dumps บันทึกใน current working directory (cwd) หากคุณเช็ค contents คุณ most likely จะเห็นว่าไม่มี core file สร้างขึ้น ตอนนี้ เราจะ recall GNU Debugger (gdb) tutorial ของผม ที่ไม่ less useful ที่นั่น เราพูดถึงวิธี collect memory cores ของ crashing applications กล่าวคือ shell limits อาจ set อย่างที่ applications ไม่สามารถ dump core files ไป disk ได้ ใน BASH คุณสามารถเช็คด้วย ulimit -a
แน่นอน core file size ตั้งเป็น 0 เราจะเปลี่ยนมัน:
ulimit -c unlimited
ตอนนี้ หากคุณ rerun core จะถูก collected
อีกครั้ง เราจะ invoke power of gdb tutorial และ examine core ภายใน debugger สิ่งที่เราต้องการคือ trace ของ last functions executed ก่อน crash เพราะสิ่งนี้สามารถ point เราในทิศทางที่ถูกต้อง
gdb `which skype` core
มีความก้าวหน้าบ้าง นี่ geeky และ stack อาจ corrupt เพราะ Skype compiled using sheep และ ethereal powers แต่เราเห็นว่า crash originated ใน libGL shared library คุณอาจ tempted ที่จะ blame Nvidia driver แตไม่มีเหตุผลจริงๆ
Simple explanation คือ Skype คาดหวังว่าจะหา libGL ภายใต้ mesa directory ภายใต้ /usr/lib32 ในขณะที่ระบบของคุณมี library ภายใต้ /usr/lib/i386-gnu-linux เล็กน้อย string changes และ notations นี้สามารถ confuse applications ตอนนี้เรารู้แล้ว เราสามารถ implement fix ได้ หนึ่ง option คือ สร้าง symbolic link และ recreate necessary runtime bindings ด้วย ldconfig ทั้งคู่ด้วย sudo
หากนี้ไม่ทำงาน คุณสามารถลอง hack นี้ มันจะ force Skype ใช้ native system libraries ในที่ที่คาดหวัง แทนที่จะค้นหาใน legacy directories และ traverse symbolic links ในฐานะ sudo สร้างไฟล์ต่อไปนี้:
sudo touch /etc/ld.so.conf.d/skype.conf
ภายใน ใส่บรรทัดเดียว:
/usr/lib/i386-linux-gnu/mesa/
จากนั้น rerun ldconfig:
sudo ldconfig
ทดสอบ Skype
ตอนนี้ ลองดูว่านี้ทำงานไหม และมันทำงาน บน Xubuntu ไม่ใช่ Bob is our uncle!
อ่านเพิ่มเติม
คุณอาจชอบสิ่งต่อไปนี้:
- A whole bunch of Skype related tricks on Ask Ubuntu.
- Skype Community Ubuntu 13.04 thread with similar symptoms.
- Several more hacking guides for you, if you please.
บทสรุป
ไปแล้ว Skype ทำงาน รวมถึง Xfce desktop ที่ less obvious ผมทดสอบบน flavors อื่นๆ ด้วยผลลัพธ์เหมือนกัน ดังนั้นตอนนี้คุณมี solid solution ในการได้ Skype ทำงานจนกว่าจะมี official fix released และนี่ true สำหรับ ALL FUTURE releases!
ที่ดีที่สุด บทช่วยสอนนี้สอนคุณมากมาย รวมถึง subtle differences ระหว่าง 32-bit และ 64-bit software วิธีติดตั้งแพ็กเกจจาก command line หรือผ่าน Ubuntu Software Center วิธีเปลี่ยน shell limits collect application memory cores วิธี troubleshoot issues ใช้ debugger ที่เหมาะสม วิธีทำการเปลี่ยนแปลง system files และ configurations และยังมากกว่านั้น คุณขอ Skype คุณได้มัน บวก extras ผมหวังว่าคุณจะพบคู่มือนี้มีประโยชน์ ตามที่คุณเห็น ปัญหาบางครั้งง่ายกว่าที่มันดู Enjoy your international chats
ขอบคุณครับ