Как установить Swift и Vapor на Ubuntu 16.04

5 комментариев

Введение

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 можно прочитать в документации.

Сервер VDS

Комментарии

Alexey Rudometov 0
18 дек в 2018
Статья очень хорошо написана, но полностью СОДРАНА из статьи другого человека:
https : // www . 8host . com/blog/ustanovka-swift-i-vapor-v-ubuntu-16-04/

Вышеописанная статья появилась 2 марта 2018.
И уже спустя 5 дней была содрана сюда.

Что забавно - автор попытался как то "изменить" некоторые слова, чтобы не попасться.
Мерзко конечно.
Своё надо делать, а не чужое воровать.
Свернуть ответы
Комментарий автора
Синатра +39
18 дек в 2018
Алексей, здравствуйте.

Я автор статьи, это перевод туториала с Digital Ocean: https://www.digitalocean.com/community/tutorials/how-to-install-swift-and-vapor-on-ubuntu-16-04
Статья опубликована на DO 25 января, я перевел ее в феврале, но по своим причинам команда Community опубликована ее в марте. Я занимаюсь именно переводом статей, а не перепиской источников на русском языке. Если вы считаете, что перевод - это "воровать чужое", то можете предъявить это и тому сайту, который вы указали.
Или вы считаете, что только один сайт может публиковать переводы, а другие должны судорожно выискивать, перевел кто-то уже эту статью или нет?
Alexey Rudometov 0
18 дек в 2018
"Если вы считаете, что перевод - это "воровать чужое""
- Нет, так не считаю.
Если именно о переводе речь.
Но чтобы речь не шла о "воровать чужое" - надо указывать источник перевода.

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

*** Я выступаю всего лишь за соблюдение авторских прав.
*** Вопрос исчерпан, спасибо за ответ. Удачного дня!
Кристина Лихова +175
18 дек в 2018
Добрый день.

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

Ваш комментарий был отредактирован в соответствии с правилами нашего сообщества, просим вас воздерживаться от резких выражений в комментариях.
Alexey Rudometov 0
18 дек в 2018
Спасибо за ответ, уважаемая Кристина.
Я бы не сказал, что выражения были уж столь резки.
Хотя действительно, мною была использована _легчайшая_ провокативная форма испрошения с целью побудить Вас с автором статьи к дискуссии.
Мы обсудили, автор раскрыл детали.

Теперь любой человек, который захочет Вас спросить о происхождении статьи, увидит её первоисточник. У меня более нет претензий.
Автору -> от души благодарность за перевод.
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email, который Вы использовали для входа на сайт.