TOOCS.asdf

构建状态 Ansible角色

TOOCS / Ansible角色: TOOCS.asdf

  • 安装 asdf
  • 对于 zsh 用户,设置 ~/.zlogin 以提供即用的体验
  • 使用 asdf 安装您选择的语言(支持有限,请参见 安装语言

TOOCS?

TOOCS - 一次性点击设置工具是一些设计用于一键设置系统的工具/ansible角色。它们是一种简单、可靠的工具设置方式。您可以直接使用它们,或者查看其代码,作为逐步操作的教程。

正如名字所示,它们是有观点的:虽然它们保证可以一键设置给定工具,但并不保证其实现方式的一致性,新版本可能会引入不兼容的更改。
阅读代码,并确保您理解发生了什么!

目录

要求

该角色仅支持MacOSX和Ubuntu/Debian。

安装后 - Shell配置

Zsh用户

在使用 zsh 的用户上使用此TOOCS时,TOOCS将自动配置 ~/.zlogin 文件。无需进一步操作。

如果您没有使用框架,例如 oh-my-zsh,或者在启动shell时收到“command not found: compinit”之类的错误消息,那么在TOOCS在 ~/.zlogin 文件中添加的行之前添加以下行:

autoload -Uz compinit && compinit

非Zsh用户

对于非zsh用户,需要一些手动设置。根据您的操作系统和shell,运行以下命令:

  • Ubuntu上的Bash(及其他Linux发行版)

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

    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; and cp ~/.asdf/completions/asdf.fish ~/.config/fish/completions
    

重启您的shell以使路径更改生效。(打开一个新的终端标签通常就可以。)

如果您的shims没有被检测到,问题很可能是由于上述的 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
    

    在此示例中,在安装 elixir 之前将首先安装两个版本的 erlang。这很方便,因为 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后,shell 将配置如下:

    • 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.6erlang 21不兼容!要编译 elixir v1.6.6,必须使用 erlang 20

角色变量

  • asdf_version

    • 要安装的 asdf 版本
    • 默认: v0.6.2
  • skip_shell_setup

    • 如果为 True,则仅安装 asdf 而不设置 shell
    • 默认: False
  • languages_to_install

    • 使用 asdf 安装的语言及版本列表。参见 安装语言
    • 默认: []

示例剧本

- 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
了解更多关于我的工作的内容: Florian Kempenich - 个人网站

关于项目

Install 'asdf'

安装
ansible-galaxy install TOOCS.asdf
许可证
mit
下载
175
拥有者
The Opinionated One-Click Setups - TOOCS - Logo made with DesignEvo (www.designevo.com)