ฉันมีแอปพลิเคชันเชิงพาณิชย์หลายรายการที่ใช้ FFMPEG หรือ subdependency, libpango และอื่นๆ หนึ่งในแพ็คเกจเหล่านั้นหยุดทำงานในระบบของฉันเนื่องจากทั้งเวอร์ชันของ FFMPEG หรือ libpango และตัวเลือกการคอมไพล์นั้นแตกต่างจากเวอร์ชัน Ubuntu ในสต็อก ฉันไม่แน่ใจว่าโปรแกรมใดใช้ FFMPEG หรือ libpango ในการพึ่งพา หรือวิธีค้นหาเวอร์ชันที่ใช้
ข้อผิดพลาดเดิม:
ffmpeg: ข้อผิดพลาดในการค้นหาสัญลักษณ์: /lib/x86_64-linux-gnu/libpango-1.0.so.0: ไม่ได้กำหนดสัญลักษณ์: hb_glib_script_to_script
ถ้าฉันตรวจสอบว่า libpango มีสัญลักษณ์หรือไม่ ฉันจะเห็นว่าไม่มี:
> readelf -a /lib/x86_64-linux-gnu/libpango-1.0.so.0 | grep hb_glib_script_to_script
85: 0000000000000000 0 ค่าเริ่มต้นของ FUNC GLOBAL UND hb_glib_script_to_script
ฉันได้ตรวจสอบตำแหน่งอื่นเช่น /usr/local และ ~/.snap/* และอินสแตนซ์ของ libpango เหล่านั้นยังแสดงรายการสัญลักษณ์นั้นว่าไม่ได้กำหนด
ฉันสงสัยว่าแพ็คเกจอาจมีเวอร์ชันที่ขัดแย้งกันของไลบรารีที่อาจถูกแทนที่หรือไม่ ฉันไม่เห็นสัญญาณใด ๆ ของสิ่งนั้น
> apt-cache rdepends -- ติดตั้ง ffmpeg
เอฟเอ็มเพก
ย้อนกลับขึ้นอยู่กับ:
bitwig-สตูดิโอ
ffmpeg:i386
imagemagick-6.q16
ffmpeg:i386
imagemagick-6.q16
ffmpeg:i386
ตรวจสอบข้อผิดพลาดของสัญลักษณ์ ฉันพบสิ่งนี้:
https://unix.stackexchange.com/questions/599152/debian-libpangoft2-1-0-so-0-undefined- symbol-hb-glib-script-from-script
มันแนะนำให้ติดตั้งใหม่ libharfbuzz0b
ซึ่งเป็นไลบรารีพื้นฐานที่ควรระบุสัญลักษณ์ ฉันติดตั้งใหม่:
> sudo apt update && sudo apt ติดตั้ง libharfbuzz ใหม่
ฉันยังคงได้รับข้อผิดพลาดนี้
จากนั้นฉันตรวจสอบว่ามี FFMPEG หลายอินสแตนซ์หรือไม่ มี libpango หลายสำเนา แต่สำเนาอยู่ใน ~/.snap และไม่ควรแก้ไขก่อนเวอร์ชันระบบ