นี่คือคำสั่ง dpkg-shlibdeps ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
dpkg-shlibdeps - สร้างการพึ่งพา substvar ไลบรารีที่ใช้ร่วมกัน
เรื่องย่อ
dpkg-shlibdeps [ตัวเลือก... ] [-e]ปฏิบัติการ [ตัวเลือก... ]
DESCRIPTION
dpkg-shlibdeps คำนวณการพึ่งพาไลบรารีที่ใช้ร่วมกันสำหรับไฟล์เรียกทำงานที่มีชื่ออยู่ใน
อาร์กิวเมนต์ การพึ่งพาจะถูกเพิ่มไปยังไฟล์ตัวแปรทดแทน เดเบียน/substvars
เป็นชื่อตัวแปร ชลิบ:พึ่งพาฟิลด์ ที่ไหน พึ่งพาฟิลด์ เป็นเขตพึ่งพา
ชื่อ. ตัวแปรอื่นๆ ที่ขึ้นต้นด้วย ชลิบ: จะถูกลบออกจากไฟล์.
dpkg-shlibdeps มีแหล่งข้อมูลที่เป็นไปได้สองแหล่งเพื่อสร้างข้อมูลการพึ่งพา
แต่ละ สัญลักษณ์ ไฟล์หรือ ชลิบส์ ไฟล์. สำหรับแต่ละเลขฐานสองที่ dpkg-shlibdeps วิเคราะห์มัน
ค้นหารายชื่อไลบรารีที่เชื่อมโยงด้วย จากนั้นสำหรับแต่ละห้องสมุดจะมีลักษณะ
ขึ้นทั้ง สัญลักษณ์ ไฟล์หรือไฟล์ ชลิบส์ ไฟล์ (ถ้าอันแรกไม่มีอยู่หรือ if
debian/shlibs.local มีการพึ่งพาที่เกี่ยวข้อง) ทั้งสองไฟล์ควรจะเป็น
จัดทำโดยแพ็คเกจห้องสมุดและควรจะพร้อมใช้งานเป็น
/var/lib/dpkg/ข้อมูล/แพ็คเกจ.สัญลักษณ์ or /var/lib/dpkg/ข้อมูล/แพ็คเกจ.ชลิบส์. ชื่อแพ็คเกจ
ถูกระบุในสองขั้นตอน: ค้นหาไฟล์ไลบรารีบนระบบ (ดูในสิ่งเดียวกัน
ไดเรกทอรีที่ LD.SO จะใช้) แล้วใช้ dpkg -S ไฟล์ไลบรารี เพื่อค้นหาแพ็คเกจ
ให้ห้องสมุด
สัญลักษณ์ ไฟล์
ไฟล์สัญลักษณ์มีข้อมูลการพึ่งพาที่ละเอียดยิ่งขึ้นโดยระบุค่าต่ำสุด
การพึ่งพาแต่ละสัญลักษณ์ที่ห้องสมุดส่งออก สคริปต์พยายามค้นหาสัญลักษณ์
ไฟล์ที่เชื่อมโยงกับแพ็คเกจไลบรารีในตำแหน่งต่อไปนี้ (ใช้การจับคู่ครั้งแรก):
เดเบียน/*/เดเบียน/สัญลักษณ์
ข้อมูลไลบรารีที่ใช้ร่วมกันที่สร้างขึ้นโดยกระบวนการสร้างปัจจุบันที่เรียกใช้ด้วย
dpkg-shlibdeps. พวกเขาถูกสร้างขึ้นโดย สัญลักษณ์ dpkg-gen(1). ใช้เฉพาะในกรณีที่
พบไลบรารีในแผนผังการสร้างของแพ็คเกจ ไฟล์สัญลักษณ์ในทรีบิลด์นั้น
มีความสำคัญเหนือกว่าไฟล์สัญลักษณ์จากแพ็คเกจไบนารีอื่น ๆ
/etc/dpkg/สัญลักษณ์/แพ็คเกจ.สัญลักษณ์โค้ง
/etc/dpkg/สัญลักษณ์/แพ็คเกจ.สัญลักษณ์
ต่อระบบแทนที่ข้อมูลการพึ่งพาไลบรารีที่ใช้ร่วมกัน โค้ง คือ
สถาปัตยกรรมของระบบปัจจุบัน (ได้มาจาก dpkg-สถาปัตยกรรม -qDEB_HOST_ARCH).
ผลลัพธ์จาก “dpkg-แบบสอบถาม --ควบคุมเส้นทาง แพ็คเกจ สัญลักษณ์”
ข้อมูลการขึ้นต่อกันของไลบรารีที่แบ่งใช้ตามแพ็กเกจที่ให้มา เว้นแต่จะถูกแทนที่โดย
--admindirไฟล์เหล่านั้นจะอยู่ใน /var/lib/dpkg
ขณะสแกนสัญลักษณ์ที่ใช้โดยไบนารีทั้งหมด dpkg-shlibdeps จำ (ที่ใหญ่ที่สุด)
เวอร์ชันขั้นต่ำที่จำเป็นสำหรับแต่ละไลบรารี เมื่อสิ้นสุดกระบวนการก็สามารถเขียน
ออกจากการพึ่งพาน้อยที่สุดสำหรับทุกห้องสมุดที่ใช้ (โดยมีเงื่อนไขว่าข้อมูลของ
สัญลักษณ์ ไฟล์ถูกต้อง)
เพื่อเป็นมาตรการป้องกัน ไฟล์สัญลักษณ์สามารถจัดเตรียม a สร้างขึ้นอยู่กับแพ็คเกจ เมะแท
ช่องข้อมูลและ dpkg-shlibdeps จะแยกเวอร์ชันขั้นต่ำที่ .ต้องการ
แพ็คเกจที่เกี่ยวข้องใน สร้างขึ้นอยู่กับ และใช้เวอร์ชันนี้หากสูงกว่า
เวอร์ชันขั้นต่ำที่คำนวณโดยการสแกนสัญลักษณ์
ชลิบส์ ไฟล์
ไฟล์ Shlibs เชื่อมโยงไลบรารีโดยตรงกับการพึ่งพา (โดยไม่ต้องดูที่
สัญลักษณ์) จึงมักแข็งแกร่งเกินความจำเป็นแต่ปลอดภัยและจัดการได้ง่าย
การอ้างอิงสำหรับไลบรารีถูกค้นหาในหลายที่ ไฟล์แรกที่ให้
ใช้ข้อมูลสำหรับห้องสมุดที่น่าสนใจ:
เดเบียน/shlibs.local
ข้อมูลการขึ้นต่อกันของไลบรารีที่แบ่งใช้แบบแพ็กเกจโลคัล
/etc/dpkg/shlibs.override
ต่อระบบแทนที่ข้อมูลการพึ่งพาไลบรารีที่ใช้ร่วมกัน
เดเบียน/*/เดเบียน/shlibs
ข้อมูลไลบรารีที่ใช้ร่วมกันที่สร้างขึ้นโดยกระบวนการสร้างปัจจุบันที่เรียกใช้ด้วย
dpkg-shlibdeps. ใช้เฉพาะเมื่อพบไลบรารีใน build ของแพ็คเกจ
ต้นไม้. ไฟล์ shlibs ในโครงสร้างบิลด์นั้นมีความสำคัญเหนือกว่าไฟล์ shlibs จาก
แพ็คเกจไบนารีอื่นๆ
ผลลัพธ์จาก “dpkg-แบบสอบถาม --ควบคุมเส้นทาง แพ็คเกจ ชลิบส์”
ข้อมูลการขึ้นต่อกันของไลบรารีที่แบ่งใช้ตามแพ็กเกจที่ให้มา เว้นแต่จะถูกแทนที่โดย
--admindirไฟล์เหล่านั้นจะอยู่ใน /var/lib/dpkg
/etc/dpkg/shlibs.default
ข้อมูลการขึ้นต่อกันของไลบรารีที่ใช้ร่วมกันดีฟอลต์สำหรับแต่ละระบบ
การอ้างอิงที่แยกออกมาจะถูกใช้โดยตรง (ยกเว้นว่าจะถูกกรองออกเพราะ
พวกเขาถูกระบุว่าซ้ำกันหรืออ่อนแอกว่าการพึ่งพาอื่น)
OPTIONS
dpkg-shlibdeps ตีความอาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกเป็นชื่อที่เรียกใช้งานได้ ราวกับว่ามันเคยเป็น
จัดให้เป็น -eปฏิบัติการ.
-eปฏิบัติการ
รวมการพึ่งพาที่เหมาะสมสำหรับไลบรารีที่ใช้ร่วมกันที่ต้องการโดย ปฏิบัติการ.
ตัวเลือกนี้สามารถใช้ได้หลายครั้ง
-lไดเรกทอรี
เพิ่ม ไดเรกทอรี ไปที่รายการไดเร็กทอรีเพื่อค้นหาไลบรารีที่ใช้ร่วมกันส่วนตัว
(ตั้งแต่ dpkg 1.17.0) ตัวเลือกนี้สามารถใช้ได้หลายครั้ง
หมายเหตุ: ใช้ตัวเลือกนี้แทนการตั้งค่า LD_LIBRARY_PATHดั่งสภาพแวดล้อมนั้น
ตัวแปรใช้เพื่อควบคุมตัวเชื่อมโยงรันไทม์และใช้ในทางที่ผิดเพื่อตั้งค่าการแชร์
เส้นทางไลบรารี ณ เวลาสร้างอาจเป็นปัญหาได้เมื่อทำการคอมไพล์ข้าม
-dพึ่งพาฟิลด์
เพิ่มการพึ่งพาที่จะเพิ่มลงในฟิลด์การพึ่งพาไฟล์ควบคุม พึ่งพาฟิลด์.
(การพึ่งพาสำหรับฟิลด์นี้อยู่ในตัวแปร ชลิบ:การพึ่งพาอาศัยกัน-
สนาม.)
การขอ -dพึ่งพาฟิลด์ ตัวเลือกมีผลกับไฟล์เรียกทำงานทั้งหมดหลังจากตัวเลือก
จนถึงตอนต่อไป -dพึ่งพาฟิลด์. ค่าเริ่มต้น พึ่งพาฟิลด์ is ขึ้นอยู่กับ.
หากรายการการพึ่งพาเดียวกัน (หรือชุดทางเลือก) ปรากฏใน .มากกว่าหนึ่งรายการ
ชื่อฟิลด์การพึ่งพาที่รู้จัก ล่วงหน้า, ขึ้นอยู่กับ, แนะนำ, ช่วย or
ชี้ให้เห็นถึง แล้วก็ dpkg-shlibdeps จะลบการพึ่งพาจากทั้งหมดโดยอัตโนมัติ
ยกเว้นช่องที่แสดงถึงการพึ่งพาที่สำคัญที่สุด
-pvarname-คำนำหน้า
เริ่มการแทนที่ตัวแปรด้วย varname-คำนำหน้า: แทน ชลิบ:. ในทำนองเดียวกัน
ตัวแปรทดแทนใดๆ ที่มีอยู่ซึ่งขึ้นต้นด้วย varname-คำนำหน้า: (ค่อนข้างมากกว่า
ชลิบ:) จะถูกลบออกจากไฟล์ตัวแปรการแทนที่
-O[ชื่อไฟล์]
พิมพ์การตั้งค่าตัวแปรการแทนที่เป็นเอาต์พุตมาตรฐาน (หรือ ชื่อไฟล์ หากระบุไว้
ตั้งแต่ dpkg 1.17.2) แทนที่จะเพิ่มลงในไฟล์ตัวแปรทดแทน
(เดเบียน/substvars โดยค่าเริ่มต้น).
-tชนิด ต้องการข้อมูลการพึ่งพาไลบรารีที่ใช้ร่วมกันที่แท็กสำหรับประเภทแพ็คเกจที่กำหนด ถ้า
ไม่มีข้อมูลที่ติดแท็ก ให้กลับไปที่ข้อมูลที่ไม่ได้ติดแท็ก ค่าเริ่มต้น
ประเภทแพ็คเกจคือ หญิงที่เข้าสังคมครั้งแรก. ข้อมูลการพึ่งพาห้องสมุดที่ใช้ร่วมกันถูกแท็กสำหรับ
พิมพ์โดยนำหน้าด้วยชื่อประเภท ทวิภาค และช่องว่าง
-Lไฟล์ shlibs ท้องถิ่น
อ่านแทนที่ข้อมูลการพึ่งพาไลบรารีที่ใช้ร่วมกันจาก ไฟล์ shlibs ท้องถิ่น
แทน เดเบียน/shlibs.local.
-Tไฟล์ substvars
เขียนตัวแปรทดแทนใน ไฟล์ substvars; ค่าเริ่มต้นคือ เดเบียน/substvars.
-v เปิดใช้งานโหมด verbose (ตั้งแต่ dpkg 1.14.8) ข้อความจำนวนมากจะแสดงถึง
อธิบายอะไร dpkg-shlibdeps ไม่
-xแพ็คเกจ
แยกแพ็คเกจออกจากการพึ่งพาที่สร้างขึ้น (ตั้งแต่ dpkg 1.14.8) นี่คือ
มีประโยชน์เพื่อหลีกเลี่ยงการพึ่งพาตนเองสำหรับแพ็คเกจที่ให้ไบนารีของ ELF
(ไฟล์เรียกทำงานหรือปลั๊กอินไลบรารี) โดยใช้ไลบรารีที่อยู่ในแพ็คเกจเดียวกัน
สามารถใช้ตัวเลือกนี้ได้หลายครั้งเพื่อแยกหลายแพ็คเกจ
-Sแพ็คเกจสร้าง-dir
มองเข้าไปใน แพ็คเกจสร้าง-dir ครั้งแรกเมื่อพยายามค้นหาห้องสมุด (ตั้งแต่ dpkg
1.14.15). สิ่งนี้มีประโยชน์เมื่อแพ็คเกจต้นทางสร้างหลายรสชาติของ
ไลบรารีเดียวกันและคุณต้องการให้แน่ใจว่าคุณได้รับการขึ้นต่อกันจากไบนารีที่กำหนด
บรรจุุภัณฑ์. คุณสามารถใช้ตัวเลือกนี้ได้หลายครั้ง: ไดเร็กทอรีจะถูกลองในไดเร็กทอรี
ลำดับเดียวกันก่อนไดเรกทอรีของแพ็คเกจไบนารีอื่นๆ
--ignore-ขาดหายไปข้อมูล
อย่าล้มเหลวหากไม่พบข้อมูลการพึ่งพาสำหรับไลบรารีที่ใช้ร่วมกัน (ตั้งแต่
dpkg 1.14.8) ไม่แนะนำให้ใช้ตัวเลือกนี้ ห้องสมุดทั้งหมดควรจัดเตรียมให้
ข้อมูลการพึ่งพา (ไม่ว่าจะเป็นไฟล์ shlibs หรือไฟล์สัญลักษณ์) แม้ว่า
ยังไม่ได้ใช้ในแพ็คเกจอื่น
--คำเตือน=ความคุ้มค่า
ความคุ้มค่า เป็นบิตฟิลด์ที่กำหนดชุดของคำเตือนที่สามารถปล่อยออกมาโดย
dpkg-shlibdeps (ตั้งแต่ dpkg 1.14.17) บิต 0 (ค่า = 1) เปิดใช้งานการเตือน “สัญลักษณ์
ซิม ใช้โดย ไบนารี ไม่พบในไลบรารีใด ๆ” บิต 1 (ค่า = 2) ช่วยให้
คำเตือน "แพ็คเกจสามารถหลีกเลี่ยงการพึ่งพาที่ไม่มีประโยชน์" และบิต 2 (ค่า = 4) เปิดใช้งาน
คำเตือน "ไบนารี ไม่ควรโยงกับ ห้องสมุด” ค่าเริ่มต้น ความคุ้มค่า คือ 3: the
คำเตือนสองรายการแรกเปิดใช้งานโดยค่าเริ่มต้น คำเตือนสุดท้ายไม่ทำงาน ชุด ความคุ้มค่า ถึง 7 if
คุณต้องการให้คำเตือนทั้งหมดทำงาน
--ผู้ดูแลระบบ=dir
เปลี่ยนที่ตั้งของ dpkg ฐานข้อมูล (ตั้งแต่ dpkg 1.14.0) ตำแหน่งเริ่มต้น
is /var/lib/dpkg.
-?, --ช่วยด้วย
แสดงข้อความการใช้งานและออก
--รุ่น
แสดงเวอร์ชันและออก
วินิจฉัย
คำแนะนำ:
ตั้งแต่ dpkg-shlibdeps วิเคราะห์ชุดของสัญลักษณ์ที่ใช้โดยแต่ละไบนารีของที่สร้างขึ้น
แพ็กก็สามารถส่งคำเตือนได้หลายกรณี พวกเขาแจ้งให้คุณทราบถึงสิ่งที่สามารถ
ปรับปรุงให้ดีขึ้นในแพ็คเกจ ในกรณีส่วนใหญ่ การปรับปรุงเหล่านั้นเกี่ยวข้องกับแหล่งต้นน้ำ
โดยตรง. ตามลำดับความสำคัญที่ลดลง นี่คือคำเตือนต่างๆ ที่คุณทำได้
เผชิญ:
เครื่องหมาย ซิม มือสอง by ไบนารี พบ in ไม่มี of ห้องสมุด
ไม่พบสัญลักษณ์ที่ระบุในไลบรารีที่เชื่อมโยงกับไบนารี
การขอ ไบนารี น่าจะเป็นห้องสมุดและจำเป็นต้องเชื่อมโยงกับส่วนเพิ่มเติม
ไลบรารีระหว่างกระบวนการสร้าง (ตัวเลือก -lห้องสมุด ของลิงเกอร์)
ไบนารี มี an แก้ไม่ได้ การอ้างอิง ไปยัง เครื่องหมาย ซิม: มัน อาจ a เสียบเข้าไป
ไม่พบสัญลักษณ์ที่ระบุในไลบรารีที่เชื่อมโยงกับไบนารี
การขอ ไบนารี น่าจะเป็นปลั๊กอินและสัญลักษณ์นี้อาจมีให้โดย
โปรแกรมที่โหลดปลั๊กอินนี้ ตามทฤษฎีแล้ว ปลั๊กอินไม่มี SONAME แต่นี่
ไบนารีมีหนึ่งอันและไม่สามารถระบุได้อย่างชัดเจน
อย่างไรก็ตาม ความจริงที่ว่าไบนารีถูกเก็บไว้ในไดเร็กทอรีที่ไม่ใช่แบบสาธารณะนั้นแข็งแกร่ง
บ่งชี้ว่าไม่ใช่ไลบรารีที่ใช้ร่วมกันทั่วไป ถ้าเลขฐานสองเป็น a . จริงๆ
ปลั๊กอินแล้วละเว้นคำเตือนนี้ แต่ก็มีความเป็นไปได้เสมอที่จะเป็น
ไลบรารีจริงและโปรแกรมที่ลิงก์ไปนั้นใช้ RPATH เพื่อให้ไดนามิก
ตัวโหลดพบมัน ในกรณีนั้น ห้องสมุดเสียและจำเป็นต้องแก้ไข
แพ็คเกจ ได้ หลีกเลี่ยง a ไร้ประโยชน์ เมืองขึ้น if ไบนารี คือ ไม่ ที่เชื่อมโยง กับ ห้องสมุด (มัน ใช้
ไม่มี of ห้องสมุด สัญลักษณ์)
ไม่มี ไบนารี ที่เชื่อมโยงกับ ห้องสมุด ใช้สัญลักษณ์ใด ๆ ที่ให้ไว้
โดยห้องสมุด โดยการแก้ไขไบนารีทั้งหมด คุณจะหลีกเลี่ยงการพึ่งพา
เชื่อมโยงกับไลบรารีนี้ (เว้นแต่ว่าการพึ่งพาเดียวกันจะถูกสร้างขึ้นโดย another
ห้องสมุดที่มีการใช้งานจริง)
แพ็คเกจ ได้ หลีกเลี่ยง a ไร้ประโยชน์ เมืองขึ้น if ไบนารี คือ ไม่ ที่เชื่อมโยง กับ ห้องสมุด (พวกเขา
ใช้ ไม่มี of ห้องสมุด สัญลักษณ์)
เหมือนกับคำเตือนด้านบน แต่สำหรับไบนารีหลายรายการ
ไบนารี น่า ไม่ be ที่เชื่อมโยง กับ ห้องสมุด (มัน ใช้ ไม่มี of ห้องสมุด สัญลักษณ์)
การขอ ไบนารี เชื่อมโยงกับห้องสมุดที่ไม่ต้องการ ไม่ใช่ปัญหาแต่บางอย่าง
การปรับปรุงประสิทธิภาพเล็กน้อยในเวลาในการโหลดไบนารีสามารถทำได้โดยไม่ต้องเชื่อมโยง
ห้องสมุดนี้เป็นเลขฐานสองนี้ คำเตือนนี้ตรวจสอบข้อมูลเดียวกันกับ
อันก่อนหน้าแต่ทำกับไบนารีแต่ละตัวแทนที่จะทำการตรวจสอบทั่วโลกในทั้งหมด
ไบนารีวิเคราะห์
ข้อผิดพลาด
dpkg-shlibdeps จะล้มเหลวหากไม่พบห้องสมุดสาธารณะที่ใช้โดยไบนารีหรือถ้าสิ่งนี้
ไลบรารีไม่มีข้อมูลการพึ่งพาที่เกี่ยวข้อง (ไฟล์ shlibs หรือไฟล์สัญลักษณ์) NS
ห้องสมุดสาธารณะมี SONAME และมีเวอร์ชัน (libsomething.so.X). ห้องสมุดส่วนตัว (like
ปลั๊กอิน) ไม่ควรมี SONAME และไม่จำเป็นต้องมีเวอร์ชัน
ทำไม่ได้ พบ ห้องสมุด ห้องสมุด-soname จำเป็น by ไบนารี (ของมัน ราพาธ is 'เส้นทาง')
การขอ ไบนารี ใช้ห้องสมุดชื่อ ห้องสมุด-soname แต่ dpkg-shlibdeps ไม่สามารถ
เพื่อค้นหาห้องสมุด dpkg-shlibdeps สร้างรายการไดเรกทอรีเพื่อตรวจสอบเป็น
ต่อไปนี้: ไดเร็กทอรีที่แสดงรายการใน RPATH ของไบนารี ไดเร็กทอรีที่อยู่ใน
/etc/ld.so.conf, ไดเร็กทอรีที่เพิ่มโดย -l ตัวเลือกไดเร็กทอรีที่ระบุไว้ใน
LD_LIBRARY_PATH ตัวแปรสภาพแวดล้อม และไดเร็กทอรีสาธารณะมาตรฐาน (/ lib,
/ usr / lib, /lib32, / usr / lib32, /lib64, /usr/lib64) จากนั้นจะตรวจสอบไดเรกทอรีเหล่านั้น
ในแผนผังการสร้างของแพ็คเกจของไบนารีที่กำลังวิเคราะห์ ใน build . ของแพ็คเกจ
ต้นไม้ที่ระบุด้วย -S ตัวเลือกบรรทัดคำสั่งในแผนผังการสร้างแพ็คเกจอื่น
ที่มีไฟล์ DEBIAN/shlibs หรือ DEBIAN/symbols และสุดท้ายอยู่ใน root
ไดเร็กทอรี. หากไม่พบไลบรารี่ในไดเร็กทอรีเหล่านั้น คุณจะได้รับ
ข้อผิดพลาดนี้
หากไม่พบไลบรารี่อยู่ในไดเร็กทอรีส่วนตัวของแพ็คเกจเดียวกัน แสดงว่าคุณ
ต้องการเพิ่มไดเร็กทอรีด้วย -l. ถ้ามันอยู่ในแพ็คเกจไบนารีอื่นที่ถูกสร้างขึ้น
คุณต้องแน่ใจว่าไฟล์ shlibs/symbols ของแพ็คเกจนี้มีอยู่แล้ว
สร้างขึ้นและนั่น -l มีไดเร็กทอรีที่เหมาะสมหากอยู่ในไดเร็กทอรีส่วนตัว
ไดเรกทอรี
ไม่ เมืองขึ้น ข้อมูล พบ สำหรับ ไฟล์ไลบรารี (ใช้แล้ว by ไบนารี).
ห้องสมุดที่ต้องการโดย ไบนารี ถูกค้นพบโดย dpkg-shlibdeps in ไฟล์ไลบรารี แต่
dpkg-shlibdeps ไม่พบข้อมูลการพึ่งพาใด ๆ สำหรับห้องสมุดนั้น
เพื่อค้นหาการพึ่งพา ได้พยายามแมปไลบรารีกับแพ็คเกจ Debian
ด้วยความช่วยเหลือของ dpkg -S ไฟล์ไลบรารี. จากนั้นก็ตรวจสอบ shlibs . ที่เกี่ยวข้อง
และไฟล์สัญลักษณ์ใน /var/lib/dpkg/ข้อมูล/, และในต้นไม้สร้างของแพ็คเกจต่างๆ
(เดเบียน/*/เดเบียน/)
ความล้มเหลวนี้อาจเกิดจากไฟล์ shlibs หรือสัญลักษณ์ที่ไม่ถูกต้องหรือหายไปในไฟล์
แพ็คเกจของห้องสมุด มันอาจเกิดขึ้นได้เช่นกันหากห้องสมุดถูกสร้างขึ้นภายใน
แพ็คเกจต้นทางเดียวกันและหากยังไม่ได้สร้างไฟล์ shlibs (ในกรณีนี้
คุณต้องแก้ไขเดเบียน/กฎเพื่อสร้าง shlibs ก่อนโทร dpkg-shlibdeps). แย่
RPATH ยังสามารถนำไปสู่การค้นพบไลบรารีภายใต้ชื่อที่ไม่เป็นที่ยอมรับ (ตัวอย่าง:
/usr/lib/openoffice.org/../lib/libssl.so.0.9.8 แทน /usr/lib/libssl.so.0.9.8)
ที่ไม่เกี่ยวข้องกับแพ็คเกจใดๆ dpkg-shlibdeps พยายามที่จะแก้ไขปัญหานี้โดย
พยายามใช้ทางเลือกแทนชื่อบัญญัติ (โดยใช้ เส้นทางจริง(3)) แต่อาจจะไม่เสมอไป
งาน. เป็นการดีที่สุดที่จะล้าง RPATH ของไบนารีเพื่อหลีกเลี่ยงปัญหา
การเรียกร้อง dpkg-shlibdeps ในโหมด verbose (-v) จะให้ข้อมูลเพิ่มเติม
เกี่ยวกับตำแหน่งที่พยายามค้นหาข้อมูลการพึ่งพา สิ่งนี้อาจมีประโยชน์ถ้า
คุณไม่เข้าใจว่าทำไมมันถึงทำให้คุณเกิดข้อผิดพลาดนี้
ใช้ dpkg-shlibdeps ออนไลน์โดยใช้บริการ onworks.net
