Kernel/build packages: различия между версиями

Материал из ALT Linux Wiki
(Новая страница: «= Самостоятельная сборка ядра с помощью средства пакетирования (hasher) на примере std-def = Все пакеты в Альт собираются с помощью инструмента hasher и ядро не исключение. Для того, чтоб воспроизвести сборку пакета ядра вам понадобится около 24 гигабайт ди...»)
 
Нет описания правки
Строка 4: Строка 4:


== Настраиваем использование hasher ==
== Настраиваем использование hasher ==
=== Настройка системы ===
Под '''root''' ставим необходимые пакеты и настраиваем hasher:
Под '''root''' ставим необходимые пакеты и настраиваем hasher:


Строка 22: Строка 23:
   allow_ttydev=yes
   allow_ttydev=yes


По умолчанию hasher использует системные APT репозитории, но все это настраивается (под пользователем через <code>~/.hasher/config</code> документация в <code>man hsh</code>).
Запускаем необходимый сервис:
 
  root# '''systemctl''' enable --now hasher-privd
 
=== Настройка пользователя ===
По умолчанию hasher использует системные APT репозитории, но все это настраивается (через <code>~/.hasher/config</code> документация в <code>man hsh</code>).
Под пользователем создаем рабочий и конфигурационный каталоги:
 
  $ mkdir -p ~/hasher ~/.hasher
 
Дополнительно можно сконфигурировать hasher для сборки из Сизифа под x86_64, примеры содержимого конфигурационных файлов
 
==== Файл ~/.hasher/config ====
 
  known_mountpoints=/proc,/dev/pts,/dev/kvm
  lazy_cleanup=yes
  apt_config=~/.hasher/apt.conf
 
<code>/proc</code> и <code>/dev/kvm</code> пригодятся для тестирования. <code>lazy_cleanup=yes</code> для того чтоб сборочная среда не была очищена после сборки.
 
==== Файл ~/.hasher/apt.conf ====
 
  Dir::Etc::main "/dev/null";
  Dir::Etc::parts "/var/empty";
  Dir::Etc::SourceParts "/var/empty";
  Dir::Etc::SourceList "/home/devel/.hasher/sources.list";
 
Обратите внимание, что тут указан полный путь к вашему пользователю ''devel'' в параметре <code>SourceList</code>.
 
==== Файл ~/.hasher/sources.list ====
 
  rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux Sisyphus/x86_64 classic
  rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux Sisyphus/noarch classic
 
Соответственно, для сборки под p10, вы можете заменить тут <code>Sisyphus</code> на <code>p10/branch</code>, в этом случае <code>[alt]</code> надо заменить на <code>[p10]</code>. Для сборки под другую архитектуру заменяйте <code>x86_64</code>, скажем, на <code>i586</code>.
 
Для того чтоб убедиться, что hasher настроен и работает можно запустить <code>hsh --init</code>.


== Получаем исходный код ==
== Получаем исходный код ==
Получите исходный код как описано в статье "[[Kernel/getting_sources|Получение исходного кода ядер Альт с помощью Git]]" и не забудьте проверить его целостность.
Получите и проверьте целостность исходного кода как описано в статье "[[Kernel/getting_sources|Получение исходного кода ядер Альт с помощью Git]]".


== Сборка из тэга ==
== Сборка из тэга ==

Версия от 10:10, 12 ноября 2022

Самостоятельная сборка ядра с помощью средства пакетирования (hasher) на примере std-def

Все пакеты в Альт собираются с помощью инструмента hasher и ядро не исключение. Для того, чтоб воспроизвести сборку пакета ядра вам понадобится около 24 гигабайт дискового пространства. Сборка не будет на 100% совпадать с оригинальным пакетом так как у вас будет различаться сборочная среда — версии утилит с помощью которых осуществлялась сборка.

Настраиваем использование hasher

Настройка системы

Под root ставим необходимые пакеты и настраиваем hasher:

 root# apt-get update
 root# apt-get install -y hasher

Для вашего пользователя добавляем пользователей-сателлитов. Допустим, у вас рабочий пользователь devel, тогда команды следующие:

 root# hasher-useradd devel
 Adding user devel to group devel_a
 Adding user devel to group devel_b
 Adding user devel to group hashman

Не обязательный шаг, но полезный для тестирования — добавляем в /etc/hasher-priv/system строки:

 allowed_mountpoints=/proc,/dev/pts,/dev/shm,/sys
 allowed_devices=/dev/kvm
 allow_ttydev=yes

Запускаем необходимый сервис:

 root# systemctl enable --now hasher-privd

Настройка пользователя

По умолчанию hasher использует системные APT репозитории, но все это настраивается (через ~/.hasher/config документация в man hsh). Под пользователем создаем рабочий и конфигурационный каталоги:

 $ mkdir -p ~/hasher ~/.hasher

Дополнительно можно сконфигурировать hasher для сборки из Сизифа под x86_64, примеры содержимого конфигурационных файлов

Файл ~/.hasher/config

 known_mountpoints=/proc,/dev/pts,/dev/kvm
 lazy_cleanup=yes
 apt_config=~/.hasher/apt.conf

/proc и /dev/kvm пригодятся для тестирования. lazy_cleanup=yes для того чтоб сборочная среда не была очищена после сборки.

Файл ~/.hasher/apt.conf

 Dir::Etc::main "/dev/null";
 Dir::Etc::parts "/var/empty";
 Dir::Etc::SourceParts "/var/empty";
 Dir::Etc::SourceList "/home/devel/.hasher/sources.list";

Обратите внимание, что тут указан полный путь к вашему пользователю devel в параметре SourceList.

Файл ~/.hasher/sources.list

 rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux Sisyphus/x86_64 classic
 rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux Sisyphus/noarch classic

Соответственно, для сборки под p10, вы можете заменить тут Sisyphus на p10/branch, в этом случае [alt] надо заменить на [p10]. Для сборки под другую архитектуру заменяйте x86_64, скажем, на i586.

Для того чтоб убедиться, что hasher настроен и работает можно запустить hsh --init.

Получаем исходный код

Получите и проверьте целостность исходного кода как описано в статье "Получение исходного кода ядер Альт с помощью Git".

Сборка из тэга