Вам нужно спросить, какой менеджер пакетов мог быть использован -только менеджер пакетов хранит метаинформацию -о том, какие пакеты были установлены и какие файлы находятся в пакете. Невозможно получить такую информацию из «голого» файла.
Вы не сказали, какой тип дистрибутива вы используете, но я рекомендую всегда использовать один менеджер пакетов (, подходящий для меня ), и помещать материалы, скомпилированные пользователем, в другое место (для меня., /usr/local
, управляется с помощью stow
, и я веду список пакетов ). Таким образом легко узнать, к какому пакету принадлежит тот или иной файл.
Если вы используете около дюжины менеджеров пакетов (, почему? ), вы можете написать сценарий, который запрашивает каждый из них по очереди.
Редактировать
Я слежу за тем, что скомпилировал из исходников, создавая файл для каждого пакета, скомпилированного в /usr/local/packages/
. Мне это нужно в любом случае, потому что оно содержит информацию о том, как я его скомпилировал (часто вам нужно внести коррективы, исправить несколько вещей, которые не будут компилироваться с более новым gcc и т. д. )на случай, если мне нужно будет скомпилировать его снова, когда Я обновляю его. И так как этот файл у меня есть, я также добавляю информацию о том, где я скачал исходники, какая у него версия, что он делает, как называется исходный архив и т. д. Я слежу за установленными файлами, устанавливая все в /usr/local/stow/
(, который также иногда требует корректировки Makefiles, или ./configure --prefix
и т. д. ), а затем используйте stow
, чтобы сделать ссылки на него в /usr/local
. Я подробно описал это здесь .
Вы также можете создавать настоящие пакеты deb или rpm из того, что компилируете сами, но это больше работы, чем отслеживание с помощью stow
.
Поиск в каталогах с бинарными файлами в /usr/ и /bin/ Или найдите двоичный файл с помощью:
$cd /
$sudo find -type f -iname *binary name*
и (re -)перемещают файл, если он находится вне каталога.