Как узнать какому пакету принадлежит файл linux

Как узнать какому пакету принадлежит файл linux

Одной из наиболее общих задач управления пакетами является задача отслеживания принадлежности отдельных файлов.

Опция -qf позволяет использовать rpm для поиска информации о принадлежности указанного файла конкретному пакету. Основной синтаксис:

# rpm -qf путевое_имя_файла

В первую очередь необходимо определить расположение файла. Для этого в Linux есть несколько штатных средств, наиболее часто используется команда which.

# which grep

В данном примере определяется положение утилиты grep. Теперь можно определить принадлежность grep конкретному пакету.

# rpm -qf /bin/grep

Осталось объединить команды в одну средствами Linux:

# rpm -qf `which grep`

Если используется bash shell, имеется возможность использовать свойства этой оболочки:

# rpm -qf $(which grep)

Если файл не принадлежит пакету (а это пользовательские файлы, документы etc.), будет выведено сообщение:

# rpm -qf mail

file mail is not owned by any package

Одна из причин, почему команда rpm -qf довольно часто используется, это отсутствие связи между именами команд и именами пакетов, в которые они входят. Например:

Источник

Как узнать какому пакету принадлежит файл linux

Для просмотра от каких пакетов зависит пакет gnome-calculator:

$ epm requires gnome-calculator

Для просмотра какие другие пакеты зависят от пакета gnome-calculator:

$ epm whatdepends gnome-calculator

Для просмотра какому пакету принадлежит файл /usr/bin/gnote:

$ epm qf /usr/bin/gnote

(причём для исполняемых файлов можно и epm qf gnote)

Список всех файлов в пакете:
$ epm ql gnome-calculator

2.4 , Аноним ( — ), 22:39, 20/02/2020 [^] [^^] [^^^] [ответить] + / –
> Ну а для тех, кому не хочется запоминать все варианты, давно создан EEPM:

Для таких случаев создан XKCD #927.

  • 3.7, Виталий Липатов ( ok ), 13:48, 21/02/2020 [^] [^^] [^^^] [ответить]
  • + / –
    Ну что ещё ожидать от Анонима. Но EPM не ещё один пакетный менеджер.
  • 2.5 , имя ( ok ), 01:34, 21/02/2020 [^] [^^] [^^^] [ответить]
  • + / –
    > Лет 8 назад здесь уже писали об этом проекте

    Лет 12 назад уже был PackageKit.

    3.8, Виталий Липатов ( ok ), 17:56, 21/02/2020 [^] [^^] [^^^] [ответить] + / –
    >> Лет 8 назад здесь уже писали об этом проекте
    > Лет 12 назад уже был PackageKit.

    Поэтому до сих пор люди пишут полезные советы, как пользоваться пакетными менеджерами. PackageKit предоставляет только базовую функциональность и ограничен теми системами, которые имеют D-BUS. Но у проекта и цели другие — предоставить доступное обычному пользователю управление пакетами через GUI.

    Источник

    Какому пакету принадлежит файл в Linux

    В этой краткой заметке я хочу рассказать как узнать какому пакету принадлежит файл Linux, мы рассмотрим как решить эту задачу не только в Ubuntu, но и в других популярных дистрибутивах.

    Такая задача возникает очень редко. Например, вы чистите систему, увидели странный файл, или файл который занимает много места и хотите узнать какому пакету он принадлежит, и вообще, нужен ли он здесь. Или другая ситуация вы хотите установить или удалить программу но не помните название пакета, но знаете как называется исполняемый файл.

    Для получения такой информации в Ubuntu есть несколько способов. Это стандартная утилита dpkg, которая работает только с существующими файлами, а также инструмент apt-file, позволяющий получить название программы зная имя исполняемого файла. Подобные инструменты есть и для других дистрибутивов.

    Узнаем какому пакету принадлежит файл в dpkg

    Для того чтобы узнать какому пакету принадлежит файл dpkg имеет опцию -S, правда, выведено будет только имя пакета и адрес файла, например:

    Теперь если хотим получить информацию о пакете, используем опцию -s:

    Или объедением эти команды:

    Как узнать имя пакета по файлу в apt-file

    Утилита apt-file не является стандартной для системы Ubuntu, поэтому сначала ее нужно установить:

    Затем нужно обновить базу данных программы, при обновлении загрузиться около 30 Мегабайт данных:

    Теперь можно использовать:

    Узнаем какому пакету принадлежит файл в rpm

    В системах на базе Red Hat Linux тоже можно выполнить аналогичное действие. Здесь вместо dpkg используется консольная утилита rpm. Для получения информации о пакетах используется опция -q, если комбинировать ее с опцией -f и передать адрес файла, мы сможем узнать какому пакету принадлежит файл:

    Хотите более подробной информации о пакете, добавьте опцию -i:

    Пакетный менеджер yum, используемый в системах, основанных на Red Hat, тоже умеет искать пакеты по файлу, для этого есть команда whatpovides:

    Какому пакету принадлежит файл в ArchLinux

    ArchLinux использует собственный менеджер пакетов, очень сильно отличающийся от описанных выше. Но здесь тоже можно сделать то, что нам нужно. Для этого есть опция -Qo:

    Но этот способ работает только для установленных пакетов, если пакет не установлен, можно использовать утилиту pkgfile. Она не поставляется по умолчанию, но ее можно установить:

    Теперь посмотрим какому пакету принадлежит /bin/evince:

    Теперь вы можете узнать из какого пакета можно получить нужную вам программу.

    Поиск пакета по файлу в Gentoo

    Еще один интересный дистрибутив со своеобразной системой работы с пакетами. Здесь пакеты поставляются в виде исходных кодов и скриптов для сборки. Найти пакет по файлу вы можете с помощью утилиты equery, передав ей параметр b. Например:

    Такой способ работает только для установленных пакетов. Из-за специфики дистрибутива для не установленных пакетов способа поиска не существует.

    Выводы

    Теперь вы знаете как понять какому пакету принадлежит файл в любом из самых популярных дистрибутивов Linux. Во всех дистрибутивах, основанных на Ubuntu и Debian, работает dpkg, для RPM-based дистрибутивов подходит утилита rpm. А два остальных менее популярных, но очень интересных мы рассмотрели отдельно. Если у вас остались вопросы, спрашивайте в комментариях!

    Источник

    Поиск пакетов, содержащих определенный файл

    В данной статье рассматривается утилита apt-file, которая позволяет найти, к какому пакету относится определенный файл. Утилита работает в Ubuntu-based дистрибутивах.

    С ее помощью можно, например, найти в каком пакете находится та или иная программа. Или же можно найти, в какой библиотеке находится заголовочный файл, это иногда нужно при сборке программ из исходных кодов.

    Установка apt-file

    Установим утилиту apt-file. Выполняем команду:

    После установки apt-file должна выполнить индексацию репозиториев, чтобы получить актуальную информацию о пакетах. Для этого выполняем команду:

    Поиск пакетов

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

    • —ignore-case или -i — не учитывать регистр.
    • —regexp или -x — рассматривать имя_файла, как регулярное выражение. Используется синтаксис регулярных выражений Perl.
    • —package-only или -l — показывать только имена пакетов. Не показывать имена файлов.
    • —fixed-string или -F — искать строго по заданному имени_файла (полное вхождение/совпадение).

    имя_файла — имя файла (полный путь), часть имени файла или регулярное выражение для поиска среди репозиториев.

    Команда apt-file выполняет поиск пакетов, которые содержат внутри себя файлы, соответствующие искомому имени_файла .

    Примеры

    Рассмотрим несколько примеров.

    Найдем пакеты, которые содержат файл fftw3.h:

    Найдем пакеты, содержащие файл firefox:

    Обратите внимание, что при поиске будут найдены все вхождения слова firefox в путях файлов, это, например, файлы firefox.png и так далее. Поэтому, можно задать более конкретный запрос, указав часть пути:

    Пример использования регулярного выражения (используется perl regex):

    Список файлов в пакете

    Еще одна полезная возможность команды apt-file — это вывод списка файлов внутри определенного пакета. Для этого используется действие show.

    Например, выведем список файлов в пакете cowsay:

    Чтобы получить справку по всем возможностям apt-file выполните в терминале команду:

    Источник

    APT HOWTO (Obsolete Documentation)
    зМБЧБ 5 — рПМХЮЕОЙЕ ЙОЖПТНБГЙЙ П РБЛЕФБИ.

    дМС УЙУФЕНЩ APT УХЭЕУФЧХЕФ ОЕУЛПМШЛП ПВПМПЮЕЛ, ЛПФПТЩЕ ЪОБЮЙФЕМШОП ХРТПЭБАФ РТПУНПФТ РБЛЕФПЧ, ЛПФПТЩЕ ДПУФХРОЩ ДМС ХУФБОПЧЛЙ ЙМЙ ХЦЕ ХУФБОПЧМЕОЩ, Б ФБЛЦЕ ДМС РПЙУЛБ ТБЪДЕМПЧ, РТЙПТЙФЕФПЧ, ПРЙУБОЙС РБЛЕФПЧ Й Ф.Д.

    оП. ОБЫБ ГЕМШ УПУФПЙФ Ч ЙЪХЮЕОЙЙ УБНПЗП APT. фБЛ ЛБЛ ЦЕ ОБКФЙ ЙНС РБЛЕФБ, ЛПФПТЩК ЧБН ОБДП ХУФБОПЧЙФШ?

    дМС ФБЛПК ЪБДБЮЙ НЩ ТБУРПМБЗБЕН ОЕУЛПМШЛЙНЙ ТЕУХТУБНЙ. оБЮОЕН У apt-cache . ьФБ РТПЗТБННБ ЙУРПМШЪХЕФУС УЙУФЕНПК APT ДМС ХРТБЧМЕОЙС ЕЕ ВБЪБНЙ ДБООЩИ. нЩ ФПМШЛП ЧЛТБФГЕ ПЗМСДЙН ЕЕ ВПМЕЕ РТБЛФЙЮЕУЛЙЕ РТЙМПЦЕОЙС.

    5.1 оБИПЦДЕОЙЕ ЙНЕО РБЛЕФПЧ

    оБРТЙНЕТ, ДПРХУФЙН, ЮФП ЧЩ ИПФЙФЕ ЧУРПНОЙФШ УФБТЩЕ ДПВТЩЕ ДЕОЕЮЛЙ Atari 2600. чЩ ИПФЙФЕ ЙУРПМШЪПЧБФШ APT ДМС ХУФБОПЧЛЙ ЬНХМСФПТБ Atari Й УЛБЮЙЧБОЙС ОЕЛПФПТЩИ ЙЗТ. нПЦЕФЕ УДЕМБФШ ФБЛ:

    нЩ ОБЫМЙ ОЕУЛПМШЛП РБЛЕФПЧ, ЙНЕАЭЙИ ПФОПЫЕОЙЕ Л ФПНХ, ЮФП ОБН ФТЕВХЕФУС, ЧНЕУФЕ У ЛТБФЛЙНЙ ПРЙУБОЙСНЙ. юФПВЩ РПУНПФТЕФШ ВПМЕЕ РПМОЩЕ ПРЙУБОЙС, НПЦОП ДБФШ ЛПНБОДХ:

    ч ЬФПН ЧЩЧПДЕ НЩ РПМХЮЙМЙ НОПЦЕУФЧП УЧЕДЕОЙК П РБЛЕФЕ, ЛПФПТЩК ЧЩ ИПФЙФЕ (ЙМЙ ОЕ ИПФЙФЕ) ХУФБОПЧЙФШ, ЧНЕУФЕ У РПМОЩН ПРЙУБОЙЕН РБЛЕФБ. еУМЙ РБЛЕФ ХЦЕ ХУФБОПЧМЕО Ч УЙУФЕНЕ ЙМЙ ЕУФШ ВПМЕЕ ОПЧБС ЧЕТУЙС, ФП ЧЩ ХЧЙДЙФЕ ЙОЖПТНБГЙА ПВ ПВПЙИ ЧЕТУЙСИ. оБРТЙНЕТ:

    пВТБФЙФЕ ЧОЙНБОЙЕ, ЮФП РЕТЧЩК Ч УРЙУЛЕ — ДПУФХРОЩК РБЛЕФ, Б ЧФПТПК — ХЦЕ ХУФБОПЧМЕООЩК. дМС РПМХЮЕОЙС ВПМЕЕ ПВЭЕК ЙОЖПТНБГЙЙ П РБЛЕФЕ, ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ:

    б ЮФПВЩ РПУНПФТЕФШ ФПМШЛП ЕЗП ЪБЧЙУЙНПУФЙ:

    ч ПВЭЕН, НЩ ЙНЕЕН РПМОЩК БТУЕОБМ ДМС РПЙУЛБ ЙНЕО ОХЦОЩИ ОБН РБЛЕФПЧ.

    5.2 рТЙНЕОЕОЙЕ dpkg ДМС РПЙУЛБ ЙНЕО РБЛЕФПЧ

    пДЙО ЙЪ УРПУПВПЧ ОБКФЙ ЙНС РБЛЕФБ — ЪОБФШ ЙНС ЛБЛПЗП-МЙВП ЧБЦОПЗП ЖБКМБ, ОБИПДСЭЕЗПУС Ч ЬФПН РБЛЕФЕ. оБРТЙНЕТ, ЮФПВЩ ОБКФЙ РБЛЕФ, ЛПФПТПНХ РТЙОБДМЕЦЙФ ОЕЛЙК ЖБКМ «.h» , ОХЦОЩК ЧБН ДМС ЛПНРЙМСГЙЙ, НПЦЕФ ЪБРХУФЙФШ:

    юФПВЩ ОБКФЙ ЙНС РБЛЕФБ, ХУФБОПЧМЕООПЗП Ч ЧБЫЕК УЙУФЕНЕ, ЮФП РПМЕЪОП, ОБРТЙНЕТ, ЕУМЙ ЧЩ РМБОЙТХЕФЕ РПЮЙУФЙФШ НЕУФП ОБ ДЙУЛЕ, ДБКФЕ ЛПНБОДХ:

    рТПВМЕНБ ЬФПК ЛПНБОДЩ Ч ФПН, ЮФП ПОБ НПЦЕФ «ЙУРПТФЙФШ» ЙНС РБЛЕФБ. ч РТЙНЕТЕ ЧЩЫЕ, РПМОПЕ ЙНС РБЛЕФБ mozilla-browser . юФПВЩ ЬФП ЙУРТБЧЙФШ, ЧЩ НПЦЕФЕ ЙЪНЕОЙФШ ЪОБЮЕОЙЕ РЕТЕНЕООПК ПЛТХЦЕОЙС COLUMNS :

    ЙМЙ ЙУРПМШЪПЧБФШ ПРЙУБОЙЕ ЙМЙ ЮБУФШ ЕЗП УМЕДХАЭЙН ПВТБЪПН:

    5.3 хУФБОПЧЛБ РБЛЕФПЧ «РП ЪБРТПУХ»

    чЩ УПВЙТБЕФЕ РБЛЕФ, Й ЧДТХЗ, ВБИ! пЫЙВЛБ ЙЪ-ЪБ ФПЗП, ЮФП ОЕФ ЛБЛПЗП-ФП ФБН ОХЦОПЗП ЖБКМБ .h . пФ ФБЛПЗП РПЧПТПФБ УПВЩФЙК ЧБУ НПЦЕФ УРБУФЙ РТПЗТБННБ auto-apt . пОБ ЪБРТБЫЙЧБЕФ ЛБЛЙЕ РБЛЕФЩ ХУФБОПЧЙФШ, ЕУМЙ ПОЙ ОХЦОЩ, ПУФБОБЧМЙЧБЕФ УППФЧЕФУФЧХАЭЙК РТПГЕУУ Й РТПДПМЦБЕФ ЕЗП РПУМЕ ХУФБОПЧЛЙ РБЛЕФБ.

    дМС ЬФПЗП, Ч ПУОПЧОПН, ЪБРХУФЙФЕ:

    зДЕ `command’ — ЬФП ЛПНБОДБ, РТЙ ЧЩРПМОЕОЙЙ ЛПФПТПК НПЦЕФ ПВОБТХЦЙФШУС ПФУФХФУФЧЙЕ ОЕЛПЕЗП ЖБКМБ. оБРТЙНЕТ:

    пОБ ЪБРТПУЙФ ХУФБОПЧЛХ ОЕПВИПДЙНЩИ РБЛЕФПЧ Й ЧЩЪПЧЕФ apt-get БЧФПНБФЙЮЕУЛЙ. еУМЙ ЧЩ ТБВПФБЕФЕ Ч X, ФП ЗТБЖЙЮЕУЛЙК ЙОФЕТЖЕКУ ВХДЕФ РП ХНПМЮБОЙА ЪБНЕОЕО ОБ ФЕЛУФПЧЩК.

    Auto-apt УПИТБОСЕФ ВБЪЩ ДБООЩИ Ч ПВОПЧМЕООПН УПУФПСОЙЙ, ЮФПВЩ ВЩФШ ВПМЕЕ ЬЖЖЕЛФЙЧОПК. ьФП ДПУФЙЗБЕФУС ЧЩЪПЧПН ЛПНБОД auto-apt update , auto-apt updatedb Й auto-apt update-local .

    5.4 лБЛ ПРТЕДЕМЙФШ, ЛБЛПНХ РБЛЕФХ РТЙОБДМЕЦЙФ ЖБКМ

    еУМЙ ЧЩ ИПФЙФЕ ХУФБОПЧЙФШ РБЛЕФ Й ОЕ НПЦЕФЕ ОБКФЙ ЕЗП ОБЪЧБОЙЕ У РПНПЭША apt-cache , ОП ЪОБЕФЕ ЙНС РТПЗТБННЩ ЬФПЗП РБЛЕФБ ЙМЙ ЙНС МАВПЗП ДТХЗПЗП ЖБКМБ ЙЪ ЬФПЗП РБЛЕФБ, ФП ДМС РПЙУЛБ ЙНЕОЙ РБЛЕФБ ЧЩ НПЦЕФЕ ЧПУРПМШЪПЧБФШУС РТПЗТБННПК apt-file . йУРПМШЪХЕФУС ПОБ РТЙНЕТОП ФБЛ:

    тБВПФБЕФ ПОБ РТЙНЕТОП ФБЛЦЕ ЛБЛ Й dpkg -S , ОП ВХДЕФ РПЛБЪЩЧБФШ ФБЛЦЕ Й ОЕХУФБОПЧМЕООЩЕ РБЛЕФЩ, ЛПФПТЩЕ УПДЕТЦБФ ХЛБЪБООЩК ЖБКМ. лПНБОДБ НПЦЕФ РТЙНЕОСФШУС ФБЛЦЕ ДМС РПЙУЛБ ЪБЗПМПЧПЮОЩИ ЖБКМПЧ, ЛПФПТЩЕ НПЗХФ РПФТЕВПЧБФШУС РТЙ ЛПНРЙМСГЙЙ РТПЗТБНН, ИПФС auto-apt Ч ДБООПН УМХЮБЕ ВПМЕЕ ИПТПЫ, УН. хУФБОПЧЛБ РБЛЕФПЧ «РП ЪБРТПУХ», ТБЪДЕМ 5.3.

    фБЛЦЕ ЧЩ НПЦЕФ РПУНПФТЕФШ УРЙУПЛ ЖБКМПЧ Ч РБЛЕФЕ ЛПНБОДПК:

    apt-file ИТБОЙФ ВБЪХ ДБООЩИ, Ч ЛПФПТПК ПФУМЕЦЙЧБЕФ ЛБЛЙЕ ЖБКМЩ УПДЕТЦБФ РБЛЕФЩ ФБЛЦЕ, ЛБЛ ЬФП ДЕМБЕФ auto-apt Й ЕНХ ОХЦОП ЕЕ ПВОПЧМСФШ. ьФП ДЕМБЕФУС ФБЛ:

    рП ХНПМЮБОЙА, apt-file ЙУРПМШЪХЕФ ВБЪХ ДБООЩИ auto-apt , УН. хУФБОПЧЛБ РБЛЕФПЧ «РП ЪБРТПУХ», ТБЪДЕМ 5.3.

    5.5 лБЛ РПМХЮЙФШ ЙОЖПТНБГЙА ПВ ЙЪНЕОЕОЙСИ Ч РБЛЕФЕ.

    лБЦДЩК РБЛЕФ ХУФБОЧБМЙЧБЕФ Ч УЧПК ЛБФБМПЗ ДПЛХНЕОФБГЙЙ ( /usr/share/doc/packagename ) ЖБКМ, ОБЪЩЧБЕНЩК changelog.Debian.gz , ЛПФПТЩК УПДЕТЦЙФ УРЙУПЛ ЙЪНЕОЕОЙК, УДЕМБООЩИ Ч РБЛЕФЕ Ч РПУМЕДОЕК ЧЕТУЙЙ. чЩ НПЦЕФЕ РТПЮЕУФШ ЬФЙ ЖБКМЩ, ОБРТЙНЕТ, ХФЙМЙФПК zless ‘, ОП Ч ПВЭЕН-ФП ОЕ УМЙЫЛПН ХДПВОП РПУМЕ РПМОПЗП ПВОПЧМЕОЙС УЙУФЕНЩ ЙУЛБФШ changelog`Й ДМС ЛБЦДПЗП ПВОПЧМЕООПЗП РБЛЕФБ.

    нПЦОП БЧФПНБФЙЪЙТПЧБФШ ЬФХ ЪБДБЮХ У РПНПЭША ЙОУФТХНЕОФБ apt-listchanges . дМС ОБЮБМБ ОБДП ХУФБОПЧЙФШ РБЛЕФ apt-listchanges . ч ФЕЮЕОЙЕ ЙОУФБММСГЙЙ, Debconf ОБУФТПЙФ ЕЗП. пФЧЕЮБКФЕ ОБ ЧПРТПУЩ ФБЛ, ЛБЛ ЧБН ВХДЕФ ХДПВОЕЕ.

    пРГЙС «Should apt-listchanges be automatically run by apt?» ПЮЕОШ РПМЕЪОБ, ФБЛ ЛБЛ РПЛБЪЩЧБЕФ УРЙУПЛ ЙЪНЕОЕОЙК, УДЕМБООЩИ Ч ЛБЦДПН ХУФБОПЧМЕООПН РТЙ ПВОПЧМЕОЙЙ РБЛЕФЕ, Й РПЪЧПМСЕФ ЧБН РТПБОБМЙЪЙТПЧБФШ УЙФХБГЙА РЕТЕД ФЕН, ЛБЛ РТПДПМЦЙФШ. пРГЙС «Should apt-listchanges prompt for confirmation after displaying changes?» ЪБРТБЫЙЧБЕФ Х ЧБУ ТБЪТЕЫЕОЙС РТПДПМЦБФШ РПУМЕ ЮФЕОЙС УРЙУЛБ ЙЪНЕОЕОЙК. еУМЙ ЧЩ УЛБЦЕФЕ, ЮФП ОЕ ИПФЙФЕ РТПДПМЦБФШ, ФП apt-listchanges ЧЕТОЕФ ПЫЙВЛХ Й apt РТЕТЧЕФ ХУФБОПЧЛХ.

    рПУМЕ ХУФБОПЧЛЙ apt-listchanges, ЛБЛ ФПМШЛП РБЛЕФЩ УЛБЮБАФУС (ЙМЙ ВХДХФ РПМХЮЕОЩ У CD ЙМЙ УНПОФЙТПЧБООПЗП ДЙУЛБ) У РПНПЭША apt, НПЦОП ВХДЕФ УНПФТЕФШ УРЙУЛЙ ЙЪНЕОЕОЙК, УДЕМБООЩИ Ч ТБОЕЕ ХУФБОПЧМЕООЩИ РБЛЕФБИ.

    Источник

    Читайте также:  Linux spaces in terminal
    Оцените статью