Руководство по установке Swift на Ubuntu, которое поможет вам обойти стороной неприятные нюансы.
Поскольку разработчики Swift официально поддерживает LTS-версии Ubuntu— большой сложности с установкой нет, но есть пара нюансов.
Первая распространенная ошибка — распаковка архива в корневую директорию. Способ рабочий, но, если потребуется начисто удалить SDK, одной строкой в консоли не обойтись. Кроме того, данный способ установки мешает переключаться между несколькими версиями Toolchain, в чем у вас, как разработчика, может возникнуть потребность.
Посмотрим на разумный способ установки Swift на ваш компьютер с ОС Ubuntu.
Первым делом нужно определиться с директорией, в которой вам удобно держать подкаталоги с несколькими версиями Swift. Для меня наиболее удобным вариантом является /opt, но вы вольны выбрать другой путь.
Забегая вперед, скажу, что если планируете работать с приложениями, написанными на Swift, лучше
устанавливать Toolchain за пределами домашней директории пользователя. О причине читайте далее в статье.
Итак, следуя руководству официального сайта устанавливаем необходимые зависимости:
$ sudo apt update
# Возможны конфликты LLDB 6 со Swift Toolchain,
# удаляем lldb-6.0, если установлен.
$ sudo apt remove lldb-6.0
$ sudo apt install -y clang libicu-dev wget gpg
Получаем публичный ключ для верификации дистрибутива:
$ wget -q -O - https://swift.org/keys/all-keys.asc | \
gpg --import -
Страница загрузки Swift (https://swift.org/download/#releases).
Проверяем целостность и источник архива:
$ cd ~/Downloads
$ gpg --verify swift-5.2.1-RELEASE-ubuntu18.04.tar.gz.sig
gpg: assuming signed data in 'swift-5.2.1-RELEASE-ubuntu18.04.tar.gz'
gpg: Signature made Пн 30 мар 2020 23:19:13 MSK
gpg: using RSA key 925CC1CCED3D1561
gpg: Good signature from "Swift 5.x Release Signing Key <swift-infrastructure@swift.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: A62A E125 BBBF BB96 A6E0 42EC 925C C1CC ED3D 1561
Полученный с официального сайта дистрибутив мы распакуем в директорию /opt:
$ cd /opt
$ sudo tar -xzf swift-5.2.1-RELEASE-ubuntu18.04.tar.gz
# Создаем символическую ссылку на текущую версию Toolchain:
$ sudo ln -s swift-5.2.1-RELEASE-ubuntu18.04 swift
В итоге мы должны получить следующее содержимое в /opt:
lrwxrwxrwx 1 root root 31 апр 13 21:40 swift -> swift-5.2.1-RELEASE-ubuntu18.04
drwxr-xr-x 3 root root 4096 апр 13 21:38 swift-5.2.1-RELEASE-ubuntu18.04
Как вы уже догадались, мы сможем перебрасывать символическую ссылку /opt/swift между несколькими релизами Toolchain.
Осталось всего два шага и мы у цели. Добавляем путь /opt/swift/usr/bin в PATH, если вы работаете с bash:
$ echo 'PATH="$PATH:/opt/swift/usr/bin"' >> ~/.profile
Чтобы обеспечить работу приложений, написанных на Swift, пропишем путь к Swift Runtime в ldconfig:
$ sudo bash -c "echo '/opt/swift/usr/lib' > /etc/ld.so.conf.d/swift.conf"
$ sudo ldconfig
# Проверим:
$ ldconfig -p | grep swift
libswiftDemangle.so (libc6,x86-64) => /opt/swift/usr/lib/libswiftDemangle.so
libsourcekitdInProc.so (libc6,x86-64) => /opt/swift/usr/lib/libsourcekitdInProc.so
liblldb.so.7svn (libc6,x86-64) => /opt/swift/usr/lib/liblldb.so.7svn
liblldb.so (libc6,x86-64) => /opt/swift/usr/lib/liblldb.so
libdispatch.so (libc6,x86-64) => /opt/swift/usr/lib/libdispatch.so
libIndexStore.so.7svn (libc6,x86-64) => /opt/swift/usr/lib/libIndexStore.so.7svn
libIndexStore.so (libc6,x86-64) => /opt/swift/usr/lib/libIndexStore.so
libBlocksRuntime.so (libc6,x86-64) => /opt/swift/usr/lib/libBlocksRuntime.so
$ swift --version
Swift version 5.2.1 (swift-5.2.1-RELEASE)
Target: x86_64-unknown-linux-gnu
Именно для обеспечения доступности Swift Runtime в самом начале я рекомендовал устанавливать Swift за пределами домашней директории пользователя.
На этом все, хорошего кода!
оригинал статьи https://engineering.lit.group/swift-installation-on-ubuntu/