запускаем синтетический yum от простого пользователя
Синтетический - потомучто речь пойдет об yum, устанавливаемом на debian. Я использую его в качестве одного из элементов системы зеркалирования centos репозиториев. И поскольку этот yum реально никаких пакетов не устанавливает, то запускать его хотелось бы от простого пользователя, но не тут то было..
Итак, с чем нам придется столкнуться?
1) yum сразу проверяет, что запущен от root
2) yum-процесс создает lock-file /run/yum.pid
3) yum пользуется некоторыми папками для записи информации и естественно не везде у обычного пользователя есть права.
с первой проблемой удалось справиться с помощью fakeroot, это утилита, эмулирующая окружения рута для обычного пользователя. Обычно используется при сборке пакетов.
выдал невозможность создания lock-файла. После некоторого времени разбирательства оказалось что pid не параметризован и жестко зашит в коде:
file: /usr/lib/python2.7/dist-packages/yum/constants.py
Его пришлось поменять руками. В последствии этот параметр будет менять puppet, так что обновление пакета yum из репозитория не сломает систему.
Третье - самое простое. Когда yum будет ругаться на права на запись - просто поправьте их chown'ом.
з.ы. да, я знаю про sudo.
Синтетический - потомучто речь пойдет об 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.