Hasher

Матеріал з ALT Linux Wiki

hasher -- інструмент безпечного збирання пакунків з результатом, що не залежить від стану системи у якій виконано збирання.

hasher схожий на більш ранні sandman з ApplianceWare/ALT Linux або sbuild/pbuilder з Debian та більш пізній mock з Fedora, і на відміну від них спроектований так, щоб виключити вплив пакунку, що збирається, на систему у якій іде збирання та взаємний вплив пакунків, що збираються.

Сам інструмент розроблено Дмітрієм Лєвіним з ALT Linux Team для створення src.rpm у "чистому" оточенні (базова система збирання + розгорнуті залежності потрібні для збирання поточного пакунку). Пакунки підвантажуються із заданого у налаштуваннях сховища ("з коробки" налаштовано використання джерел з /etc/apt/sources.list та /etc/apt/sources.list.d/* системи на якій виконується збирання). Це дозволяє отримати ідентичний результат при умові використання ідентичних джерел.

Корисним є також використання під час збирання мінімальної множини додаткових пакунків. У ізольоване оточення встановлюється лише те, що зазначене під тегом BuildRequires у спек файлі. Якщо щось було забуто -- це можна буде виявити по результатах спроби збирання.

Використання прав суперкористувача (root) зведено до мінімуму. Створення оточення та більшість дій виконується з правами звичайного користувача (з використанням fakeroot). У комплекті з Gear використовується для збирання напряму з Git.

Мінімум щоб розпочати

Встановлення та налаштування hasher

Від суперкористувача зробіть:

  • Встановіть hasher:
# apt-get install hasher
  • Додайте логін під яким ви працюєте в системі у hasher:
# hasher-useradd <USER>

Більше ніяких дій від root виконувати не треба.

  • Перезайдіть в систему звичайним користувачем якім ви збиреєтесь працювати з hasher (hasher-useradd змінює список груп до яких входить користувач).
  • Створіть робочий каталог для hasher:
$ mkdir ~/hasher