TOOCS.asdf
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' >> ~/.bashrcBash на macOS
echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bash_profile echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bash_profileFish
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.7python2.7/pip2.7python2.6/pip2.6python3/pip3=> Последняя версияpython3:python3.7/pip3.7python2/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
Узнайте больше о моей работе: Флориан Кемпиних - Личный сайт
ansible-galaxy install TOOCS.asdf