[Решено] Поиск неустановленных пакетов по имени файла в них
rPman 24 февраля, 2009 - 22:02
Иногда очень полезно иметь возможность искать, в каком пакете, не установленном в системе (само собой, чтобы его установить), находится файл. Что то похожее на дебиановский apt-file.
Понимаю что задача в общем случае сильно усложняется флагами USE и д.р. но.. Был такой сервис - http://www.rommel.stw.uni-erlangen.de/~fejf/pfs/ (пишут что боты зафлудили... блин каптчу не смогли прикрутить) собирали статистику по уже собранным пакетам разных версий и сделали поисковик по ним. Есть альтернативы на данный момент? Если нет, какие есть идеи?
»
- Для комментирования войдите или зарегистрируйтесь
Коллега.
Я сейчас поиском через emerge по неподключенным layoutам заморачиваюсь.
Мысли такие. В системе искать нереально. Нужен сервер статистики. Либо капай на мозги ребятам с твоей ссылки, чтобы дали исходники, либо пишем свой. Могу помочь с клиентской частью.
Из совсем альтернативных вариантов - где то я видел сервер со списками файлов, входящих в каждый пакет для Ubuntu. Можно шерстить по нему. И ещё пусть знающие люди расскажут, как работает revdep-rebuild.
ну проблем тут немало: *
ну проблем тут немало:
* написать сервер
* написать клиент
* хостинг сервера и поддержка <- это самая сложная проблема
* пиар клиента :)
p.s. можно и серверную бубунту в chroot поставить и использовать нативный apt-file, но это некошерно, да и названия пакетов сильно отличаются.
P.P.S. попробую связаться с ними, может и базу дадут :)
Кстати, это надо запомнить.
Кстати, это надо запомнить. Такую штуку было бы интересно сделать.
Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.
.
Скрипт, который создаст список всех *.ebuild в дереве (чтобы потом отдавать emerge =пакет-версия), написать можно
Скрипт, который узнает у каждого *.ebuild максимальный набор USE-флагов, написать можно
Скрипт, который в цикле поставит текущий пакет со всеми USE-флагами, потом опросит equery files у него и сохранит вывод, а потом снесёт пакет, написать можно.
(Нужно ещё исключать из списка "требующих установки" те пакеты, что вытянулись по зависимостям, так как equery files по ним тоже можно сделать)
Получаем много полных путей к файлам, и имя пакета.
Остаётся придумать, как хранить, как извлекать, как отображать.
Нужна безлимитка, сильно быстрое железо и много процессорного времени.
А самое главное - нужны жЫзненные примеры, когда такой сервис необходим, ибо
в тех двух случаях, когда лично мне такое понадобилось в реальной жизни, мне помог google
У меня сейчас 26024 файла *.ebuild - от 0verkill-0.16-r3.ebuild до zzuf-0.12.ebuild
Даже если вообразить, что каждый ставится/опрашивается/сносится за пять минут, работы тут на 90 суток
Так что жЫзненные примеры в студию.
Это подпись, которую невозможно истолковать неправильно
Думаю чаще всего это надо,
Думаю чаще всего это надо, когда ищешь способ устранить какой-нить баг в графе зависимостей - то есть в первую очередь разработчикам/мейнтейнерам и при установке нестандартного ПО, отсутствующего в дереве портежей. Сам с таким сталкивался - до этого почему-то был уверен, что `equery b <фрагмент имени>` ищет и среди неустановленных пакетов )
-= Concordia victoriam gignit =-
Думал над таким полностью
Думал над таким полностью автоматическим сборщиком... почти нереально, ошибок в дереве немерено, даже не ошибок, для установки какого либо пакета выводит сообщение, что необходимо переустановить другой пакет с определенными USE-флагами. Кстати чем больше USE флагов, тем больше шансов что не соберется пакет :) (точнее будут какие-либо глюки, блокировки и т.д.) теоретически максимальная совместимость (собираемость) должна быть при USE=" " (т.е. то, что определено выбранным профайлом разработчиками).
Решение, на данный момент - сбор статистики с уже готовых работающих систем сообщества, кстати сюда бы еще информацию каким компилятором собирался пакет и с какими опциями (очень полезная инфа мейнтейнерам и разработчиками).
И еще.. каждый пользователь gentoo в каком то смысле сам себе мейнтейнер :) так что это нужно всем... да конечно очень редко.
Был тут, почему сейчас лежит
Был тут, почему сейчас лежит непонятно
http://dev.gentooexperimental.org/~mvg/f2edb/
вот нарыл недавно:
вот нарыл недавно: http://www.portagefilelist.de/index.php/Special:PFLQuery2