Как построить локально билд DU4 на VM
Действия
Создайте и обновите новую VM
Подготовьте окружение для создания новых зон
Подготовьте скрипт для получения зависимостей компонент
Создайте зону для локального репозитроия
Создайте в этой зоне локальный репозиторий
Создайте новую зону для сборки компонент
Соберите компоненты
1. Создайте и обновите новую VM
Для создания VM в vSphere SPB-LABS выполните шаги 1-5 из этой инструкции.
2. Залогиньтесь с правами root и подготовьте VM для созданиня зон
Создайте 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.
6. Создайте новую зону для сборки компонент
Создайте зону и войдите в неё:
Команды ниже выполняются в зоне.
Подготовьте зону для сборки компонент. Для этого скопируйте этот скрипт в файл, например, prepare.sh
или выполните команду :
Сделайте его исполняемым и запустите:
7. Постройте компоненты
Скопируйте этот скрипт в файл, например, build_all.sh
или выполните команду:
Если Вы хотите, чтобы пстроение закончилось после первой же ошибки, присвойте 1 переменной STOP_ON_ERROR STOP_ON_ERROR=1
. В противном случае скрипт будет строить все компоненты по-очереди, независимо от ошибок. При этом в директории каждого компонента будет создаваться файл berror.log
, где вы сможете увидеть ошибки построения.
Сделайте файл выполняемым и запустите его:
Построение компонент может занять длительное время. Поэтому можно запустить скрипт при помощи утилиты screen.
Если Вы запустили построение всех компонент, то проверить, какие компоненты не построились, можно, выполнив команды:
После сборки компонент Вы можете проверить их установку в отдельной новой зоне.