В самой грубой форме реализуемо так:
Результат: в каталоге /pkg/$PKG_NAME будут сразу доступны все файлы приложения. Но если бы цель стояла лишь в наглядной демонстрации соедржимого установленных пакетов, то усилия бы не стоили того. Цель другая - работа с пакетами как с обычными каталогами и файлами. Поэтому стоит расширить возможности следующим образом: содержимое каталога /pkg рекурсивно отслеживается через механизм inotify. В зависимости от определённых операций выполняются определённые действия. При изменении-редактировании файлов ничего делать не надо (т.к. симлинку всё равно на что ссылаться, если, конечно, цель с таким именем ещё существует), а вот при удалении/создании всё иначе. Например, при удалении:
- Приложения устанавливаются/обновляются/удаляются не через стандартный portage, а через обёртку над ним
- Когда portage устанавливает пакет, обёртка грепает содержимое /var/db/pkg/*/*/CONTENTS, вычленяя obj и отбрасывая dir
- Результаты грепа копируются в каталог /pkg/$PKG_NAME
- Объекты копирования на местах их стандартного пребывания (в иерархии FHS) удаляются и вместо них создаются симлинки
- В каталогах /pkg/$PKG_NAME создаются каталоги info, в которые переносится содержимое каталогов /var/db/pkg/*/*, после чего, как в пунктах выше, объекты копирования стираются и заменяются симлинками
Результат: в каталоге /pkg/$PKG_NAME будут сразу доступны все файлы приложения. Но если бы цель стояла лишь в наглядной демонстрации соедржимого установленных пакетов, то усилия бы не стоили того. Цель другая - работа с пакетами как с обычными каталогами и файлами. Поэтому стоит расширить возможности следующим образом: содержимое каталога /pkg рекурсивно отслеживается через механизм inotify. В зависимости от определённых операций выполняются определённые действия. При изменении-редактировании файлов ничего делать не надо (т.к. симлинку всё равно на что ссылаться, если, конечно, цель с таким именем ещё существует), а вот при удалении/создании всё иначе. Например, при удалении:
- Запускается обёртка, которая вычищает "умершие" симлинки из FHS

Комментариев нет:
Отправить комментарий