อะไรคือคำสั่งที่จะแสดงว่า rpms สามารถให้ไฟล์ใดไฟล์หนึ่ง: rpm ที่ให้ไฟล์ที่ติดตั้งแล้วหรือ rpms ที่สามารถให้ไฟล์ที่ไม่ได้ติดตั้งไว้?
อะไรคือคำสั่งที่จะแสดงว่า rpms สามารถให้ไฟล์ใดไฟล์หนึ่ง: rpm ที่ให้ไฟล์ที่ติดตั้งแล้วหรือ rpms ที่สามารถให้ไฟล์ที่ไม่ได้ติดตั้งไว้?
คำตอบ:
สำหรับไฟล์ / แพ็คเกจที่ติดตั้งแล้ว:
[jb @ smokey ~] $ rpm -qf / etc / sudoers sudo-1.6.9p13-8.fc9.x86_64
สำหรับไฟล์และแพ็คเกจที่ยังไม่ได้ติดตั้ง:
[jb @ smokey ~] $ yum whatprovides "/ etc / sudoers" sudo-1.6.9p13-8.fc9.x86_64: อนุญาตการเข้าถึงรูทที่ จำกัด สำหรับผู้ใช้ที่ระบุ Repo: updates-newkey จับคู่จาก: ชื่อไฟล์: / etc / sudoers sudo-1.6.9p13-4.fc9.x86_64: อนุญาตการเข้าถึงรูทแบบ จำกัด สำหรับผู้ใช้ที่ระบุ Repo: fedora จับคู่จาก: ชื่อไฟล์: / etc / sudoers sudo-1.6.9p13-8.fc9.x86_64: อนุญาตการเข้าถึงรูทที่ จำกัด สำหรับผู้ใช้ที่ระบุ Repo: ติดตั้งแล้ว จับคู่จาก: อื่น ๆ : มอบการจับคู่: / etc / sudoers
โปรดทราบว่า "yum whatprovides" เป็นรูปแบบที่ตรงกันดังนั้นหากคุณไม่แน่ใจว่าไฟล์ที่คุณกำลังค้นหาจะอยู่ในโครงสร้างไดเรกทอรีเพียงแค่ล้อมรอบด้วยเครื่องหมายคำพูดและเครื่องหมายดอกจัน:
ยำ whatprovides "* foo *"
ในทำนองเดียวกันหากคุณแน่ใจว่าสิ่งที่คุณกำลังมองหาเป็นไบนารีที่คุณสามารถทำได้:
ยำ whatprovides "* bin / foo"
ฉันไม่รู้เกี่ยวกับไฟล์ที่ยังไม่ได้ติดตั้ง แต่สำหรับไฟล์ที่ติดตั้งแล้วคุณสามารถใช้ rpm -qif:
รอบต่อนาที -qif / bin / ls ชื่อ: coreutils การย้ายที่ตั้ง: (ไม่สามารถเปลี่ยนตำแหน่งได้) รุ่น: 5.97 ผู้จัดจำหน่าย: Red Hat, Inc. เผยแพร่: 23.el5 วันที่สร้าง: จ. 13 ก.ค. 2009, 04:21:27 น. MDT วันที่ติดตั้ง: ศุกร์ 11 ก.ย. 2009, 04:46:01 น. MDT Build โฮสต์: hs20-bc1-7.build.redhat.com กลุ่ม: สภาพแวดล้อมของระบบ / แหล่งที่มาของฐาน RPM: coreutils-5.97-23.el5.src.rpm ขนาด: 9053874 ใบอนุญาต: GPLv2 + ลายเซ็น: DSA / SHA1, อังคาร 28 กรกฎาคม 2009 03:42:40 น. MDT, รหัสกุญแจ 5326810137017186 ผู้ทำแพ็คเกจ: Red Hat, Inc. URL: สรุป: อรรถประโยชน์หลักของ GNU: ชุดเครื่องมือที่ใช้กันโดยทั่วไปในเชลล์สคริปต์ คำอธิบาย: นี่คืออรรถประโยชน์หลักของ GNU แพ็คเกจนี้เป็นการรวมกันของ ชุดไฟล์ GNU เก่า sh-utils และชุดข้อความ textutilsหากคุณดาวน์โหลด RPM คุณสามารถสอบถามเพื่อดูว่าจะติดตั้งอะไร:
rpm -qilp ./Server/jzlib-1.0.7-4jpp.1.i386.rpm เตือน: ./Server/jzlib-1.0.7-4jpp.1.i386.rpm: Header V3 DSA signature: NOKEY, รหัสคีย์ 37017186 ชื่อ: jzlib การย้ายที่ตั้ง: (ไม่สามารถเปลี่ยนตำแหน่งได้) รุ่น: 1.0.7 ผู้ขาย: Red Hat, Inc. วันวางจำหน่าย: 4jpp.1 วันที่สร้าง: อ. 08 ส.ค. 2549 12:10:03 น. MDT วันที่ติดตั้ง: (ไม่ได้ติดตั้ง) Build Host: hs20-bc1-6.build.redhat.com กลุ่ม: การพัฒนา / ไลบรารี / Java Source RPM: jzlib-1.0.7-4jpp.1.src.rpm ขนาด: 280436 ใบอนุญาต: สไตล์ BSD ลายเซ็น: DSA / SHA1, พฤ. 18 ม.ค. 2550 08:49:50 น. MST, รหัสกุญแจ 5326810137017186 ผู้ทำแพ็คเกจ: Red Hat, Inc. URL: สรุป: JZlib นำ zlib กลับมาใช้ใหม่ในจาวาบริสุทธิ์ คำอธิบาย: zlib ได้รับการออกแบบให้ใช้งานได้ฟรีโดยไม่มีวัตถุประสงค์ทั่วไป - นั่นคือไม่ครอบคลุมโดยสิทธิบัตรใด ๆ - การบีบอัดข้อมูลแบบไม่สูญเสีย ไลบรารี่สำหรับใช้กับฮาร์ดแวร์คอมพิวเตอร์และระบบปฏิบัติการ zlib เขียนโดย Jean-loup Gailly (การบีบอัด) และ Mark Adler (บีบอัด) /usr/lib/gcj/jzlib/jzlib-1.0.7.jar.db /usr/lib/gcj/jzlib/jzlib-1.0.7.jar.so /usr/share/doc/jzlib-1.0.7 /usr/share/doc/jzlib-1.0.7/LICENSE.txt /usr/share/java/jzlib-1.0.7.jar /usr/share/java/jzlib.jarคุณสามารถละเว้น "-i" จากตัวเลือกหากคุณไม่สนใจที่จะเห็นข้อมูลทั้งหมดเกี่ยวกับ RPM
ในที่เก็บแบบยำคุณสามารถลองทำสิ่งที่ชอบ yum provides */filename
afaik, มันเป็นไปไม่ได้กับรอบต่อนาทีที่บริสุทธิ์ rpm นำเสนอตัวเลือกนี้สำหรับแพ็คเกจที่ติดตั้งไว้--whatprovides
เท่านั้น
เมื่อคุณสามารถใช้ yum ได้ลองyum provides <filename>
ค้นหาในที่เก็บ
หากคุณไม่ต้องการ (หรือไม่สามารถ) ใช้ yum (เช่นบนเครื่องออฟไลน์) คุณสามารถค้นหาภายใน RPM ที่ไม่ได้ติดตั้งได้โดยทำ
# rpm -qp --filesbypkg *rpms-to-search-in* | grep *file-to-search-for*
สิ่งนี้อาจใช้เวลาสักครู่ดังนั้นโปรดอดใจรอเมื่อค้นหาระหว่าง * .rpm ในที่เก็บขนาดใหญ่เช่นดีวีดีติดตั้งเป็นต้น แต่ต่างจาก "-qpl", "-qp --filesbypkg" จะแสดงรายการไฟล์และ RPM ที่มันเป็นเจ้าของตัวอย่างเช่น:
# rpm -qpl p*.rpm|grep libpq.so.4
/usr/lib/libpq.so.4
/usr/lib64/libpq.so.4
# rpm -qp --filesbypkg p*.rpm|grep libpq.so.4
postgresql-libs /usr/lib/libpq.so.4
postgresql-libs /usr/lib64/libpq.so.4
ซึ่งในกรณีนี้ความซ้ำซ้อนที่ชัดเจนนั้นเกิดจากการปรากฏตัวของแพ็กเกจ i386 และ x86_64 (ทำให้ชัดเจนจากสตริง "lib64")
ฉันกลัวว่าฉันไม่แน่ใจว่าจะทำอย่างไรกับ RPMS แต่ด้วย Debian และ Ubuntu คุณสามารถใช้โปรแกรมได้ apt-file