Создание сборок с помощью виртуальных машин¶
Для создания бинарных сборок под Linux используются виртуальные машины, благодаря чему можно создавать сборки как для 32-битных версий Linux, так и для 64-битных. Для работы с виртуальными машинами должны быть установлены VirtualBox, Vagrant и Ansible.
Работа с виртуальными машинами осуществляется через команды Fabric (см. раздел Команды для создания бинарных сборок на виртуальных машинах).
Виртуальная машина запускается в VirtualBox и управляется с помощью Vagrant. Ansible используется для того, чтобы настроить виртуальные машины для работы, закачать по сети на них исходные коды OutWiker, запустить создание бинарной сборки и скачать полученные файлы на целевую машину (на хост).
Для создания бинарных сборок используется Ubuntu 17.04. Для сборки не используется Ubuntu 16.04 LTS, поскольку в этой версии Ubuntu есть проблемы с wxPython, о чем можно прочитать у меня в блоге.
Файлы для работы с виртуальными машинами расположены в папке need_for_build/virtual/build_machines/
исходных кодов. В папке need_for_build/virtual/build_machines/zesty_32
находится Vagrantfile 32-битной версии Ubuntu, а в need_for_build/virtual/build_machines/zesty_64
находится Vagrantfile 64-битной версии Ubuntu.
Прежде чем запускать сборку на виртуальных машинах, нужно создать и подготовить виртуальные машины. Для этого нужно выполнить команду.
fab vm_prepare
Виртуальные машины будут созданы с помощью Vagrant, при этом будет скачан образ виртуальной машины. Этот процесс может занять достаточно много времени (более 10 минут) и скачать большой объем данных (сотни мегабайт). Эту операцию нужно делать только один раз, если вы уже создали виртуальную машину, то подготавливать ее к сборке не требуется, если только вы не удалили виртуальную машину с помощью команды
vagrant destroy
Команду vagrant destroy нужно выполнять в папках need_for_build/virtual/build_machines/zesty_32
и need_for_build/virtual/build_machines/zesty_64
, fab-команды для данной операции пока не создано.
Еще один случай, когда может понадобиться выполнить команду fab vm_prepare - это если для сборки OutWiker понадобится установить какой-то новый пакет в операционную систему.
Для запуска сборки нестабильной версии OutWiker на виртуальных машинах нужно выполнить команду
fab vm_linux_binary
Для запуска сборки стабильной версии OutWiker на виртуальных машинах нужно выполнить команду
fab vm_linux_binary:1
Эта команда сначала запустит виртуальные машины, установит необходимые python-библиотеки из файлов requirements.txt
и file:requirements_dev.txt, закачает на виртуальные машины исходные коды, запустит на них создание бинарных сборок с помощью команды fab linux_binary (см. раздел Сборка под Linux) и скачает полученные файлы с виртуальных машин.
Если все пройдет без ошибок, то в папке build/x.x.x.xxx/linux
появятся файлы:
outwiker_linux_amd64.7z
иoutwiker_linux_amd64.zip
- архивы с 64-битными бинарными сборками, упакованными с помощью архиваторов 7z и zip соответственно.outwiker_linux_i386.7z
иoutwiker_linux_i386.zip
- архивы с 32-битными бинарными сборками, упакованными с помощью архиваторов 7z и zip соответственно.outwiker-x.x.x+xxx_amd64.deb
- deb-пакет с 64-битной бинарной сборкой.outwiker-x.x.x+xxx_i386.deb
- deb-пакет с 32-битной бинарной сборкой.
Для останова всех виртуальных машин используйте команду
fab vm_stop
или
fab vm_halt
Эти две команды аналогичны. После создания бинарных сборок на виртуальных машинах с помощью команды fab vm_linux_binary виртуальные машины не останавливаются и продолжают занимать оперативную память пока вы их не остановите с помощью указанных выше команд.