จะหาไฟล์ที่ไม่ได้ติดตั้งแพคเกจ Debian ได้อย่างไร?


41

ในระบบ Debian (และอนุพันธ์):

$ dpkg --search /bin/ls
coreutils: /bin/ls

นั่นคือไฟล์/bin/lsเป็นแพคเกจ Debian coreutilsชื่อ

แต่จะทำงานได้ก็ต่อเมื่อมีการติดตั้งแพ็คเกจ เกิดอะไรขึ้นถ้ามันไม่ได้?

คำตอบ:


58

apt-ไฟล์

apt-fileมีคุณสมบัติในการค้นหาแพคเกจที่มีไบนารี (เช่นDebianหรือUbuntu ) ซึ่งไม่ได้ติดตั้งเป็นค่าเริ่มต้น แต่อยู่ในที่เก็บ

apt-file search <path-to-file>

คุณอาจต้องการอัปเดตหนึ่งครั้งก่อนค้นหา ...

apt-file update 

ตัวอย่างเช่นลองค้นหาไบนารีที่ไม่ได้ติดตั้งmysqldump:

$ apt-file search /usr/bin/mysqldump

mysql-client-5.1: /usr/bin/mysqldump
mysql-client-5.1: /usr/bin/mysqldumpslow
mysql-cluster-client-5.1: /usr/bin/mysqldump
mysql-cluster-client-5.1: /usr/bin/mysqldumpslow

เป็นไปได้ที่จะแสดงรายการเนื้อหาของแพ็คเกจ (ไม่ได้ติดตั้ง):

$ apt-file list mysql-client-5.1

mysql-client-5.1: /usr/bin/innochecksum
mysql-client-5.1: /usr/bin/innotop
mysql-client-5.1: /usr/bin/myisam_ftdump
mysql-client-5.1: /usr/bin/mysql_client_test
...

yum

yumยอมรับคำสั่งwhatprovides(หรือprovides) เพื่อค้นหาไบนารีที่ติดตั้งหรือไม่ได้ติดตั้ง:

yum whatprovides <path-to-file>

อีกครั้งไม่ได้ติดตั้งmysqldump:

$ yum whatprovides /usr/bin/mysqldump

mysql-5.1.51-2.fc14.i686 : MySQL client programs and shared libraries
Repo        : fedora
Matched from: 
Filename    : /usr/bin/mysqldump

mysql-5.1.51-1.fc14.i686 : MySQL client programs and shared libraries
Repo        : fedora
Matched from: 
Filename    : /usr/bin/mysqldump

zypper

zypper's searchคำสั่งสามารถตรวจสอบรายชื่อไฟล์เมื่อใช้ร่วมกับ-fตัวเลือก

zypper se -f /bin/mksh
Loading repository data...
Reading installed packages...

S | Name | Summary           | Type   
--+------+-------------------+--------
  | mksh | MirBSD Korn Shell | package

Webpin นำเสนอโซลูชัน webbased มีแม้แต่สคริปต์สำหรับบรรทัดคำสั่ง

pkgfile

พร้อมใช้งานpkgtoolsสำหรับpacmanระบบพื้นฐาน แสดงคุณลักษณะการค้นหาที่คล้ายกันเหมือนกับที่อยู่ด้านบน:

$ pkgfile -si /usr/bin/mysqldump

Name      : mysql-clients
Version   : 5.1.54-1
Url       : http://www.mysql.com/
License   : GPL
Depends   : libmysqlclient
...

apt-file search protocตัวอย่างเช่นให้ผลลัพธ์มากกว่าหกพันรายการ แต่จบผลในชื่อไฟล์จึงมี grep apt-file search protoc | grep 'protoc$'คุณจริงสามารถค้นหาชื่อไฟล์ที่คุณกำลังมองหา: มันใช้งานได้เพราะกรองสิ่งที่ลงท้ายด้วย "protoc" แน่นอนคุณควรแทนที่ "protoc" ด้วยสิ่งที่คุณกำลังค้นหา
ลัค

5

เครื่องมือมาตรฐานสำหรับเรื่องนี้คือapt-ไฟล์ รันapt-file updateเพื่อดาวน์โหลดไฟล์ดัชนี นี่คือผลลัพธ์:

Downloading complete file ftp://ftp.is.co.za/debian/dists/squeeze/Contents-i386.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16.6M  100 16.6M    0     0  33191      0  0:08:47  0:08:47 --:--:-- 38951

apt-file search search_termหลังจากที่ทำงาน


3

หากคุณไม่สามารถเข้าถึงเครื่องหรือไม่สามารถใช้คำสั่งที่ให้ไว้ในคำตอบก่อนหน้านี้คุณสามารถค้นหาสิ่งนี้ได้โดยใช้เครื่องมือค้นหาบนเว็บแพ็คเกจ Debian (รูปแบบที่สอง " ค้นหาเนื้อหาของแพ็คเกจ " )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.