1

У меня есть предложение автоматизировать процесс создания chroot-окружения и автоматической сборки пакета в этом окружениии. Под это дело я писал утилиту. На форуме этим вопросом заведует WildPie, поэтому было бы неплохо объединить усилия и сделать нормальную утилиту. В планах, например, сборка на tmpfs, если памяти много, то это здорово должно ускорить сборку пакетов. В общем давайте обсудим. Я кидал ссылку на iurt, но народ не особо воспринял. К тому же iurt кривоват и не совсем удобен (в частности, срёт много в лог и в вывод). Надеюсь, что новый инструмент окажется полезнее и сэкономит время мейнтейнерам.

2

Я за, чем больше инструментов для сборки, тем удобней.

3

Конечно, делайте, изобретайте, улучшайте.

Аккаунт отключен по просьбе пользователя. (28.12.2014)

4

Нужен WildPie smile

5

Он всем нужен, но куда-то пропал.
Обещал скрипт мне по конвертированию папки в репозиторий, testing-репу делать, про chroot в wiki написать и т.д., но куда-то он пропал.

Аккаунт отключен по просьбе пользователя. (28.12.2014)

6

romkaromka пишет:

Он всем нужен, но куда-то пропал.
Обещал скрипт мне по конвертированию папки в репозиторий, testing-репу делать, про chroot в wiki написать и т.д., но куда-то он пропал.

Кстати я никуда не пропал. Немного занят просто.

Сомневайся в ком угодно, но только не в себе.

7

Ура, ты появился.
У меня к тебе просьба. У меня не работают курсорные стрелки влево-вправо в chroot. После того как я настроил консоль кальки в 256 цветов, вместо 8.

WildPile пишет:
romkaromka пишет:

Он всем нужен, но куда-то пропал.
Обещал скрипт мне по конвертированию папки в репозиторий, testing-репу делать, про chroot в wiki написать и т.д., но куда-то он пропал.

Кстати я никуда не пропал. Немного занят просто.

8

Перед тем, что хотел сообщить, хочу задать один вопрос: а зачем вы заходите в chroot для интерактивной работы?

Теперь по сабжу. Откопал утилиту для автоматической сборки в chroot'е, завёл проект на Launchpad, код потихоньку буду выкладывать туда. На днях сделаю страничку на вики, напишу, как собирать пакеты в chroot автоматом.

9

Привет. Для меня пока этот способ более удобен, к тому же Mageia не пользуюсь.

10

omerta13 пишет:

Перед тем, что хотел сообщить, хочу задать один вопрос: а зачем вы заходите в chroot для интерактивной работы?

Теперь по сабжу. Откопал утилиту для автоматической сборки в chroot'е, завёл проект на Launchpad, код потихоньку буду выкладывать туда. На днях сделаю страничку на вики, напишу, как собирать пакеты в chroot автоматом.

Сборка в chroot автоматом нужна.

Сомневайся в ком угодно, но только не в себе.

11

Создал на wiki [1] страничку с описанием этой штуки. Обсуждать можно тут и на Launchpad [2]. Теперь вопрос собственно к WildPie. Я понимаю, что squashfs был взят не с потолка, но всё же. Какие были аргументы в пользу squashfs? Мой скрипт пока что жмёт chroot в обычные тарболлы разных форматов (gz, bz2 и xz). Если squashfs полезен, то надо добавить и его поддержку.

[1] http://wiki.mageia.org.ru/index.php?title=Aum
[2] https://launchpad.net/aum

12 (2012-07-29 08:12:23 отредактировано WildPile)

omerta13 пишет:

Создал на wiki [1] страничку с описанием этой штуки. Обсуждать можно тут и на Launchpad [2]. Теперь вопрос собственно к WildPie. Я понимаю, что squashfs был взят не с потолка, но всё же. Какие были аргументы в пользу squashfs? Мой скрипт пока что жмёт chroot в обычные тарболлы разных форматов (gz, bz2 и xz). Если squashfs полезен, то надо добавить и его поддержку.

