สถานการณ์ที่คุณเผชิญคือ คุณเป็น Linux user และ VLC เป็นโปรแกรมเล่นสื่อ pilihan ของคุณ ส่วนใหญ่คุณติดตั้งซอฟต์แวร์จาก official repositories โดยไม่มีปัญหา แต่บางครั้งคุณใช้ดิสโทรที่ไม่ ship VLC มา และต้องใช้ third-party sources แล้วคุณติดตั้ง VLC จากที่นั่น และพยายามเล่นเนื้อหา
คุณได้ข้อผิดพลาด: 'No suitable decoder module: VLC does not support the audio or video format "VP80". Unfortunately there is no way for you to fix this.' โอ้โห ดูไม่ดี ตอนไหนทำไง? ให้ผมแสดง
ปัญหา
เหตุผลที่คุณเห็นข้อผิดพลาดน่ากลัวและ misleading นี้ น่าจะเป็นเพราะคุณมี media codecs ที่ broken หรือ incompatible ติดตั้งอยู่ ซึ่งไม่ cooperate กับ VLC version ที่คุณเลือก แบบง่ายๆ
สิ่งนี้อาจเกิดขึ้นหากคุณใช้ multiple external third-party repositories ซึ่งทั้งหมด provide เนื้อหาเดียวกัน แล้วตอนติดตั้งแพ็กเกจ อาจมี contention และบางแพ็กเกจอาจติดตั้งจาก source หนึ่ง และอีกบางจากอีก source ทำให้ conflict และ mismatch ทำให้ media player ของคุณ borked

ผมได้เน้นปัญหานี้หลายครั้งก่อนหน้า และเวลาไม่ได้กัดกร่อนความสำคัญ โปรดดู Fedora และ openSUSE pimping guides ของผมสำหรับรายละเอียดเพิ่มเติม แล้วดู Scientific Linux repository management tutorial ทั้งหมดเน้นความสำคัญของการใช้ third-party repositories อย่างขจัด และหากคุณต้องมี multiple sources ที่ provide เนื้อหาเดียวกัน คุณควรใช้ repository priorities เพื่อกำจัด conflicts ที่เป็นไปได้ Screenshots มากมาย:
โดยเฉพาะสำหรับ VLC จากบรรทัดคำสั่ง อาจดูแบบนี้: package manager จะขอให้คุณเลือกหนึ่งในหลายตัวเลือกเพื่อ resolve conflict โดยทั่วไป พยายามมุ่งมั่นกับ single repository สำหรับทุก pilihan
Problem: vlc-2.1.1-185.4.x86_64 requires vlc-noX = 2.1.1-185.4, but this requirement cannot be provided
uninstallable providers: vlc-noX-2.1.1-185.4.i586[ftp.gwdg.de-suse]
vlc-noX-2.1.1-185.4.x86_64[ftp.gwdg.de-suse]
Solution 1: Following actions will be done:
install vlc-noX-2.1.1-185.4.x86_64 (with vendor change)
openSUSE --> https://packman.links2linux.de
install vlc-noX-lang-2.1.1-185.4.noarch (with vendor change)
openSUSE --> https://packman.links2linux.de
Solution 2: do not install vlc-2.1.1-185.4.x86_64
Solution 3: do not install vlc-2.1.1-185.4.x86_64
Solution 4: break vlc-2.1.1-185.4.x86_64 by ignoring some of its dependencies
หลังจากคุณตัดสินใจ package manager จะแจ้งการเปลี่ยนแปลงที่ทำ และเพิ่ม/ลบซอฟต์แวร์ตามที่จำเป็นเพื่อ accommodate ambiguity ของคุณ
The following packages are going to change vendor:
libvlc5 openSUSE -> https://packman.links2linux.de
libvlccore7 openSUSE -> https://packman.links2linux.de
vlc-noX openSUSE -> https://packman.links2linux.de
vlc-noX-lang openSUSE -> https://packman.links2linux.de
vlc-qt openSUSE -> https://packman.links2linux.de
และผลลัพธ์คือ media player ที่ไม่เล่น — เสียใจ ไหม:
วิธีแก้
อ่านล็อกอาจช่วย แตไม่มากจริงๆ วิธีเดียวที่ sensible ในการแก้คือ จัดการ repository conflicts, purge affected versions ของ binaries และ libraries, disable และ prioritize repositories ให้ไม่มี conflicts เพิ่มเติม และหลังจากนั้นเท่านั้น reinstall VLC นี่คือลำดับการกระทำที่ถูกต้อง
หากและเมื่อคุณเจอปัญหา โปรดทำตาม checklist ด้านบน Remove VLC เปิด package manager จาก command line หรือ GUI และ remove all repositories ที่ provide extra content หรือ prioritize ให้ preferred choice ถูกใช้ก่อน นี่จะช่วยหลีกเลี่ยง conflicts แตคุณควรใช้แค่ single third-party resource
สรุป
ผมซ้ำบางขั้นตอนที่ระบุในบทความ openSUSE ดังนั้นหากคุณอ่านนั้นแล้ว อาจพบว่าบทความนี้ไม่จำเป็น จริงในมุมมองหนึ่ง แตยังคงสำคัญมาก โดยเฉพาะสำหรับผู้ที่ชอบ tinker instinctive reaction อาจจะ recompile ทุกอย่างและพยายาม fix ด้วย brute force
ในกรณีนี้ specific วิธีแก้จริงคือ เห็น bigger picture โค덥 ปลั๊กอิน และ VLC เองทั้งหมด fine และสำคัญที่จะจำว่า มันแค่ wrong versions bundled together ทุกอย่างกลับสู่ปกติเมื่อ lack of compatibility ถูก resolved กล่าวคือ ดำเนินการอย่างระมัดระวัง อย่า overdo อย่า force และหลีกเลี่ยงการ approve dangerous warnings ที่อาจนำไปสู่ serious corruption ของระบบ สุดท้าย VLC จะเล่นได้ดีอีกครั้ง
ขอแสดงความนับถือ