Как построить локально билд DU4 на VM

Действия

  1. Создайте и обновите новую VM

  2. Подготовьте окружение для создания новых зон

  3. Подготовьте скрипт для получения зависимостей компонент

  4. Создайте зону для локального репозитроия

  5. Создайте в этой зоне локальный репозиторий

  6. Создайте новую зону для сборки компонент

  7. Соберите компоненты

1. Создайте и обновите новую VM

Для создания VM в vSphere SPB-LABS выполните шаги 1-5 из этой инструкции.

2. Залогиньтесь с правами root и подготовьте VM для созданиня зон

  1. Создайте mountpoint, куда будут монтироваться зоны:

root@dilos:~# zfs create -o mountpoint=/zones rpool/zones root@dilos:~# mkdir /builds

Update the /etc/apt/sources.list file:

cat > /etc/apt/sources.list <<EOT deb http://10.20.50.188/dilos4 du4-unstable main contrib non-free deb http://10.20.50.188/dilos dg2-unstable main contrib non-free deb-src http://10.20.50.188/dilos4 du4-unstable main contrib non-free EOT apt-get update

2. Добавьте пользователя admin:

root@dilos:~# useradd -m -g staff admin root@dilos:~# passwd admin Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully root@dilos:~# echo "admin ALL=(ALL:ALL) NOPASSWD: ALL" >> /etc/sudoers.d/admin

3. Выполните Инструкцию по настройке сети до шага, на котором создаётся зона zone01.

4. Для автоматизации создания зон и входа в них можно скопировать этот скрипт в файл create_zone.sh или выполнить команду:

Cделайте его выполняемым:

 

Теперь Вы можете запустить его в формате ./create_zone.sh <zone-name> <zone-ip-domain> <zone-ip-node> , например!:

./create_zone.sh zone02 192.168.0 3

3. Подготовьте скрипт для получения зависимостей

Создайте папку для репозитория и перейдите туда:

Чтобы нижеприведённый скрипт заработал, Вам нужно создать файл list_component , содержимое которого можно взять отсюда.

Здесь же создайте скрипт для получения исходников и их зависимостей. Для этого скопируйте этот скрипт в файл, например, make_repo.sh или выполните следующую команду:

Сделайте этот файл исполняемым:

Если Вы хотите получить лог с ошибками, то в строку LOG_FILE="" впишите имя файла, куда будет записываться сообщения о ходе выполнения, например:

4. Создайте зону для локального репозитория

Создайте зону и войдите в неё:

Команды ниже выполняются в зоне.

Установите в зоне необходимые пакеты для работы репозитория:

Создайте директорию, где у вас будут лежать конфигурационные файлы для репозитория:

и создайте конфигурационный файл репозитория:

5. Выполните эти команды для добавления пакетов и исходных файлов в репозиторий:

Процедура создания репозитория может занять длительное время. Поэтому можно запустить скрипт при помощи утилиты screen.

Если Вы подключились по SSH и хотите отключиться от сессии SSH или отключить свой компьютер на время, то выполните следующую команду:

Дальше в любой момент Вы можете нажать Ctrl-A d, после чего отключиться от сессии SSH.

Затем когда Вы захотите вернуться, залогиньтесь снова по SSH и введите команду:

6. Создайте новую зону для сборки компонент

Создайте зону и войдите в неё:

Команды ниже выполняются в зоне.

Подготовьте зону для сборки компонент. Для этого скопируйте этот скрипт в файл, например, prepare.sh или выполните команду :

Сделайте его исполняемым и запустите:

7. Постройте компоненты

Скопируйте этот скрипт в файл, например, build_all.sh или выполните команду:

Если Вы хотите, чтобы пстроение закончилось после первой же ошибки, присвойте 1 переменной STOP_ON_ERROR STOP_ON_ERROR=1. В противном случае скрипт будет строить все компоненты по-очереди, независимо от ошибок. При этом в директории каждого компонента будет создаваться файл berror.log, где вы сможете увидеть ошибки построения.

Сделайте файл выполняемым и запустите его:

Построение компонент может занять длительное время. Поэтому можно запустить скрипт при помощи утилиты screen.

Если Вы подключились по SSH и хотите отключиться от сессии SSH или отключить свой компьютер на время, то выполните следующую команду:

Дальше в любой момент Вы можете нажать Ctrl-A d, после чего отключиться от сессии SSH.

Затем когда Вы захотите вернуться, залогиньтесь снова по SSH и введите команду:

Если Вы запустили построение всех компонент, то проверить, какие компоненты не построились, можно, выполнив команды:

После сборки компонент Вы можете проверить их установку в отдельной новой зоне.