Как мне найти пакетный файл

Programs and documents can be added to the registry so typing their name without their path in the Start – Run dialog box or shortcut enables Windows to find them.

This is a generic reg file. Copy the lines below to a new Text Document and save it as anyname.reg. Edit it with your programs or documents.

In paths use \ to seperate folder names in key paths as regedit uses a single to seperate it’s key names. All reg files start with REGEDIT4. A semicolon turns a line into a comment. The @ symbol means to assign the value to the key rather than a named value.

The file doesn’t have to exist. This can be used to set Word.exe to open Winword.exe.

This sample add IE.Txt (from IE5) to the registry so typing IE.Txt will open it. I think the file is called IE4.txt in IE4.

REGEDIT4
;The bolded name below is the name of the document or program, <filename>.<file extension> 

[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionApp PathsIE.txt]

;The @ means the path to the file is assigned to the default value for the key.
;The whole path in enclosed in a quotation mark ".

@=""C:\Program Files\Internet Explorer\IE.txt""

;Optional Parameters. The semicolon means don't process the line. Remove it if you want to put it in the registry

;Informs the shell that the program accepts URLs.

;"useURL"="1"

;Sets the path that a program will use as its' default directory. This is commented out.

;"Path"="C:\Program Files\Microsoft Office\Office\"

reg command can read or write to the registry in batch. Register it as if it’s an exe file not a batch file.

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

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

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

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

dpkg -S /usr/bin/cloud

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

dpkg -s ncdu

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

dpkg -S /usr/bin/cloud | awk -F: '{print $1}' | xargs dpkg -s

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

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

sudo apt install apt-file

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

sudo apt-file update

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

apt-file search /usr/bin/ncdu

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

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

rpm -qf /bin/ls

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

rpm -qif /bin/ls

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

yum whatprovides /bin/ls

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

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

pacman -Qo /usr/bin/pkgfile

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

sudo pacman -S pkgtools

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

pkgfile evince

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

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

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

equery b /usr/bin/qtconfig

x11-libs/qt-qt3support-4.6.2 (/usr/bin/qtconfig)

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

Выводы

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

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

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

1

apt-file

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

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

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

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

sudo apt install apt-file

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

sudo apt-file update

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

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

apt-file <опции> search <имя_файла>

Полезные опции:

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

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

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

Примеры

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

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

apt-file search fftw3.h

apt-file search

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

apt-file search firefox

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

apt-file search bin/firefox

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

apt-file -x search fftw_threads.so.*

apt-file regex

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

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

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

apt-file show cowsay

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

man apt-file

Лайков: +2

Войдите, чтобы ставить лайкимне нравится

Смотрите также

  • Основы работы в командной строке Linux
  • Сравнение файлов в Linux (команда diff)
  • Обзор-сравнение командных оболочек (unix shell): BASH, ZSH, FISH
  • Выключение и перезагрузка Linux. Shutdown и Reboot
  • Объединение файлов командой cat
  • pikaur — современный помощник AUR
  • Установка Xfce в Ubuntu и немного впечатлений
  • Вывод файла в терминале с нумерацией строк
  • Обновление Ubuntu
  • Скачиваем сайты целиком — утилита wget

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

Как пакетный файл сам по себе может увидеть, где он находится?

2009-05-25 03:20

2
ответа

Решение

%0 – это имя файла. %~dp0 будет абсолютным местоположением файла, где d – диск, p – путь, а 0 – имя файла.

2009-05-25 03:24

Просто назовите “CD”

set WORKING_DIRECTORY=%cd%

Раньше был%~dp0, но это не работает для меня в Vista.


user64203

25 май ’09 в 03:23
2009-05-25 03:23

2009-05-25 03:23

А какой там пакетный менеджер?

  • Ссылка

Ответ на:

комментарий
от xterro 13.03.15 13:10:19 MSK

Ответ на:

комментарий
от sunny1983 13.03.15 13:11:41 MSK

Тогда apt-cache search «имя» + Google, которым можно узнать, к какому пакету принадлежит файл 🙂

xterro ★★★★★

(13.03.15 13:14:04 MSK)

  • Ссылка

Ответ на:

комментарий
от grem 13.03.15 13:11:11 MSK

Работает. Проверил в simply linux livecd.

grem ★★★★★

(13.03.15 13:16:45 MSK)

  • Ссылка

Попробуй поискать по зависимостям, из синаптика удобно.

Сходу ответить не могу, но например, если я делаю

apt-get install /usr/bin/wesnoth

то вижу

Reading Package Lists… Done
Building Dependency Tree… Done
Selecting wesnoth for ‘/usr/bin/wesnoth’
The following extra packages will be installed:

итд итп

