asdf

Статус сборки Роль Ansible

TOOCS / Роль Ansible: TOOCS.asdf

  • Устанавливает asdf
  • Для пользователей zsh настраивает ~/.zlogin для удобного использования
  • Использует asdf для установки выбранных вами языков (ограниченная поддержка, смотрите Установка языков)

TOOCS?

TOOCS - это набор инструментов / ролей ansible, созданный для настройки системы одним кликом. Это простой и надежный способ установить нужный инструмент. Вы можете использовать их как есть, или изучить их код как пошаговое руководство.

Как следует из названия, они имеют определенную точку зрения: хотя они гарантируют установку нужного инструмента одним кликом, они не гарантируют согласованности в том, как это достигается, новые версии могут ввести разрушающие изменения. Изучите код и убедитесь, что понимаете, что происходит!

Содержание

Требования

Эта роль работает только на MacOSX и Ubuntu/Debian.

Пост установка - Настройка оболочки

Пользователи Zsh

При использовании этого TOOCS для пользователя с оболочкой zsh, TOOCS автоматически настроит файл ~/.zlogin. Дальнейших действий не требуется.

Если вы не используете фреймворк, как oh-my-zsh, или если при запуске оболочки вы получаете сообщение об ошибке 'command not found: compinit', добавьте эту строку перед строками, добавленными TOOCS, в вашем файле ~/.zlogin:

autoload -Uz compinit && compinit

Пользователи не Zsh

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

  • Bash на Ubuntu (и других дистрибутивах Linux)

    echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bashrc
    echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc
    
  • Bash на macOS

    echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bash_profile
    echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bash_profile
    
  • Fish

    echo 'source ~/.asdf/asdf.fish' >> ~/.config/fish/config.fish
    mkdir -p ~/.config/fish/completions; и скопируйте ~/.asdf/completions/asdf.fish ~/.config/fish/completions
    

Перезапустите вашу оболочку, чтобы изменения PATH вступили в силу. (Открытие новой вкладки терминала обычно решает эту проблему.)

Также, если у вас возникают проблемы с определением установленных шимо́в, это, скорее всего, из-за того, что вышеуказанные asdf.bash или asdf.fish не находятся внизу вашего ~/.bash_profile, ~/.zshrc или ~/.config/fish/config.fish. Их нужно подключать после установки вашего $PATH.

Источник: официальная настройка 'asdf'

Установка языков

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

Переменная languages_to_install - это список, содержащий все языки для установки, а также их конкретные версии.

  • Для установки языка, добавьте запись в список languages_to_install

  • Запись должна иметь следующую форму:

    - LANG:
        - x.x.x
        - y.y.y
    

    Где LANG - это название языка, а x.x.x / y.y.y - номера версий.

  • Список languages_to_install упорядочен:

    languages_to_install:
      - erlang:
          - 21.1.14
          - 20.3.8.9
    
      - elixir:
          - 1.7.4
    

    В этом примере обе версии erlang будут установлены перед установкой elixir. Это удобно, поскольку для компиляции elixir требуется erlang.

  • Для каждого языка список версий для установки также упорядочен.

    • Первая версия списка будет установлена как global
    • Для языков, поддерживающих несколько одновременных global, все версии из списка в порядке, будут установлены как глобальные (например: python)
    languages_to_install:
      - erlang:
          - 21.1.14
          - 20.3.8.9
    
      - python: # Поддержка нескольких `global`
          - 3.7.0
          - 2.6.6
          - 2.7.15
    

    В этом примере, после выполнения TOOCS, оболочка будет настроена следующим образом:

    • Команда erl (erlang) будет указывать на версию 21.1.14
    • Команда python будет указывать на версию 3.7.0
    • Для python, поддерживающего несколько global, будут также доступны следующие команды:
      • python3.7 / pip3.7
      • python2.7 / pip2.7
      • python2.6 / pip2.6
      • python3 / pip3 => Последняя версия python3: python3.7 / pip3.7
      • python2 / pip2 => Последняя версия python2: python2.7 / pip2.7

Поддерживаемые языки

  • Python
    • Поддержка нескольких версий global
    • На Debian stretch (и Ubuntu bionic), автоматически можно установить только версии Python >= 2.7.13 и >= 3.5.3. Более ранние версии можно установить вручную позже, но для этого требуется обходное решение на данный момент. См. Pyenv - Распространенные проблемы сборки - OpenSSL
  • Erlang
    • Компилируется с документацией, но без jinterface
  • Elixir
    • Требует erlang
    • Явно компилируется из исходников
    • **/!\ Убедитесь, что текущая версия erlang поддерживается версией elixir, которую нужно установить /!\**
      • Пример: elixir v1.6.6 не совместим с erlang 21! Для компиляции elixir v1.6.6 необходимо использовать erlang 20.

Переменные роли

  • asdf_version

    • Версия asdf, которую нужно установить
    • По умолчанию: v0.6.2
  • skip_shell_setup

    • Если True, установит только asdf, не настраивая оболочку
    • По умолчанию: False
  • languages_to_install

    • Список языков и версий, которые нужно установить с помощью asdf. Смотрите Установка языков
    • По умолчанию: []

Пример playbook

- hosts: sandbox
  tasks:
    - include_role:
        name: TOOCS.asdf

# ИЛИ

- hosts: sandbox
  tasks:
    - include_role:
        name: TOOCS.asdf
      vars:
        asdf_version: v0.6.1
        skip_shell_setup: True

# ИЛИ

- hosts: sandbox
  tasks:
    - include_role:
        name: TOOCS.asdf
      vars:
        languages_to_install:
          - python:
              - 3.7.0
              - 2.7.15
              - 2.6.6

          - erlang:
              - 20.3.8.9
              - 21.1.4

          - elixir:
              - 1.7.4
              - 1.6.6

Лицензия

MIT

Информация об авторе

Подписывайтесь на меня в Twitter: @ThisIsFlorianK
Узнайте больше о моей работе: Флориан Кемпиних - Личный сайт

О проекте

Install 'asdf'

Установить
ansible-galaxy install TOOCS/asdf
Лицензия
mit
Загрузки
166
Владелец
The Opinionated One-Click Setups - TOOCS - Logo made with DesignEvo (www.designevo.com)