Как найти пакет, который предоставляет файл?

Если у вас есть графическая карта Nvidia и используются проприетарные драйверы, утилита nvidia-settings предоставляет отличный способ настройки нескольких мониторов с их конфигурацией «twinview».

Twinview отлично работает для большинства приложений , хотя, как известно, они вызывают проблемы с играми с полным экраном. Если вы не используете свою систему для игр и имеете карту Nvidia, я бы рекомендовал попробовать ее.

Примечание: вам придется запускать ее с правами root (gksudo nvidia-settings). если вы хотите применить настройки в утилите.

1
задан 22 January 2014 в 08:20

6 ответов

Команда apt-file может сделать это для вас из командной строки. Я часто использую его при создании пакетов из исходного кода.

Для установки apt-file выполните следующие действия:

sudo apt-get install apt-file

Затем вам нужно обновить его базу данных:

apt-file update

И, наконец, искать файл:

$ apt-file find kwallet.h
kdelibs5-dev: /usr/include/kwallet.h
libkf5wallet-dev: /usr/include/KF5/KWallet/kwallet.h

Однако гораздо более дружелюбным способом является использование apt-file [!d1 ] Веб-сайт. Они имеют возможность «искать содержимое пакетов» для определенного имени файла.

173
ответ дан 29 May 2018 в 13:03
  • 1
    По-моему, это должен быть принятый ответ. Но в ответ на Ubuntu Packages Search я могу утверждать, что программа оболочки эта простая чрезвычайно дружелюбна и легко запоминается (как только вы это знаете). Если вы используете dpkg, apt-get или aptitude в качестве стандартных инструментов, нет ничего дружего в том, чтобы запускать Chrome для работы в Интернете! – user2097818 1 April 2016 в 09:00
  • 2
    @ user2097818 Причина, по которой это не принятый ответ, заключается в том, что мой основной вопрос ограничен файлами в системе и установленными пакетами. apt-file часто находит ложные срабатывания, то есть пакеты, которые не установлены. Конечно, этот ответ отлично подходит для «бонусного вопроса». – David Z 4 April 2018 в 02:36
  • 3
    Для тех, кто со стороны Redhat мира - apt-file search <> является самым близким аналогом dnf/yum whatprovides <>. – ffledgling 29 April 2018 в 23:14

Также есть apt-файл для поиска файлов в пакетах, которые не установлены. Например:

apt-file list packagename
31
ответ дан 29 May 2018 в 13:03

Вы можете искать содержимое пакетов, включенных в различные выпуски Ubuntu на веб-сайте Ubuntu Packages. Посмотрите под заголовком «Поиск содержимого пакетов».

Например, вот результаты поиска для libnss3.so в lucid (10.04):

Пакеты Ubuntu [ ! d1]

16
ответ дан 29 May 2018 в 13:03

Вы имеете в виду, какой пакет, а не какое приложение. Приложение является вашим менеджером пакетов, например. Software Center.

Использование dpkg:

dpkg -S /usr/lib/tracker/tracker-store
dpkg -S tracker-extract
dpkg -S tracker-miner-fs

Пример

% dpkg -S /usr/lib/tracker/tracker-store
tracker: /usr/lib/tracker/tracker-store

Использование apt-file: [ ! d5]

apt-file search /usr/lib/tracker/tracker-store

или также возможно:

apt-file search --regex /tracker-extract$
apt-file search --regex /tracker-miner-fs$

Пример

% apt-file search /usr/lib/tracker/tracker-store
tracker: /usr/lib/tracker/tracker-store

Или онлайн здесь, в разделе Search the contents of packages.

здесь

Пример

9
ответ дан 29 May 2018 в 13:03
  • 1
    Вы имеете в виду, какой пакет, а не какое приложение. Приложение является вашим менеджером пакетов, например. Центр программного обеспечения. Хорошо. Спасибо! :) – ReyKev 29 November 2015 в 21:14
  • 2
    Спасибо вам за помощь! Ни одно из этих предложений не помогло мне найти, какой пакет установил эти / эти приложения. Все поисковые запросы просто вернутся к " Tracker & quot ;. Я подозревал, что это Canopy Enthoughts. Эта миля EULA напомнила мне мой старый озорник Microsoft Windows, с которым я так рад, что больше не участвую. Я видел, что Tracker был установлен вчера, поэтому, как root, я избавился от него, вместе с Canopy Enthoughts и все проблемы решены. Я действительно благодарю вас за вашу помощь. Это такая хорошая вещь, чтобы иметь такую ​​поддержку. Еще раз спасибо! Kevin – ReyKev 29 November 2015 в 21:22

Одна из причин, по которой вам может понадобиться сделать это, - это если вы компилируете программное обеспечение, которое уже есть пакет ubuntu, вы можете запустить apt-get build-dep $PACKAGENAME. Это установит все пакеты, необходимые для компиляции $PACKAGENAME.

1
ответ дан 29 May 2018 в 13:03

Я пытался отслеживать, что установлено which в моей системе. После небольшой работы я создал apt-whatprovides

#!/bin/sh
#apt-whatprovides ver. 201801010101 Copyright alexx, MIT Licence
#rdfa:deps="[realpath,apt-file,grep,which,sh,echo]"

BINARY=$(realpath $(which $@))
PACKAGE=$(apt-file search $BINARY|grep -E ":\s*${BINARY}$")
echo ${PACKAGE%:*}

Хотя для большинства THING вы можете просто использовать

apt-file search $(realpath $(which THING))|grep 'THING$'
0
ответ дан 29 May 2018 в 13:03

Другие вопросы по тегам:

Похожие вопросы: