มินิบทช่วยสอนสั้น ๆ นี้ปรากฏเป็น ตอบสนองต่อความกังวลของผู้อ่านคนหนึ่งของเราเฟลิเป้ใครเขียนถึงเราถามว่า: «ฉันจะรู้ได้อย่างไรว่าแอปพลิเคชันใดใช้ Java«. ฉันไม่คิดว่าจะมีวิธีรู้ แต่มีวิธีง่ายๆที่จะรู้ แพ็กเกจใด (นั่นคือแอปพลิเคชันใด) ที่แสดงรายการในที่เก็บจะขึ้นอยู่กับแพ็คเกจ JAVA. สามารถใช้วิธีเดียวกันนี้กับแพ็กเกจอื่น ๆ ได้เช่นเพื่อค้นหาว่าแอปพลิเคชันใดขึ้นอยู่กับ MONO. |
สิ่งที่พบบ่อยที่สุดคือต้องการค้นหาว่าต้องติดตั้งแพ็คเกจอะไรอีกบ้างเพื่อให้แพ็คเกจ X ทำงานได้ดี แพ็กเกจที่ต้องการเหล่านี้เรียกว่าการอ้างอิงและสามารถค้นหาได้ดังนี้:
apt-cache ขึ้นอยู่กับแพ็คเกจของฉัน
คุณยังสามารถไปที่ Synaptic ค้นหาแพ็คเกจทำ คลิกขวาที่มัน> Properties> Dependencies.
อย่างไรก็ตามวัตถุประสงค์ของโพสต์นี้คือการค้นหาสิ่งที่ตรงกันข้าม: แพ็คเกจใดที่มีแพ็คเกจ X เป็นแบบพึ่งพา กล่าวอีกนัยหนึ่งในกรณีนี้เรารู้จักแพ็กเกจ "แม่" และเราต้องการทราบว่าแพ็กเกจอื่น ๆ ต้องการให้แพ็กเกจ "แม่" นี้ติดตั้งใช้งานได้อย่างไร
มาดูตัวอย่างเพื่อทำความเข้าใจเรื่องนี้ให้ดีขึ้น มาดูวิธีตรวจจับแพ็คเกจที่ขึ้นอยู่กับแพ็คเกจ openjdk-6-jre กล่าวอีกนัยหนึ่งวิธีตรวจจับแอปพลิเคชันเหล่านั้นที่แสดงรายการในที่เก็บที่ขึ้นอยู่กับ JAVA
ฉันเปิดเทอร์มินัลและเขียนว่า:
apt-cache rd ขึ้นอยู่กับ openjdk-6-jre
รายการแพ็กเกจยาว ๆ จะปรากฏขึ้นรวมถึง OpenOffice, FreeMind, OpenCol และอื่น ๆ
วิธีการค้นหา "แม่" แพคเกจที่ถูกต้อง?
ตกลงง่ายมาก แต่ฉันจะค้นหาแพ็คเกจ "แม่" ตามที่ฉันควรค้นหาได้อย่างไร สิ่งนี้ต้องใช้ความเชี่ยวชาญและการวิเคราะห์ก่อน
สมมติว่าฉันต้องการทราบแอปพลิเคชันที่ใช้ MONO ทั้งหมด ในกรณีนั้นสิ่งที่ฉันทำคือมองหาการอ้างอิงของแอปพลิเคชัน (GBrainy) ที่ฉันรู้ว่าใช้ MONO และจากนั้นตรวจจับแพ็คเกจ "แม่" และมองหาการอ้างอิงผกผัน Uff ดูเหมือนยาก แต่มันเป็นเรื่องไร้สาระ
ฉันเปิดเทอร์มินัลและเขียนว่า:
apt-cache ขึ้นอยู่กับ gbrainy
ผลลัพธ์มีดังนี้:
ขึ้นอยู่กับ: โมโนรันไทม์
| ขึ้นอยู่กับ: libc6
| ขึ้นอยู่กับ: libc6.1
ขึ้นอยู่กับ: libc0.1
ขึ้นอยู่กับ: libglib2.0-cil
ขึ้นอยู่กับ: libgtk2.0-0
ขึ้นอยู่กับ: libgtk2.0-cil
ขึ้นอยู่กับ: liblaunchpad-integration1.0-cil
ขึ้นอยู่กับ: libmono-addins-gui0.2-cil
ขึ้นอยู่กับ: libmono-addins0.2-cil
ขึ้นอยู่กับ: libmono-cairo2.0-cil
ขึ้นอยู่กับ: libmono-corlib2.0-cil
ขึ้นอยู่กับ: libmono-posix2.0-cil
ขึ้นอยู่กับ: libmono-system2.0-cil
ขึ้นอยู่กับ: librsvg2-2
ขึ้นอยู่กับ: mono-csharp-shell
สำหรับฉันแล้วดูเหมือนว่า mono-runtime อาจเป็นตัวเลือกที่ดีดังนั้นฉันจึงตัดสินใจค้นหาแพ็คเกจทั้งหมดที่ขึ้นอยู่กับ mono-runtime:
apt-cache rd ขึ้นอยู่กับ mono-runtime
โวลา! แพ็กเกจทั้งหมดที่ใช้ MONO จะปรากฏขึ้น
หากต้องการดูรายการแพ็คเกจทั้งหมดที่ขึ้นอยู่กับแพ็คเกจ MONO เราสามารถเขียน:
apt-cache rd ขึ้นอยู่กับโมโน *
ขอบคุณสำหรับการตอบรับ Pablo และขอบคุณสำหรับโพสต์🙂
Pablo คุณคือไอดอลของฉัน!
โพสต์ที่ยอดเยี่ยม
เยี่ยมมาก! ขอบคุณสำหรับข้อมูล!
สำหรับพวกเราที่ใช้การแจกแจงขั้นต้น…………
สำหรับผู้ที่ใช้โปรแกรมจัดการแพ็คเกจที่ใช้ RPM คำสั่งนี้จะใช้
rpm -qR แพ็คเกจ
ตัวอย่าง:
linux @ dhcppc3: ~> รอบต่อนาที -qR xmms
bin / sh /
bin / sh /
rpmlib (PayloadFilesHavePrefix) <= 4.0-1
rpmlib (CompressedFileNames) <= 3.0.4-1
libICE.so.6
libSM.so.6
libX11.so.6
libXxf86vm.so.1
libc.so.6
libc.so.6 (GLIBC_2.0)
libc.so.6 (GLIBC_2.1)
libc.so.6 (GLIBC_2.3)
libc.so.6 (GLIBC_2.3.4)
libc.so.6 (GLIBC_2.4)
libc.so.6 (GLIBC_2.7)
libdl.so.2
libdl.so.2 (GLIBC_2.0)
libdl.so.2 (GLIBC_2.1)
libgdk-1.2.so.0
libglib-1.2.so.0
libgthread-1.2.so.0
libgtk-1.2.so.0
libpthread.so.0
libpthread.so.0 (GLIBC_2.0)
libpthread.so.0 (GLIBC_2.1)
libpthread.so.0 (GLIBC_2.3.2)
libxmms.so.1
rpmlib (PayloadIsLzma) <= 4.4.6-1