Hasher: відмінності між версіями

Матеріал з ALT Linux Wiki
(Створена сторінка: '''hasher''' -- інструмент ''безпечного'' збирання пакунків з результатом, що ''не залежить'' від с...)
 
 
(Не показано 11 проміжних версій цього користувача)
Рядок 1: Рядок 1:
[[Sisyphus|<<]]
'''hasher''' -- інструмент ''безпечного'' збирання пакунків з результатом, що ''не залежить'' від стану системи у якій виконано збирання.
'''hasher''' -- інструмент ''безпечного'' збирання пакунків з результатом, що ''не залежить'' від стану системи у якій виконано збирання.


<tt>hasher</tt> схожий на більш ранні [http://old.linux.kiev.ua/~mike/docs/livecd/sandman_mini-howto.html sandman] з ApplianceWare/ALT Linux або [http://packages.debian.org/sid/sbuild sbuild]/[http://www.netfort.gr.jp/~dancer/software/pbuilder-doc/pbuilder-doc.html pbuilder] з [[ruwp:Debian|Debian]] та більш пізній [http://fedoraproject.org/wiki/Projects/Mock mock] з [[ruwp:Fedora|Fedora]], і на відміну від них спроектований так, щоб виключити вплив пакунку, що збирається, на систему у якій іде збирання та взаємний вплив пакунків, що збираються.
<tt>hasher</tt> схожий на більш ранні [http://old.linux.kiev.ua/~mike/docs/livecd/sandman_mini-howto.html sandman] з ApplianceWare/ALT Linux або [http://packages.debian.org/sid/sbuild sbuild]/[http://www.netfort.gr.jp/~dancer/software/pbuilder-doc/pbuilder-doc.html pbuilder] з [[ruwp:Debian|Debian]] та більш пізній [http://fedoraproject.org/wiki/Projects/Mock mock] з [[ruwp:Fedora|Fedora]], і на відміну від них спроектований так, щоб виключити вплив пакунку, що збирається, на систему у якій іде збирання та взаємний вплив пакунків, що збираються.
Сам інструмент розроблено Дмітрієм Лєвіним з ALT Linux Team для створення <tt>src.rpm</tt> у "чистому" оточенні (базова система збирання + розгорнуті залежності потрібні для збирання поточного пакунку). Пакунки підвантажуються із заданого у налаштуваннях сховища ("з коробки" налаштовано використання джерел з <tt>/etc/apt/sources.list</tt> та <tt>/etc/apt/sources.list.d/*</tt> системи на якій виконується збирання). Це дозволяє отримати ідентичний результат при умові використання ідентичних джерел.
Корисним є також використання під час збирання мінімальної множини додаткових пакунків. У ізольоване оточення встановлюється лише те, що зазначене під тегом <tt>BuildRequires</tt> у спек файлі. Якщо щось було забуто -- це можна буде виявити по результатах спроби збирання.
Використання прав суперкористувача (root) зведено до мінімуму. Створення оточення та більшість дій виконується з правами звичайного користувача (з використанням <tt>fakeroot</tt>).  У комплекті з [[ruwp:Gear|Gear]] використовується для збирання напряму з [[ruwp:Git|Git]].
=Мінімум щоб розпочати=
== Встановлення та налаштування <tt>hasher</tt> ==
Від суперкористувача зробіть:
* Встановіть <tt>hasher</tt>:
# apt-get install hasher
* Додайте логін під яким ви працюєте в системі у <tt>hasher</tt>:
# hasher-useradd <USER>
Більше ніяких дій від root виконувати не треба.
* Перезайдіть в систему звичайним користувачем якім ви збиреєтесь працювати з <tt>hasher</tt> (<tt>hasher-useradd</tt> змінює список груп до яких входить користувач).
* Створіть робочий каталог для <tt>hasher</tt>:
$ mkdir ~/hasher
==Збирання==
У найпростішому випадку коли вже існує <tt>src.rpm</tt> достатньо:
$ hsh ~/hasher path/to/foobar-0.0-alt0.src.rpm
* Результат збирання доступний у <tt>~/hasher/repo</tt>.
* Для спостерігання за процесом використовуйте ключ <tt>-v</tt>.
== Дальнейшая информация ==
* [[hasher FAQ]]
* [[Посібник по hasher]]
* [[Довідник з hasher]]
=== Публікації ===
* [http://ftp.altlinux.org/pub/people/ldv/hasher/thesis-2004.html hasher: технологии безопасной сборки дистрибутива] (Протва 2004, Дмітрій Левін)
* [http://ftp.altlinux.org/pub/people/ldv/hasher/thesis-2005.html hasher: технология виртуализации для безопасного выполнения приложений] (Протва 2005, Дмітрій Левін)
=== Ліцензія ===
GPLv2 or later.
=== Текст програми ===
* [http://git.altlinux.org/people/ldv/packages/hasher.git hasher.git]
* [http://git.altlinux.org/people/ldv/packages/hasher-priv.git hasher-priv.git]


----
----
Рядок 7: Рядок 55:
[[Category:Розробнику]]
[[Category:Розробнику]]
[[Category:Адміністраторові]]
[[Category:Адміністраторові]]
[[Sisyphus|<<]]

Поточна версія на 11:41, 5 березня 2010

<<

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

Збирання

У найпростішому випадку коли вже існує src.rpm достатньо:

$ hsh ~/hasher path/to/foobar-0.0-alt0.src.rpm
  • Результат збирання доступний у ~/hasher/repo.
  • Для спостерігання за процесом використовуйте ключ -v.

Дальнейшая информация


Публікації

Ліцензія

GPLv2 or later.

Текст програми


<<