[1] http://wiki.mageia.org.ru/index.php?title=Aum
[2] https://launchpad.net/aum

Squashfs действительно не с потолка. Ведь это не архив а сжатая файловая система. Скорость распаковки потрясающе высокая в отличие от простых архивов, да и образы очень легко монтируются. Можно смонтировать без распаковки всего лишь один единственный образ в несколько точек приделав к нему несколько(сколько угодно) разных overlay на запись. Оверлей почистил и снова новенький chroot. Скоро выложу chroot окружение работающее без распаковки путём монтирования образа. Надо немного времени.

Сомневайся в ком угодно, но только не в себе.

13

omerta13 пишет:

Создал на wiki [1] страничку с описанием этой штуки.

Следуя описанию невозможно вообще ничего собрать, информации слишком мало, нет последовательности действий от установки sudo до на выходе готового пакета.

Аккаунт отключен по просьбе пользователя. (28.12.2014)

14 (2012-07-29 10:46:28 отредактировано omerta13)

romkaromka пишет:
omerta13 пишет:

Создал на wiki [1] страничку с описанием этой штуки.

Следуя описанию невозможно вообще ничего собрать, информации слишком мало, нет последовательности действий от установки sudo до на выходе готового пакета.

Не надо ничего собирать пока что. Это документационная заготовка. Я выложу RPM-пакеты, тогда будете собирать

15

Заготовку надо писать чтобы можно было ее понять, больно мудрено. Лично я ничего не понял.

Аккаунт отключен по просьбе пользователя. (28.12.2014)

16

romkaromka пишет:

Заготовку надо писать чтобы можно было ее понять, больно мудрено. Лично я ничего не понял.

С какого момента становится непонятно? Если говорить "всё", то улучшить документацию практически невозможно. Хочется конкретики. Ещё раз. Утилита использует несколько команд, которые требуют для своего запуска прав рута, поэтому мы должны настроить sudo. После настройки можно сразу же приступать к сборке. Простейший случай использования я описал:

aum -v --distrib=http://mirror.yandex.ru/mageia/distrib/2/x86_64/ opendpi-1.3.0-1.mga2.src.rpm

Эта команда подключит 64-битный репозиторий и пересоберёт в chroot пакет opendpi. Ключик -v служит для вывода подробной информации работы скрипта. Вот и всё.

17 (2012-07-29 11:37:57 отредактировано romkaromka)

"если у вас есть образ chroot" - а если у меня нет образа chroot, то что? не описано.
urpmi aum пропущено, надо указать в каком репозитории брать пакет aum.
где пересобранный пакет будет лежать? и т.д.
то есть пока следуя описанному, ничего не собрать.
пожалуйста, выдели последовательность шагов более четко, не пропуская шаги.

Аккаунт отключен по просьбе пользователя. (28.12.2014)
Спасибо сказали: omerta131

18

WildPile пишет:


Squashfs действительно не с потолка. Ведь это не архив а сжатая файловая система. Скорость распаковки потрясающе высокая в отличие от простых архивов, да и образы очень легко монтируются. Можно смонтировать без распаковки всего лишь один единственный образ в несколько точек приделав к нему несколько(сколько угодно) разных overlay на запись. Оверлей почистил и снова новенький chroot. Скоро выложу chroot окружение работающее без распаковки путём монтирования образа. Надо немного времени.

А как сделать overlay? Насколько я понимаю, сама по себе squashFS это ФС "только-для-чтения". UnionFS подходит для overlay?

19

romkaromka пишет:

"если у вас есть образ chroot" - а если у меня нет образа chroot, то что? не описано.
urpmi aum пропущено, надо указать в каком репозитории брать пакет aum.
где пересобранный пакет будет лежать? и т.д.
то есть пока следуя описанному, ничего не собрать.
пожалуйста, выдели последовательность шагов более четко, не пропуская шаги.

Спасибо, стало гораздо понятнее. Да, надо поправить.

20

omerta13 пишет:
WildPile пишет:


