Введение
Swift - язык программирования, разработанный компанией Apple. Это быстрый, безопасный и современный язык, который имеет огромное сообщество. В основном Swift используется для разработки приложений для iOS и macOS, но, например, Swift 3 можно использовать и для разработки программно-аппаратной части.
Vapor - это популярный Swift фреймворк для разработки бэкенда. Так же, как и Swift, Vapor это быстрый и современный инструмент, который имеет множество черт, присущих веб-фреймворкам других языков программирования.
Из этого руководства вы узнаете, как установить Swift и Vapor на Ubuntu 16.04. Затем вы протестируете свою установку, создав простое веб-приложение с помощью шаблонов Vapor.
Требования
Для того, чтобы выполнить необходимые действия, вам понадобятся:
- установленная ОС Ubuntu 16.04 с пользователем, который может выполнять команды sudo;
- установленный на сервере Git (если это еще не сделано, выполните команду sudo apt-get install git).
Шаг 1: установка Swift
Для того, чтобы создать приложение на Vapor, сначала нужно установить Swift.
Обновите индекс списка пакетов системы:
$ sudo apt-get update
Теперь установите необходимые для Swift элементы, которые включают clang и некоторые компоненты Python 2.7:
$ sudo apt-get install clang libicu-dev libpython2.7
Теперь загрузите самый последний архив (версию можно найти на официальном сайте):
$ wget https://swift.org/builds/swift-4.0-release/ubuntu1604/swift-4.0-RELEASE/swift-4.0-RELEASE-ubuntu16.04.tar.gz
Убедитесь, что загрузка прошла корректно, загрузив контрольные значения ключей:
$ 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
Теперь сохраните путь в PATH:
$ export PATH=swift-4.0-RELEASE-ubuntu16.04/usr/bin:"${PATH}"
Чтобы это распространялось не только на эту сессию, но и на все последующие, нужно внести изменения в файл .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>
Еще раз убедитесь, что все работает правильно. Для этого введите программу ниже. После ввода каждой строки нажимайте Enter:
var x = 0 for i in 1...5 { x += i } x
REPL отобразит результат вычисления:
$R0: Int = 15
Выйдите из Swift REPL, нажав Ctrl+D. Теперь можно перейти к установке Vapor.
Шаг 2: установка Vapor
Для того, чтобы установить Vapor, необходимо сначала загрузить скрипт установки на ваш сервер, используя команду curl с ключом -о для того, чтобы указать конкретное имя файла:
$ curl -sL apt.vapor.sh -o apt.vapor.sh
Используйте команду less для того, чтобы просмотреть скрипт:
$ less apt.vapor.sh
После того, как вы посмотрели содержимое скрипта, выполните его для того, чтобы добавить репозиторий (нужно будет ввести пароль sudo):
$ bash ./apt.vapor.sh
После окончания выполнения скрипта вы можете установить пакет 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 установлены, можно перейти к созданию первого приложения.
Шаг 3: создание приложения Vapor
Для создания приложения можно использовать шаблон, который по умолчанию есть в Vapor.
Шаблон web позволит создать веб-приложение с пользовательским интерфейсом.
Использование данного шаблона предполагает, что вы используете Git, где уже введены ваши данные, имя и электронный адрес. Если этого не сделано, вы можете увидеть сообщение об ошибке, в котором вам будет сказано ввести необходимые настройки. Вы можете либо проигнорировать его, либо выполнить следующие команды для того, чтобы предоставить необходимые данные:
$ git config --global user.email "ваш электронный адрес" $ git config --global user.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 c vapor new demo --template=api.
Для того, чтобы понять, как работают шаблоны, посмотрите их исходный код: для web-шаблона, для api-шаблона.
Теперь можно посмотреть работу приложения.
Шаг 4: компиляция и запуск приложения Vapor
В отличие от приложений, написанных на Python или Ruby, приложения на Swift нужно компилировать. Это значит, что перед запуском приложения вам нужно запустить процесс его создания, строительства.
Сначала перейдите в только что созданный каталог demo:
$ cd demo
Теперь выполните команду ниже для того, чтобы выполнить компиляцию веб-приложения:
$ vapor build
Когда вы компилируете приложение в первый раз, во время процесса будет создано несколько зависимостей. В дальнейшем они будут кэшированы, и этот шаг будет пропускаться - и процесс будет идти намного быстрее.
После окончания компиляции запустите приложение следующей командой:
$ vapor run serve
Вы увидите такой вывод:
Running demo ... ... Starting server on 0.0.0.0:8080
Высветятся предупреждения о небезопасном хэше и ключах шифрования, во время запуска демо их можно игнорировать. А вот когда вы будете создавать уже свое собственное приложение, обязательно следуйте инструкциям в этих предупреждениях.
Откройте браузер и наберите http://ip_вашего_сервера:8080 для того, чтобы увидеть начальную страницу приложения Vapor.
Заключение
Теперь вы знаете, как установить и запустить Swift и Vapor. Более подробная информация есть в бесплатной книге Swift Programming Language, а про Vapor можно прочитать в документации.
Комментарии
https : // www . 8host . com/blog/ustanovka-swift-i-vapor-v-ubuntu-16-04/
Вышеописанная статья появилась 2 марта 2018.
И уже спустя 5 дней была содрана сюда.
Что забавно - автор попытался как то "изменить" некоторые слова, чтобы не попасться.
Мерзко конечно.
Своё надо делать, а не чужое воровать.
Я автор статьи, это перевод туториала с Digital Ocean: https://www.digitalocean.com/community/tutorials/how-to-install-swift-and-vapor-on-ubuntu-16-04
Статья опубликована на DO 25 января, я перевел ее в феврале, но по своим причинам команда Community опубликована ее в марте. Я занимаюсь именно переводом статей, а не перепиской источников на русском языке. Если вы считаете, что перевод - это "воровать чужое", то можете предъявить это и тому сайту, который вы указали.
Или вы считаете, что только один сайт может публиковать переводы, а другие должны судорожно выискивать, перевел кто-то уже эту статью или нет?
- Нет, так не считаю.
Если именно о переводе речь.
Но чтобы речь не шла о "воровать чужое" - надо указывать источник перевода.
"вы считаете, что только один сайт может публиковать переводы"
- Нет, так тоже не считаю.
В свете ново-открывшейся информации могу сказать, что другой сайт также косякнул, ибо не удосужился упомянуть первоисточник.
*** Я выступаю всего лишь за соблюдение авторских прав.
*** Вопрос исчерпан, спасибо за ответ. Удачного дня!
Автор статьи дал свой комментарий по поводу данной ситуации. Отметим, что статьи перед публикацией в Timeweb Community проверяются на уникальность, мы не публикуем статьи, взятые с других сайтов.
Ваш комментарий был отредактирован в соответствии с правилами нашего сообщества, просим вас воздерживаться от резких выражений в комментариях.
Я бы не сказал, что выражения были уж столь резки.
Хотя действительно, мною была использована _легчайшая_ провокативная форма испрошения с целью побудить Вас с автором статьи к дискуссии.
Мы обсудили, автор раскрыл детали.
Теперь любой человек, который захочет Вас спросить о происхождении статьи, увидит её первоисточник. У меня более нет претензий.
Автору -> от души благодарность за перевод.