Ярлыки

gentoo (19) kde (7) btrfs (5) nvidia (4) portage (3) zfs (3) clementine (2) compiz (2) fs (2) kernel (2) windows (2) zram (2) сеть (2) bash (1) chattr (1) conky (1) cow (1) cpufreq (1) cryptsetup (1) dns (1) dnsmasq (1) dolphin (1) emerald (1) ext4 (1) f2fs (1) ffmpeg (1) firefox (1) kdm (1) kexec (1) kvm (1) lsattr (1) lvm (1) networkmanager (1) noop (1) openrc (1) pulseaudio (1) qemu (1) qtcurve (1) ram (1) reiserfs (1) s2ram (1) samba (1) sed (1) ssd (1) systemd (1) tmpfs (1) vlc (1) webdav (1) zcache (1) игры (1) шифрование (1)

Группировка системных файлов по пакетам. Общие наброски.

В самой грубой форме реализуемо так:
  • Приложения устанавливаются/обновляются/удаляются не через стандартный 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
при создании (или копировании в):

Комментариев нет:

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