Hasher/Руководство
Установка
hasher в ALT Linux располагается в пакетах hasher и hasher-priv и легко устанавливается:
# apt-get install hasher
Добавление пользователя
hasher использует специальных вспомогательных попользователей и группу hashman для своей работы. Каждого пользователя перед началом работы нужно зарегистрировать в hasher:
# hasher-useradd USER
Эта команда создаёт вспомогательных пользователей USER_a и USER_b и добавляет пользователя USER в группы hashman, USER_a и USER_b.
Поскольку hasher-useradd добавляет пользователя в группы, пользователю необходимо перелогиниться (открытие нового терминала в X не поможет) перед началом работы с hasher.
Сборочные зависимости
Сборочные зависимости RPM делятся на два вида:
- необходимые для корректного создания src.rpm из spec-файла (содержащие определения RPM-макросов, используемых в spec-файле),
- все остальные (необходимые для непосредственной сборки).
Поскольку hasher собирает пакеты из src.rpm (не считая поддержки gear), то для сборки необходимо иметь в хост-системе установленные сборочные зависимости первого типа. Большинство таких зависимостей (но пока не все) содержатся в пакетах с названием rpm-build-*.
Поскольку сборка src.rpm либо завершается неудачно (при отсутствии сборочной зависимости первого типа), либо корректно, то собирать src.rpm-пакеты в хост системе можно с помощью --nodeps</tt:
rpm -bs --nodeps foo.spec
Сам hasher, в отличие от gear, не предъявляет никаких требований к разделению сборочных зависимостей на первый и второй тип. Однако для совместимости с gear и для улучшения документируемости spec-файла рекомендуется распределять их так:
- В поле BuildRequires(pre) помещать сборочные завимости, требуемые для сборки src.rpm,
- В поле BuildRequires — все остальные.
Монтирование файловых систем внутри hasher
Некоторым приложениям для сборки требуется смонтированная файловая система (например, /proc). hasher поддерживает монтирование дополнительных файловых систем в сборочную среду.
Монтирование происходит при одновременном выполнении следующих трёх условий:
- Необходимая файловая система указана в файле /etc/hasher-priv/fstab, либо является одной из /proc, /dev/pts, /sys.
- Необходимая файловая система указана в опции --mountpoints при запуске hasher, либо (что то же самое) в ключе known_mountpoints конфигурационного файла hasher.
- Необходимая файловая система укзана сборочной зависимостью (например, BuildReq: /proc) собираемого пакета, прямой или косвенной (через другие сборочные зависимости пакета).
Монтирование /proc
- known_mountpoints=/proc в конфиге hasher,
- BuildRequires: /proc в пакете.
При сборке пакетов в Incoming при наличии /proc в сборочных зависимостях пакета эта файловая система будет смонтирована.