Инструменты сборки пакетов ALT Linux Предисловие ALT Linux помимо обыч

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
= Инструменты сборки пакетов в ALT Linux =
== Предисловие ==
ALT Linux, помимо обычных для rpm-based дистрибутивов, содержит ALT-специфичные инструменты для сборки пакетов. Такие инструменты являются основным средством сборки пакетов. Это:
* hasher -- инструмент сборки в изолированном окружении, гарантирует безопасность сборки и корректность сборочных зависимостей.
* gear -- инструмент и правила для сборки пакета из git-репозитория. git-репозиторий + gear-правила называются gear-репозиторием
* git.alt -- (необходим только в случае, если есть желание, чтобы пакет попал в дистрибутив) сервис хранения и автоматической сборки пакетов из gear-репозиториев
Рассмотрим эти инструменты чуть подробнее
== Инструментарий ==
=== hasher ===
hasher предназначен для безопасной сборки пакетов в изолированном окружении.
В отличии от аналогов (например, pbuilder), hasher использует только пользовательские
аккаунты. hasher при каждой сборке создает "чистое" окружение и очень активно
использует apt для получения необходимых пакетов, так что желателен широкий
канал до ближайшего зеркала ALT Linux. Окружение hasher может отличаться
от окружения "хост системы": например, на одной машине с бранчем M41 можно
собирать пакеты для бранча M40, M50 и Sisyphus.
hasher требует предварительной настройки. Как минимум, добавления пользователя:
# hasher-useradd anarresti
По умолчанию, hasher будет создавать окружение для сборки в ~/hasher указанного
пользователя. Более подробно о настройках и использовании hasher можете прочитать
на соответствующей странице: [http://altlinux.org/Hasher](http://altlinux.org/Hasher)
=== git ===
git -- это распределенная система контроля версий, создана автором ядра Linux --
Линусом Торвальдсом. В ALT Linux это основная используемая система контроля версий.
Минимальная настройка git заключается в указании имени пользователя и его email:
$ git config --global user.name "Yury Yurevich"
$ git config --global user.email the.pythy@gmail.com
git достаточно сильно отличается от традиционных систем контроля версий
(например, Subversion) и имеет свою специфику по отношению к другим
распределенным систем контроля версий (Mercurial, Bazaar), так что
крайне желательно познакомиться с ним предварительно:
[Git Community Book](http://book.git-scm.com/).
=== gear ===
gear -- это инструмент сборки пакетов из git-репозиториев. Для сборки пакета
в git-репозитории должны быть: spec-файл, исходные тексты, правила для gear.
Такой набор называется gear-репозиторием. gear по сути является надстройкой
над git, rpmbuild и hasher, так что необходимо, чтобы они были настроены.
gear не использует собственные настройки, его поведение целиком определяется
правилами внутри репозитория. Правила для gear находятся в файле `.gear/rules`
относительно корня git-репозитория (т.е. каталог `.gear` распологается рядом
с каталогом `.git`).
Более подробно о Gear можно узнать из вики: [http://altlinux.org/Gear](http://altlinux.org/Gear).
=== git.alt ===
git.alt -- это сервис автоматической сборки и хранения gear-репозиториев. Основной
интерфейс -- через ssh. Доступ через ssh есть только у членов ALT Linux Team.
Публичная часть git.alt -- это [http://git.altlinux.org].
За более полной информацией следует обратиться к вики: [http://altlinux.org/Git.alt](http://altlinux.org/Git.alt).
=== Сценарий 1. Сборка src.rpm. ===
Используемые инструменты: hasher
src.rpm в методологии ALT Linux -- это промежуточный формат, между gear-репозиторием
и бинарным rpm. Формально, в ALT Linux можно собрать src.rpm из другого дистрибутива,
фактически же это сталкивается с рядом требований политики пакетирования ALT Linux (ССЫЛКА),
и сборка, скорее всего, не пройдет. Тем не менее, можно попытаться:
$ hsh path/to/src.rpm
Отличия сборки hasher'ом относительно "традиционного" rpmbuild:
* сборочные зависимости разрешаются автоматически
* не требуется в основную систему ставить сборочные зависимости
* для создания изолированного окружения необходимы дополнительные пакеты
* hasher при каждой сборке создает чистое окружение, поэтому крайне желательно наличие широкого канала до ближайшего зеркала ALT Linux.
В случае, если есть необходимость собрать src.rpm от ALT Linux, то разумнее
собрать соответствующий gear-репозиторий.
=== Сценарий 2. Сборка gear-репозитория ===
Используемые инструменты: gear
Gear-репозиторий можно собрать двумя способами:
* при помощи rpmbuild
* при помощи hasher