Так что видимо какой-то поиск есть, по крайней мере если знать, где должен лежать файл, то всё работает..

GreyDoom ★★★★

(13.03.15 13:29:21 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от grem 13.03.15 13:11:11 MSK

нет, не работает.

–names-only – это поиск только по имени пакета без дескрипшна, см ман

GreyDoom ★★★★

(13.03.15 13:32:07 MSK)

  • Показать ответы
  • Ссылка

Ответ на:

комментарий
от GreyDoom 13.03.15 13:32:07 MSK

Ответ на:

комментарий
от GreyDoom 13.03.15 13:29:21 MSK

веснот при этом, естественно, никогда не ставился

GreyDoom ★★★★

(13.03.15 13:33:57 MSK)

  • Ссылка

Ответ на:

комментарий
от xterro 13.03.15 13:33:44 MSK

Ответ на:

комментарий
от GreyDoom 13.03.15 13:34:36 MSK

Ответ на:

комментарий
от GreyDoom 13.03.15 13:32:07 MSK

Ааа, тебе поиск пакета по имени входящего в него файла нужен? Тогда попробуй

rpm -qf /путь/имя_файла

Правда это не поможет, если пакет не установлен 🙁

grem ★★★★★

(13.03.15 13:53:33 MSK)



Последнее исправление: grem 13.03.15 13:54:32 MSK
(всего

исправлений: 2)

  • Ссылка

Ответ на:

комментарий
от xterro 13.03.15 13:37:19 MSK

Ответ на:

комментарий
от xterro 13.03.15 13:33:44 MSK

Ответ на:

комментарий
от xterro 13.03.15 13:33:44 MSK

Мне etcnet выдаёт «wlanconfig: ioctl: Operation not supported»
Пытаюсь найти пакет, содержащий в своём составе «„bin/ioctl

sunny1983 ★★★★★

(13.03.15 22:40:48 MSK)

  • Показать ответы
  • Ссылка

Ответ на:

комментарий
от sunny1983 13.03.15 22:40:48 MSK

Скорее всего он у тебя уже стоит. Ты лучше опиши что пытаешься сделать/настроить и на каком этапе он это выдаёт? Какое оборудование при этом запускаешь (вендор, драйвер)?

grem ★★★★★

(13.03.15 23:08:15 MSK)

  • Ссылка

Ответ на:

комментарий
от sunny1983 13.03.15 22:40:48 MSK

Тут походе что с дровами проблема. Убедись что установлен wireless-tools, а дальше забей текст что привёл, в гугл и разбирайся. Судя по количеству ссылок, вопрос старый и поплясав с бубном можно его решить.

xterro ★★★★★

(13.03.15 23:08:51 MSK)

  • Ссылка

Ответ на:

комментарий
от sunny1983 13.03.15 22:40:48 MSK

Мне etcnet выдаёт «wlanconfig: ioctl: Operation not supported»
Пытаюсь найти пакет, содержащий в своём составе «„bin/ioctl

bin/ioctl не существует. Погугли ошибку, подобное много в каких случаях возникает и оно не ALT-специфичное. Ты просто что-то не то написал в конфиге. Что хочешь сделать ? WiFi настраиваешь через etcnet ?

AS ★★★★★

(13.03.15 23:54:05 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от AS 13.03.15 23:54:05 MSK

Именно, WiFi настраиваю через etcnet. Правильно ли это? etcnet умеет переподключаться к точке доступа, в случае кратковременного падения последней?
А ещё я Altlinus устанавливал с образа-пустышки JeOS, поскольку мне удобно сначала установить самый минимум, а потом все компоненты доустанавливать.
Проприетарный драйвер от broadcom установлен. wireles-tools и wpa-supplicant тоже установлены.
Содержимое конфигов такое:
/etc/net/ifaces/wlan0/options

ONBOOT=yes
HOST=wlan0
BOOTPROTO=dhcp
/etc/net/ifaces/wlan0/iwconfig

В /etc/net/ifaces/wlan0/wpa_supplicant.conf содержится вывод кманды wpa_passphrase.

sunny1983 ★★★★★

(14.03.15 09:18:05 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от sunny1983 14.03.15 09:18:05 MSK

etcnet умеет переподключаться к точке доступа, в случае
кратковременного падения последней ?

Сущность etcnet в том, что это штука для запуска чего-то для конфигурирования интерфейса. Если это «чего-то» умеет переподключаться, оно будет переподключаться. Если нет – нет. Сам etcnet – набор разово исполняющихся скриптов.

Именно, WiFi настраиваю через etcnet.

Вот тут читал ? http://www.altlinux.org/Etcnet
К сожалению, именно Wi-Fi я через etcnet не настраивал, да и, вообще, не особенно с Wi-Fi разбирался. Ровно на двух нотебуках, где я с Wi-Wi вообще дело имел, стояли Atheros какие-то, в KDesktop ими Network Manager занимается и всё работает сходу.

У тебя руками получается Wi-Fi поднять через все эти iwconfig и т.п. ?

AS ★★★★★

(14.03.15 14:19:25 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от AS 14.03.15 14:19:25 MSK

Конечно читал, но надо юудет наверное помозговать ещё.
Вручную через iwconfig и wpa_supplicant WiFi поднять получается.

sunny1983 ★★★★★

(14.03.15 14:55:00 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от sunny1983 14.03.15 14:55:00 MSK

Вручную через iwconfig и wpa_supplicant WiFi поднять получается.

Значит, должно быть можно через etcnet. Вообще, там есть возможность сделать грубый хак. Положи в /etc/net/ifaces/wlan0 исполняемый скрипт с названием ifup-post и сделай всё в нём. Или ifup-pre. Имя интерфейса там будет первым параметром в вызове, то есть, можно использовать $1, если скрипт копировать куда потом.

AS ★★★★★

(14.03.15 15:04:53 MSK)

  • Ссылка

Ответ на:

комментарий
от xterro 13.03.15 13:33:44 MSK

Хорошо. Теперь попробуем такую задачу: найдём пакеты, содержащие файлы, в полном имени которых содержится «/usr/share/man/ru», чтобы найти пакет с русскими манами.

sunny1983 ★★★★★

(15.03.15 18:45:53 MSK)

  • Показать ответы
  • Ссылка

urpmi в altlinux есть?
Если есть,то посмотри в справке,должна быть опция для вывода всех пакетов в репозитории.
Если я правильно помню то набирал нечто такое:
urpmi -qa|grep кусок_имени_пакета|grep ещё кусок имени пакета|sort -u

torvn77 ★★★★★

(15.03.15 18:55:25 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от sunny1983 15.03.15 18:45:53 MSK

чтобы найти пакет с русскими манами.

AS ★★★★★

(15.03.15 18:59:20 MSK)

  • Ссылка

Ответ на:

комментарий
от torvn77 15.03.15 18:55:25 MSK

urpmi в altlinux есть ?

Есть, но не пойдёт: репозитарии сделаны под apt-rpm. Разве что отзеркалить репозитарий и переиндексировать локально.

AS ★★★★★

(15.03.15 19:01:04 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от sunny1983 15.03.15 18:45:53 MSK

Воспользуйся apt-shell, в нём есть автодополнение по названиям пакетов:

apt> install man
man                    manaworld-music        man-pages              man-pages-posix-devel  man-sh
man2web                mandvd                 man-pages-micq         man-pages-ru           man-whatis
manaworld              manedit                man-pages-posix        man-pages-utils        
apt> install man

sin_a ★★★★★

(15.03.15 19:06:47 MSK)

  • Ссылка

Ответ на:

комментарий
от AS 15.03.15 19:01:04 MSK

apt-rpm не знаю,но если есть голый apt то
apt list |grep кусок_имени_пакета |grep другой_кусок_имени_пакета|sort -u

torvn77 ★★★★★

(15.03.15 20:03:54 MSK)



Последнее исправление: torvn77 15.03.15 20:06:08 MSK
(всего

исправлений: 4)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от torvn77 15.03.15 20:03:54 MSK

но если есть голый apt то

Голый apt про rpm ничего не знает, а пакеты в Alt не deb.

apt list |grep кусок_имени_пакета |grep другой_кусок_имени_пакета|sort -u

apt-rpm – это не apt в Debian. Многое похоже, но не всё.

AS ★★★★★

(15.03.15 20:54:44 MSK)



Последнее исправление: AS 15.03.15 20:55:41 MSK
(всего

исправлений: 1)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от AS 15.03.15 20:54:44 MSK

Ответ на:

комментарий
от torvn77 15.03.15 21:40:55 MSK

Ужос.>_<

ну не ужас-ужас же. Зато есть определённые ништяки. Как от rpm vs deb, так и из-за кое-каких собственных доработок, например, так называемые set-version зависимости, учитывающие не только soname библиотек, но и фактическое наличие предоставляемых символов. Впрочем, эта доработка тоже rpm касается.

AS ★★★★★

(15.03.15 22:00:00 MSK)



Последнее исправление: AS 15.03.15 22:00:41 MSK
(всего

исправлений: 1)

  • Ссылка

Поиск по форуму altlinux находит ответы, что такая задача как поиск
в репозитории пакета по имени файла невозможен в принципе. Никто
не знает, это действительно так или можно как-нибудь извернуться?

AS ★★★★★

(04.04.15 21:15:57 MSK)

  • Ссылка

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.

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