Debian как найти какому пакету принадлежит файл
Перейти к содержимому

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

  • автор:

Как узнать, какому пакету принадлежит бинарный файл в Debian/Ubuntu

Если вы управляете программным обеспечением в Debian/Ubuntu с помощью управления пакетами apt-get , могут быть случаи, когда вы захотите удалить или обновить пакет программного обеспечения, содержащий существующий двоичный файл в вашей системе. Итак, учитывая существующий двоичный файл (например, /usr/lib/postgresql/8.4/bin/postgres ), как узнать, какой пакет предоставляет двоичный файл?

В этом вам может помочь apt-file — утилита командной строки, разработанная именно для этой цели. Сначала установите apt-file следующим образом.

$ sudo apt-get install apt-file $ sudo apt-file update

Чтобы узнать, какому пакету принадлежит /usr/lib/postgresql/8.4/bin/postgres , выполните следующие действия.

$ sudo apt-file search /usr/lib/postgresql/8.4/bin/postgres
postgresql-8.4: /usr/lib/postgresql/8.4/bin/postgres

Приведенный выше вывод сообщает вам, что двоичный файл получен из пакета с именем postgresql-8.4 .

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

$ sudo apt-get autoremove postgresql-8.4

Re: как посмотреть, какому пакету принадлежит файл?

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

anonymous
( 12.04.06 12:19:13 MSD )
Ответ на: Re: как посмотреть, какому пакету принадлежит файл? от anonymous 12.04.06 12:19:13 MSD

Re: как посмотреть, какому пакету принадлежит файл?

какой файл нужно узнать?

anonymous
( 12.04.06 13:27:41 MSD )
Ответ на: Re: как посмотреть, какому пакету принадлежит файл? от anonymous 12.04.06 13:27:41 MSD

Re: как посмотреть, какому пакету принадлежит файл?

на счет путей не вижу проблем, наверное всем известно, что бинарники живут в основном в /bin /sbin /usr/bin /usr/sbin , если это не чужеродный пакет — /opt

anonymous
( 12.04.06 13:29:43 MSD )
Ответ на: Re: как посмотреть, какому пакету принадлежит файл? от anonymous 12.04.06 13:29:43 MSD

Re: как посмотреть, какому пакету принадлежит файл?

man find я и сам умею, пасибки.

anonymous
( 12.04.06 13:31:10 MSD )
Ответ на: Re: как посмотреть, какому пакету принадлежит файл? от anonymous 12.04.06 12:19:13 MSD

Re: как посмотреть, какому пакету принадлежит файл?

> а откуда я его возьму.
Т.е. есть только имя файла ? Тогда можно попробовать перебрать все пакеты:
rpm -qa|while read p; do n=`rpm -ql $p|grep -c имя_файла`; [ «$n» != «0» ] && echo $p; done
Либо искать не во всех пакетах, а по имени файла попробовать узнать имя пакета.

How do I find out which package owns a file?

Alternatively, there are several utilites in Debian which perform this task; check this page for a description. I’ll mention two of them, apt-file and dlocate .

apt-file searches its internal cache, thus allowing you to not install all the packages you want to search. Below you will find more detailed guide.

dlocate is a fast alternative to dpkg -L (the command that lists package contents), and as so, it searches only installed packages. Search is performed by dlocate -S file.name .

Also you can search packages online using packages.debian.org server (the Search the contents of packages section).

Installing and using apt-file

It’s a good idea to update first:

sudo apt-get update 

See what apt-file is for:

apt-cache show apt-file 
sudo apt-get install apt-file 

Read data from repositories (this works also without sudo but creates user’s cache then; with sudo the cache is system-wide):

sudo apt-file update 

Perform search. In this example we want to know in which package xrandr executable is:

apt-file search xrandr 

It lists many packages with unxrandr , lxrandr.mo or source_lxrandr.py . Not very useful in our case. More clever search:

apt-file search -x /xrandr$ 

( $ denotes end of line). Example output:

bash-completion: /usr/share/bash-completion/completions/xrandr x11-xserver-utils: /usr/bin/xrandr 

The first result doesn’t look like executable, the second one does. We can investigate further. Run:

apt-cache show x11-xserver-utils 

Bingo! This is the package.

как найти какому пакету принадлежит отсутствующий файл?

Ленты новостей

потому что «equery f файл» ищет только в том случае если пакет установлени — а как найти какой надо доустановить если его нет? неужели в опять в http://rpm.pbone.net лезть искать? уж думал что с переходдом с редхета — от этих поисков избавился.

    Для комментирования войдите или зарегистрируйтесь

я несовсем

Автор evadim, дата создания 1 марта, 2007 — 03:34.

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

  • Для комментирования войдите или зарегистрируйтесь

Автор kiev1, дата создания 1 марта, 2007 — 03:58.

ну хорошо — ошибку я нашел руками — но в общем я с этим много раз сталкивался — программа хочет что-то чего не известно в каком пакете искать? какой принцип поиска (rpm.pbone.net не предлагать)))

  • Для комментирования войдите или зарегистрируйтесь

Автор Mesk (не зарегистрирован), дата создания 1 марта, 2007 — 05:42.

  • Для комментирования войдите или зарегистрируйтесь

gentoo достаточно

Автор KiberGus, дата создания 1 марта, 2007 — 12:33.

gentoo достаточно хорошо отслеживает зависимости, поэтому в gentoo такая ошибка из-за неустановленного пакета как правило не возникает.

  • Для комментирования войдите или зарегистрируйтесь

Re: gentoo достаточно

Автор roman, дата создания 1 марта, 2007 — 13:06.
KiberGus написал(а):

gentoo достаточно хорошо отслеживает зависимости, поэтому в gentoo такая ошибка из-за неустановленного пакета как правило не возникает.

+1
ниразу не было

  • Для комментирования войдите или зарегистрируйтесь

Чтобы тузла

Автор wi, дата создания 1 марта, 2007 — 16:12.

Чтобы тузла могла узнать что лежит в неустановленном сурсовом пакете она как минимум должна достать пакет с тырнета и установить (имхо особенности сурса). Другой способ реализации мне пока что в голову не приходит. Так что ваша ситуация решается только чтением доки на устанавливаемый пакет.

Обратная ситуация, когда нужно решить проблему и не знаешь чего поставить опять же требует поиска в тырнете. Всегда. Как только с именами тузл определился жизнь становится раем. Потому как в гене метаинформация текстовая, лежит в /usr/portage. Можно втупую грепить, можно воспользоваться какими нить тузлами коих море бо текст (типа eix, esearch, equery, q). Прямые и обратные зависимости как правило прописаны в ебилде. Разобраться не так сложно как кажется на первый взгляд.
Так что rpm.pbone.net или гугл по любому. Без тырнета линь мертв.

  • Для комментирования войдите или зарегистрируйтесь

Russian Gentoo Linux Community © 2005—2017
Gentoo — торговая марка Gentoo Foundation, Inc.
Сервер работает под управлением Gentoo Linux
Сайт работает под управлением CMS Drupal

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *