Swift – язык программирования, известный своей безопасностью, высокой производительностью и удобством работы с современными концепциями программирования. Он широко используется для разработки под iOS и macOS, а также предоставляет такой инструмент, как Swift Package Manager (SPM), который позволяет создавать, компилировать и управлять проектами любой сложности, включая CLI-приложения. Используя SPM, можно легко организовать структуру проекта, подключить зависимости и запустить приложение.
В статье рассмотрим, как установить Swift на Ubuntu 24.04 и запустить готовое к использованию простейшее рабочее CLI-приложение.
Установка Swift
Установкой Swift и его зависимостей управляет Swiftly – официальный менеджер версий Swift для Linux. Swiftly поддерживает переключение между различными версиями, а также загрузку обновлений.
Следующая команда загружает в текущий каталог архив Swiftly:
$ curl -O https://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz
Чтобы убедиться в том, что архив загружен, запустите команду:
$ ls -l
Из вывода команды видно, что файл архива действительно присутствует в текущей директории:

Затем распакуйте загруженный архив:
$ tar zxf swiftly-x86_64.tar.gz
В результате в каталоге появится исполняемый файл swiftly. С его помощью следующей командой инициализируйте окружение Swiftly, загрузите необходимые метаданные, добавьте Swift в PATH текущей shell-сессии и обновите кеш команд:
$ ./swiftly init --quiet-shell-followup && \
. "${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh" && \
hash -r
Кроме всего прочего, в процессе инсталляции установщик выводит сообщение, которое говорит о том, что Swiftly хочет автоматически прописать подключение Swift в конфигурацию shell. Это удобно, если вы хотите, чтобы команды swift работали после каждого входа в систему, а не только в текущей сессии. Чтобы разрешить инсталлятору внести дополнительную настройку в файл профиля вашей оболочки, нажмите Y:

По окончании работы установщика запустите инсталляцию необходимых системных зависимостей. Поскольку Swift – это нативный компилируемый язык, который активно использует системные библиотеки и инструменты сборки, без заранее установленных зависимостей компилятор Swift либо не сможет запуститься, либо сборка пакетов будет завершаться ошибками. Чтобы установить зависимости, выполните команду:
$ sudo apt install binutils git unzip gnupg2 libcurl4-openssl-dev libgcc-13-dev libpython3-dev libstdc++-13-dev libxml2-dev libncurses-dev libz3-dev pkg-config zlib1g-dev
Проверить корректность установки Swift можно с помощью вывода его версии:
$ swift --version
Если инсталляция прошла успешно, команда покажет номер установленной версии.

Создание CLI-приложения
Когда Swift установлен, вы можете с его помощью создать проект, например, простое командное CLI-приложение. Для этого сначала создайте отдельный каталог для проекта, например, MyCLI:
$ mkdir MyCLI
Затем перейдите в созданную директорию:
$ cd MyCLI
Следующей командой инициализируйте проект как исполняемый Swift-пакет:
$ swift package init --name MyCLI --type executable
В данном случае:
swift package init– команда для инициализации нового Swift-пакета;--name MyCLI– таким образом задаётся имя пакета;--type executable– указывает, что пакет будет создавать исполняемое приложение, а не библиотеку.
После выполнения команды Swift Package Manager создаст структуру файлов проекта:
Package.swift– основной файл конфигурации Swift-пакета, в котором указываются имя пакета, зависимости, цели, а также минимальная версия Swift;Sources/– каталог для исходного кода, где создаётся подкаталог с именем вашего пакета, в котором, в свою очередь, хранится главный файл с точкой входа программы;Sources/MyCLI/MyCLI.swift– главный файл программы, содержащий функциюmain(), с которой начинается выполнение CLI-приложения.

Затем запустите созданное CLI-приложение:
$ swift run MyCLI
Данная команда анализирует Package.swift, компилирует проект, если это необходимо, и запускает бинарный файл. В результате чего, если вы не вносили изменений в исходный код, то в терминале появится следующее сообщение:

Это стандартное приветствие, которое автоматически создаётся Swift Package Manager при инициализации CLI-проекта.
