Як дізнатися, до якого (не встановленого) пакету 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приймає команду 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«S searchкоманда може перевірити списки файлів при використанні з -fопцією.

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

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

Webpin пропонує рішення на базі веб-сторінок , є навіть сценарій для командного рядка.

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$'. Він працює, тому що відфільтровує все, що закінчується "протоколом". Звичайно, ви повинні замінити "протокол" тим, що ви шукаєте.
Люк

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 (друга форма " Пошук вмісту пакетів " ).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.