Найти в Дзене

Настройка RAD Studio для консольного кроссплатформенного приложения.

Данная статья представляет собой больше памятку в картинках, чтоб не забыть. Ибо постоянные танцы с бубном и ритуалы серой магии предметно напрягают. Задача настроить RAD Studio 12.X компании Embarcadero, установленной на платформе Windows, с возможностью сбора приложения для Linux. Благо что среду разработки можно скачать и использовать БЕСПЛАТНО для использования в частных, не коммерческих целях, ну и во многих других задачах. Начиная с версии 10.2 поддерживается Linux. В качестве виртуальной машины использовал VMWare 17. В качестве гостевой системы устанавливал ubuntu-24.10-live-server-amd64.iso. Перед этим пробовал ubuntu-23.04-live-server-amd64.iso, однако установить не удалось. В этой версии в диалоге настроек пользователя срабатывал AutoContinue, не давая возможности указать значения в соответствующих полях. Создаю виртуальную машину, со значениями по умолчанию. Сказу указываю путь к образу гостевой системы. На этом этапе указанную выше версию (ubuntu-23.04-live-server-amd64.is
Оглавление

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

Задача.

Задача настроить RAD Studio 12.X компании Embarcadero, установленной на платформе Windows, с возможностью сбора приложения для Linux. Благо что среду разработки можно скачать и использовать БЕСПЛАТНО для использования в частных, не коммерческих целях, ну и во многих других задачах. Начиная с версии 10.2 поддерживается Linux.

Установка виртуальной машины.

В качестве виртуальной машины использовал VMWare 17.

Рисунок 1. - Информация о виртуальной машине.
Рисунок 1. - Информация о виртуальной машине.

В качестве гостевой системы устанавливал ubuntu-24.10-live-server-amd64.iso. Перед этим пробовал ubuntu-23.04-live-server-amd64.iso, однако установить не удалось. В этой версии в диалоге настроек пользователя срабатывал AutoContinue, не давая возможности указать значения в соответствующих полях.

Создаю виртуальную машину, со значениями по умолчанию.

Рисунок 2. - Создание гостевой машины.
Рисунок 2. - Создание гостевой машины.
Рисунок 3. - Значения по умолчанию.
Рисунок 3. - Значения по умолчанию.

Сказу указываю путь к образу гостевой системы.

Рисунок 4. - Пусть к образу.
Рисунок 4. - Пусть к образу.
Рисунок 5. - Расположение системы.
Рисунок 5. - Расположение системы.
Рисунок 6. - Выделение ресурсов процессора.
Рисунок 6. - Выделение ресурсов процессора.
Рисунок 7. - Выделение оперативной памяти.
Рисунок 7. - Выделение оперативной памяти.
Рисунок 8. - Использую NAT.
Рисунок 8. - Использую NAT.
Рисунок 9. - Контроллер ввода\вывода.
Рисунок 9. - Контроллер ввода\вывода.
Рисунок 10. - Тип накопителя.
Рисунок 10. - Тип накопителя.
Рисунок 11. - Создаю новый диск.
Рисунок 11. - Создаю новый диск.
Рисунок 12. - Указываю размер диска, в одном файле.
Рисунок 12. - Указываю размер диска, в одном файле.
Рисунок 13. - Расположение диска.
Рисунок 13. - Расположение диска.
Рисунок 14. - Финишное окно с настройками.
Рисунок 14. - Финишное окно с настройками.

Установка Linux.

Рисунок 15. - Старт установки гостевой системы.
Рисунок 15. - Старт установки гостевой системы.
Рисунок 16. - Язык по умолчанию.
Рисунок 16. - Язык по умолчанию.
Рисунок 17. - Консоль по умолчанию.
Рисунок 17. - Консоль по умолчанию.
Рисунок 18. - Тип по умолчанию.
Рисунок 18. - Тип по умолчанию.
Рисунок 19. - Не много подождать, до определения IP адреса.
Рисунок 19. - Не много подождать, до определения IP адреса.
Рисунок 20. - Прокси не использую.
Рисунок 20. - Прокси не использую.
Рисунок 21. - Попытка обновиться.
Рисунок 21. - Попытка обновиться.
Рисунок 22. - Конфигурация накопителя по умолчанию.
Рисунок 22. - Конфигурация накопителя по умолчанию.
Рисунок 23. - Итоговая информация разбивки накопителя.
Рисунок 23. - Итоговая информация разбивки накопителя.
Рисунок 24. - Подтверждаем разбивку.
Рисунок 24. - Подтверждаем разбивку.

На этом этапе указанную выше версию (ubuntu-23.04-live-server-amd64.iso) установить не удалось.

Рисунок 25. - Настойка учетной записи.
Рисунок 25. - Настойка учетной записи.
Рисунок 26. - Обязательно устанавливаем OpenSSH.
Рисунок 26. - Обязательно устанавливаем OpenSSH.
Рисунок 27. - Ничего не устанавливаем.
Рисунок 27. - Ничего не устанавливаем.
Рисунок 28. - Ждём окончания установки сервера.
Рисунок 28. - Ждём окончания установки сервера.
Рисунок 29. - Перезагрузка.
Рисунок 29. - Перезагрузка.

Отключаем образ. Вынимаем диск.

Рисунок 30. - Отключаем установочный образ.
Рисунок 30. - Отключаем установочный образ.

Сервер установлен. Логинимся. Обновляем базу данных пакетов.

sudo apt update

Обновляем пакеты

sudo apt upgrade

Устанавливаем пакеты необходимые для компиляции программного обеспечения.

sudo apt install build-essential

Рисунок 31. - Обновление.
Рисунок 31. - Обновление.

Если не установить обновления зависимостей среды разработки то собрать приложение не получится, появится сообщение об ошибке E2597.

Рисунок 32. - Сообщение об отсутствии пакетов.
Рисунок 32. - Сообщение об отсутствии пакетов.

Если на этапе инсталляции системы не был установлен флаг на инсталляцию OpenSSH то его необходимо установить:

sudo apt install openssh-server

И запустить:

sudo systemctl enable --now ssh

Без SSH соединиться по WinSCP не получится.

Установка WinSCP

Следующим шагом надо установить WinSCP. Очень удобная софтина для отправки файлов на удалённые сервера. Посмотреть IP адрес гостевой машины можно командой:

ip addr

Рисунок 33. - Подключение к гостевой машине по SSH.
Рисунок 33. - Подключение к гостевой машине по SSH.

Данная манипуляция необходима для удобной отправки на гостевую систему файлов. Необходимо отправить и распаковать на гостевой системе PAServer (Сервер ассистента платформы). Этот ассистент позволит наблюдать результаты работы консольного приложения.

Сам PAServer находится по адресу:

Рисунок 34. - Расположение PAServer.
Рисунок 34. - Расположение PAServer.

Копируем и распаковываем архив:

Рисунок 35. - Копирование и распаковка PAServer.
Рисунок 35. - Копирование и распаковка PAServer.

Посмотрев на гостевой машине увидим:

Рисунок 36. - Скопированный и распакованный PAServer на гостевой машине.
Рисунок 36. - Скопированный и распакованный PAServer на гостевой машине.

Настройка RAD Studio

Подразумевается что при инсталляции среды разработки установлен комплект для Linux.

Рисунок 37. - Комплектация установки.
Рисунок 37. - Комплектация установки.

Создаём консольное приложение.

Рисунок 38. - Создаём консольное приложение.
Рисунок 38. - Создаём консольное приложение.

Добавляем целевую платформу Linux.

Рисунок 39. - Добавление целевой платформы.
Рисунок 39. - Добавление целевой платформы.

Создаём профиль, идём по адресу

Tools -> Options...

Рисунок 40. - Создание профиля.
Рисунок 40. - Создание профиля.

Выбираем целевую платформу и указываем имя профиля.

Рисунок 41. - Целевая платформа профиля.
Рисунок 41. - Целевая платформа профиля.

Указываем адрес и порт PAServer.

Рисунок 42. - Адрес и порт PAServer.
Рисунок 42. - Адрес и порт PAServer.

Запускаем PAServer на гостевой машине. У меня такой путь:

PAServer-23.0/paserver

Рисунок 43. - Запуск PAServer.
Рисунок 43. - Запуск PAServer.

Я пароль не указывал. При тестировании соединения должно появится:

Рисунок 44. - Тест соединения.
Рисунок 44. - Тест соединения.

Создаём приложение.

Поприветствуем мир.

Рисунок 45. - Текст консольного приложения.
Рисунок 45. - Текст консольного приложения.

При старте приложения попросит обновить SDK, единоразово.

Рисунок 46. - Запрос на обновление.
Рисунок 46. - Запрос на обновление.

При обновлении компонентов заменяем все что есть.

Рисунок 47. - Замена компонентов.
Рисунок 47. - Замена компонентов.

При обновлении библиотек на Linux, целесообразно обновить файловый кэш в RAD Studio. По адресу Tools -> Options --> Deployment --> SDK Manager --> Update Local File Cache.

Рисунок 48. - Обновление локального файлового кэша.
Рисунок 48. - Обновление локального файлового кэша.

После обновления, процесс выполнения наблюдаем на гостевой системе:

Рисунок 49. - Результат работы.
Рисунок 49. - Результат работы.

Запускаем проект на Linux без PAServer.

Собираем проект и отправляем в Linux. Отправляем с помощью WinSCP. У меня проект называется test.

Рисунок 50. - Копируем файл.
Рисунок 50. - Копируем файл.

В гостевой системе устанавливаем полномочия на выполнение файла test:

chmod +x test

и проверяем результат:

./test

Рисунок 51. - Выполнение консольного приложения пол Linux.
Рисунок 51. - Выполнение консольного приложения пол Linux.

Вуаля.

Продолжение темы тут.