Squashfs действительно не с потолка. Ведь это не архив а сжатая файловая система. Скорость распаковки потрясающе высокая в отличие от простых архивов, да и образы очень легко монтируются. Можно смонтировать без распаковки всего лишь один единственный образ в несколько точек приделав к нему несколько(сколько угодно) разных overlay на запись. Оверлей почистил и снова новенький chroot. Скоро выложу chroot окружение работающее без распаковки путём монтирования образа. Надо немного времени.

А как сделать overlay? Насколько я понимаю, сама по себе squashFS это ФС "только-для-чтения". UnionFS подходит для overlay?

aufs smile

Сомневайся в ком угодно, но только не в себе.

21

Что-нибудь ещё надо улучшить на вики? http://wiki.mageia.org.ru/index.php?title=Aum
Осталось 2 пункта: установка инструментов и ссылка на chroot.

22

1) где брать aum,
2) зачем нужен чтобы собрать пакет .src.rpm?
3) почему речь идет о сборке пакетов, когда это пересборка из .src.rpm?
4) genchroot-tarball нигде нет, где брать?
5) непонятна практическая польза, ведь если брать .src.rpm от других дистрибутивов, то надо чтобы был суффикс .mrc.mga2, да и фиг такая пересборка заработает без правки spec-файла, без патчей и т.д.

Аккаунт отключен по просьбе пользователя. (28.12.2014)

23 (2012-08-01 18:04:16 отредактировано romkaromka)

Хотя теоретически если этот метод позволит пересобирать 64битные пакеты на 32битной системе (и наоборот 32битные пакеты на 64битной системе ), то этот метод очень нужен. Уже сейчас у нас есть .src.rpm, которые не пересобраны для обоих архитектур.
Пока, имея 32битную систему, не могу найти способа сборки 64битных пакетов (у Mageiafriend такая же проблема): готовый chroot от WildPile тут бессилен, а на виртуалке 64битная магея страшно лагает.

Аккаунт отключен по просьбе пользователя. (28.12.2014)

24

romkaromka пишет:

1) где брать aum,
2) зачем нужен чтобы собрать пакет .src.rpm?
3) почему речь идет о сборке пакетов, когда это пересборка из .src.rpm?
4) genchroot-tarball нигде нет, где брать?
5) непонятна практическая польза, ведь если брать .src.rpm от других дистрибутивов, то надо чтобы был суффикс .mrc.mga2, да и фиг такая пересборка заработает без правки spec-файла, без патчей и т.д.

Где брать пакеты, я укажу. SRPM -- это архив, состоящий из спека и исходников. По сути нет большой разницы между сборкой из спека или из SRPM'а. Чтобы сделать SRPM, достаточно сказать rpmbuild -bs файл_спека. Я думаю, что это совсем несложно. SRPM удобнее, т. к. настройки rpm могут отличаться в различных системах (или пользователь может их изменить) и например исходники будут лежать на в /home/user/rpmbuild/SOURCES, а вообще хрен знает где. Кстати, если посмотреть на аналогичные инструменты сборки, то там сборка также происходит исключительно с помощью SRPM, т. е. это совершенно стандартная принятая практика.
Суффикс будет изменён в собранных файлах автоматически (на основе rpm, который лежит в chroot), т. е. независимо от того, какой суффикс был подан на вход, на выходе вы получите правильный суффикс системы, для которой выполнялась сборка. Об этом можно вообще не беспокоиться.

25 (2012-08-01 18:19:56 отредактировано omerta13)

Как уже писалось ранее, сборка 32-битных пакетов на 64-битной машине происходит без проблем. aum умеет это делать. А вот собрать 64-битный пакет на 32-битной системе  гораздо сложнее. Сейчас будет дописан aum, и я надеюсь, что запущенная сборочная решит проблему со сборками под различные архитектуры. Это можно решить двумя способами: собирать на 64-битной системе пакеты под две архитектуры (быстрое, но негибкое решение), а можно завести группу виртуальных машин (немного сложнее, но гораздо более гибкий и "правильный" способ).