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

Я отвечаю на вопрос с предложением использовать rename, и я понимаю, что не знаю, из какого пакета это происходит (как часть ответа, я думаю, что говорю что-то вроде «если у вас нет rename, он установлен как часть [package] ").

man rename сообщает мне SEE ALSO: mv(1), perl(1) - поэтому я впервые подумал, что он был установлен с perl.

[d2 ] Связанный ответ, как сказать, что был установлен как часть пакета, помогает мне понять, что пакет perl включает в себя prename, но не rename - и оказывается, что мой /usr/bin/rename указывает на /etc/alternatives/rename, который указывает на /usr/bin/prename

Так что это все еще путано. [F10] указывает где-то еще до того, как я установил perl? Есть ли общий способ узнать, из какого пакета происходит что-то?

1
задан 13 April 2017 в 15:25

3 ответа

Выключает dpkg-query, чтобы получить информацию об установленных пакетах, а с параметром -S [pattern] будет искать пакеты с файлами, соответствующими [pattern].

dpkg-query -S [filename-search-pattern]
5
ответ дан 25 May 2018 в 01:20

Начиная с 2018 года

apt search filename

работает для последних Ubuntu и большинства дистрибутивов на основе Debian.

Update May 2018: По-видимому, больше не работает с Ubuntu 18.04.

3
ответ дан 25 May 2018 в 01:20
  • 1
    В самом деле? В Ubuntu bionic это, похоже, не ищет имена файлов. $ apt search ничего не дает, vs wajig which-package /bin/date, который говорит coreutils: /bin/date – nealmcb 3 May 2018 в 17:37

Вы можете попробовать apt-file (он не является частью установки по умолчанию).

0) Обновить базу данных apt-файла

sudo apt-file update

1 ) Найти двоичный файл

$ which rename
/usr/bin/rename

2) Найти пакет

$ apt-file search /usr/bin/rename
util-linux: /usr/bin/rename.ul

И voila - переименование является частью util-linux

2
ответ дан 25 May 2018 в 01:20

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

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