Установка Swift и Vapor в Ubuntu 16.04

Swift – это язык программирования от Apple. Он быстрый, надежный и безопасный и поддерживается широким сообществом. В основном Swift используется для разработки приложений iOS и macOS, но Swift 3 подойдет и для создания серверных приложений.

Vapor – это популярный серверный веб-фреймворк для Swift. Как и Swift, Vapor очень быстрый и современный; кроме того, он поддерживает множество функций, которые предоставляют фреймворки других языков программирования.

Данный мануал поможет вам установить Swift и Vapor на Ubuntu 16.04 и протестировать установку с помощью одного из шаблонов Vapor.

Требования

  • Сервер Ubuntu 16.04, настроенный по этому мануалу.
  • Git; обычно на Ubuntu 16.04 Git устанавливается по умолчанию, но если это не так, введите команду:

sudo apt-get install git

1: Установка Swift

Чтобы собирать и запускать веб-приложения Vapor, сначала нужно установить Swift.

Обновите индекс пакетов:

sudo apt-get update

Затем установите зависимости Swift, среди которых Swift clang и пара компонентов Python 2.7.

sudo apt-get install clang libicu-dev libpython2.7

После этого загрузите бинарный файл Swift. Он недоступен через пакетный менеджер apt, но его можно скачать с сайта Swift вручную или через wget:

wget https://swift.org/builds/swift-4.0-release/ubuntu1604/swift-4.0-RELEASE/swift-4.0-RELEASE-ubuntu16.04.tar.gz

Убедитесь, что при загрузке файл не повредился. Импортируйте PGP-ключи, с помощью которых можно проверить файлы сигнатуры.

gpg --keyserver hkp://pool.sks-keyservers.net \
--recv-keys \
'7463 A81A 4B2E EA1B 551F  FBCF D441 C977 412B 37AD' \
'1BE1 E29A 084C B305 F397  D62A 9F59 7F4D 21A5 6D5F' \
'A3BA FD35 56A5 9079 C068  94BD 63BC 1CFE 91D3 06C6' \
'5E4D F843 FB06 5D7F 7E24  FBA2 EF54 30F0 71E1 B235'

Вы увидите такой вывод:

...
gpg: key 412B37AD: public key "Swift Automatic Signing Key #1 <swift-infrastructure@swift.org>" imported
gpg: key 21A56D5F: public key "Swift 2.2 Release Signing Key <swift-infrastructure@swift.org>" imported
gpg: key 91D306C6: public key "Swift 3.x Release Signing Key <swift-infrastructure@swift.org>" imported
gpg: key 71E1B235: public key "Swift 4.x Release Signing Key <swift-infrastructure@swift.org>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 4
gpg:               imported: 4  (RSA: 4)

Импортировав ключи, загрузите файл сигнатуры скачанного релиза:

wget https://swift.org/builds/swift-4.0-release/ubuntu1604/swift-4.0-RELEASE/swift-4.0-RELEASE-ubuntu16.04.tar.gz.sig

Чтобы проверить этот файл, запустите следующую команду, которая сгенерирует такой вывод:

