запускаем синтетический yum от простого пользователя



Синтетический - потомучто речь пойдет об yum, устанавливаемом на debian. Я использую его в качестве одного из элементов системы зеркалирования centos репозиториев. И поскольку этот yum реально никаких пакетов не устанавливает, то запускать его хотелось бы от простого пользователя, но не тут то было..

Итак, с чем нам придется столкнуться?

1) yum сразу проверяет, что запущен от root

2) yum-процесс создает lock-file /run/yum.pid

3) yum пользуется некоторыми папками для записи информации и естественно не везде у обычного пользователя есть права.



с первой проблемой удалось справиться с помощью fakeroot, это утилита, эмулирующая окружения рута для обычного пользователя. Обычно используется при сборке пакетов.

fakeroot yum update


выдал невозможность создания lock-файла. После некоторого времени разбирательства оказалось что pid не параметризован и жестко зашит в коде:



file: /usr/lib/python2.7/dist-packages/yum/constants.py

#Constants

YUM_PID_FILE = '/var/run/yum.pid'




Его пришлось поменять руками. В последствии этот параметр будет менять puppet, так что обновление пакета yum из репозитория не сломает систему.



Третье - самое простое. Когда yum будет ругаться на права на запись - просто поправьте их chown'ом.



з.ы. да, я знаю про sudo.