понедельник, 18 июня 2012 г.

Сборка RPM пакетов без прав root

В дефолтной конфигурации CentOS в качестве корневой директории при сборке пакетов используется /usr/src/redhat. Такой подход требует прав root, поскольку владельцем и группой у /usr/src/redhat является root.

Чтобы избежать возможной порчи системы при сборке новой версии пакета (все вспомнили rm -fr /usr /lib/nvidia у bumblebee) полезно создать отдельного пользователя, например build.

# useradd -s /bin/bash build

Затем настроить локальный buildroot для сборки пакетов и собирать их уже от имени пользователя build.

# su - build
$ mkdir -p ~/RPM/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
$ cat > ~/.rpmmacros << EOF
%_topdir %(echo $HOME)/RPM
EOF
$ rpmbuild -ta courier-imap-4.9.3.tar.bz2

Собранный пакет будет находиться в ~/RPM/RPMS/x86_64/courier-imap-4.9.3-1.x86_64.rpm (если архитектура x86_64).

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

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