gpg --verify swift-4.0-RELEASE-ubuntu16.04.tar.gz.sig
gpg: assuming signed data in `swift-4.0-RELEASE-ubuntu16.04.tar.gz'
gpg: Signature made Wed 20 Sep 2017 01:13:38 AM UTC using RSA key ID 71E1B235
gpg: Good signature from "Swift 4.x Release Signing Key <swift-infrastructure@swift.org>"
Primary key fingerprint: 5E4D F843 FB06 5D7F 7E24  FBA2 EF54 30F0 71E1 B235

При этом может появиться предупреждение:

gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.

Это означает, что ключи Swift, которые вы импортировали, еще не стали доверенными (либо в вашей системе, либо для других ключей в вашем наборе). Вы можете спокойно игнорировать это предупреждение. Однако если вы получили другое сообщение об ошибке, вам бинарный файл Swift и повторить проверку.

После этого можно установить Swift. Выполните следующую команду, чтобы извлечь ранее загруженный бинарный файл:

tar xzf swift-4.0-RELEASE-ubuntu16.04.tar.gz

Затем добавьте набор инструментов Swift в PATH, чтобы вы могли глобально запускать команду swift:

export PATH=swift-4.0-RELEASE-ubuntu16.04/usr/bin:"${PATH}"

Эта команда добавит быструю команду swift в переменную только на время текущего сеанса оболочки. Чтобы команда swift автоматически добавлялась в будущих сеансах, поместите ее в файл .bashrc.

nano ~/.bashrc

Добавьте в конец файла эту строку:

. . .
export PATH=swift-4.0-RELEASE-ubuntu16.04/usr/bin:"${PATH}"

Сохраните и закройте файл.

Чтобы убедиться, что все работает, запустите команду swift:

swift

Вы увидите Swift REPL, что значит, что все работает правильно.

Welcome to Swift version 4.0 (swift-4.0-RELEASE). Type :help for assistance.
1>

Давайте еще раз убедимся, что все работает. Введите этот код, который суммирует все целые числа от 1 до 5. Для этого введите каждую строку в REPL, нажимая Enter после каждой строки:

var x = 0
for i in 1...5 {
x += i
}
x
REPL покажет результат:
$R0: Int = 15

Чтобы закрыть Swift REPL, нажмите CTRL+D. Теперь можно установить Vapor.

2: Установка Vapor

Чтобы установить Vapor, нужно загрузить и запустить скрипт от разработчиков Vapor, который добавляет официальный репозиторий Vapor в индекс пакетов сервера. Затем нужно использовать apt для установки последней версии Vapor.

Как правило, выполнять сторонние скрипты без их предварительной проверки опасно для системы. Потому сначала загрузите скрипт установки на свой сервер с помощью команды curl с ключом -o, чтобы указать локальное имя файла:

curl -sL apt.vapor.sh -o apt.vapor.sh

А затем проверьте скрипт с помощью less:

less apt.vapor.sh

Убедившись, что скрипт не делает ничего плохого, запустите его, чтобы добавить репозиторий в систему:

bash ./apt.vapor.sh

Вам будет предложено ввести пароль sudo. Введите его, чтобы скрипт мог добавить новый репозиторий пакетов.

Как только скрипт закончит работу, вы сможете установить пакет vapor и его зависимости.

sudo apt-get install vapor

Чтобы убедиться, что Vapor успешно установлен, используйте другой скрипт от разработчиков Vapor. Загрузите его и проверьте его содержимое:

curl -sL check.vapor.sh -o check.vapor.sh
less check.vapor.sh
bash ./check.vapor.sh

После запуска сценария вы увидите этот вывод, который указывает, что установка Vapor прошла успешно:

✅ Compatible with Vapor 2

Теперь, когда Swift и Vapor установлены, вы можете создать первое приложение Vapor.

3: Создание приложения Vapor

Чтобы создать приложение, используйте шаблон, который Vapor предоставляет по умолчанию. Шаблон web позволяет быстро создать пользовательское веб-приложение.

Примечание: Этот шаблон предполагает, что вы используете Git и что в настройках Git указаны ваше имя и адрес электронной почты. Если вы не установили Git или не указали требуемых данных, вы можете увидеть сообщение об ошибке, которое попросит вас настроить Git. Вы можете спокойно проигнорировать это сообщение или выполнить эти команды, чтобы предоставить свои данные:

git config --global user.email "your_email@example.com"
git config --global user.name "Your Name"

Чтобы создать веб-приложение по этому шаблону, выполните команду:

vapor new demo --template=web

Скрипт сгенерирует новое приложение в новом каталоге и присвоит ему указанное вам имя:

Cloning Template [Done]
Updating Package Name [Done]
Initializing git repository [Done]
...
__       __    ___   ___   ___
\ \  /  / /\  | |_) / / \ | |_)
_\_\/  /_/--\ |_|   \_\_/ |_| \
a web framework for Swift
Project "demo" has been created.
Type `cd demo` to enter the project directory.
Use `vapor cloud deploy` to host your project for free!
Enjoy!

Чтобы вместо полноценного веб-приложения создать API, используйте шаблон api:

vapor newdemo --template=api

Ознакомьтесь с исходным кодом шаблона и шаблоном api, чтобы понять, как они работают.

4: Компиляция и запуск приложения Vapor

Приложения Swift нужно компилировать, в отличие от приложений Python или Ruby. Это означает, что перед запуском приложения Vapor нужно запустить процесс сборки.

Сначала перейдите в каталог demo:

cd demo

Затем запустите эту команду, чтобы скомпилировать приложение:

vapor build

При первой сборке приложения программа извлечет некоторые зависимости. Она кэширует эти данные, и в будущем извлекать зависимости не понадобится, что сделает процесс сборки намного быстрее.

Как только сборка завершится, запустите приложение следующей командой:

vapor run serve
Running demo ...
...
Starting server on 0.0.0.0:8080

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

Откройте веб-браузер и посетите страницу http://your_server_ip:8080. Вы увидите приветственную страницу приложения Vapor.

Заключение

Сообщество Swift постоянно растет, и вы также можете принять в нем участие. Хотя язык Swift в основном используется для создания приложений iOS и macOS, он все чаще используется на платформе Linux. Вы можете больше узнать о Swift, прочитав бесплатную электронную книгу от Apple. Чтобы узнать больше о Vapor, ознакомьтесь с документацией проекта.

Tags: , ,