Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Установка и настройка Unison

На самом деле, ваша система особо не важна, так как Unison работает на любой из них, а если и нет (вдруг вы пользуетесь системой из семейства BSD или подобной), то всегда можно скомпилировать все из исходников.

Установка Unison на Windows

Первым делом вам нужно установить «Windows Terminal» терминальным приложением по умолчанию для лучшей работы. Как только вы это сделали, вам нужно:

  • Скачать c GitHub исполняемый файл UCM по вот этой ссылке;
  • Распаковать архив в любом удобном вам месте;
  • Запустить ucm.exe.
  • Вы великолепны!

Установка Unison на Mac

Для максимального удобства лучше всего скачивать через Homebrew, однако, если по какой-либо причине вы не хотите устанавливать его или пользоваться, будут описаны все способы.

Через Homebrew

Если он еще не скачан, зайдите на официальный сайт и установите по инструкции. Затем вам нужно ввести (или скопировать) следующие команды в терминал:

brew tap unisonweb/unison
brew install unison-language

Они установят вам все нужные файлы, библиотеки и сам UCM. Для обновления используйте brew upgrade unison-language

Через Curl

Данный способ подходит, если вы хотите скачать все вручную. Введите в терминал следующие команды: Для Мак на Интел:

mkdir -p unisonlanguage && cd unisonlanguage
curl -L https://github.com/unisonweb/unison/releases/latest/download/ucm-macos-x64.tar.gz \
  | tar -xz
./ucm

Для Мак на М-процессорах:

mkdir -p unisonlanguage && cd unisonlanguage
curl -L https://github.com/unisonweb/unison/releases/latest/download/ucm-macos-arm64.tar.gz \
  | tar -xz
./ucm

Они создадут папку в вашем каталоге, установят туда архив с бинарниками, распакуют и запустят UCM. Учтите, что данный способ не сделает UCM глобальной программой; если вас это не устроит, придется изменять переменные среды.

Установка Unison на дистрибутивы Linux

Debian/Ubuntu/дистро, использующий apt

Для установки вам потребуется ввести следующие команды:

curl https://debian.unison-lang.org/public.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/unison-computing.gpg
echo 'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/unison-computing.gpg] https://debian.unison-lang.org/ trixie main' | sudo tee /etc/apt/sources.list.d/unison-computing.list
sudo apt update
sudo apt install unisonweb
/usr/bin/ucm

Nix

Для установки через Nix прошу зайти на эту страницу, так как процесс установки может поменяться в любой момент.

Curl

Схоже с установкой под Мак (в том числе и по ограничениям). Вот команды:

mkdir -p unisonlanguage && cd unisonlanguage
curl -L https://github.com/unisonweb/unison/releases/latest/download/ucm-linux-x64.tar.gz \
	| tar -xz
./ucm

Компиляция из исходников

Если по какой-то причине вас не устраивает установка готовых файлов, или же под вашу систему таких файлов просто нет, вы можете спокойно скомпилировать Unison из исходных файлов. Для компиляции вам потребуется Haskell, а также Stack. Если у вас недостает чего-то, рекомендую установку через GHCup. После установки выполните следующие команды:

$ git clone https://github.com/unisonweb/unison.git
$ cd unison
$ stack --version # для проверки установки
$ stack build --fast --test && stack exec unison

Настройка окружения

Для разработки вам не потребуются сложные менеджеры проектов, куча плагинов для быстрого перемещения, супер-комбинации клавиш, потому что работа будет по факту вестись только в одном файле и в терминале. Поэтому вы вольны использовать любой редактор кода, который только пожелаете (если кому интересно, у меня Helix). Однако для комфорта все равно стоит поставить LSP - так у вас появится автодополнение, подсветка синтаксиса и проверка кода. Для его настройки перейдите на данную страницу, там все подробно расписано и рассказано. Если не поставите его - ничего страшного не случится.

Запуск и начало работы

Итак, вы установили Unison! Теперь откройте ваш любимый редактор кода, запустите UCM, и будем приступать к изучению! Все команды мы разберем по ходу изучения самого языка. Но сразу скажу: чтобы выйти из UCM, напишите exit :)