TOOCS.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ユーザーの場合、いくつかの手動設定が必要です。OSとシェルに応じて、以下を実行します:

  • Ubuntu(他のLinuxディストリビューション)でのBash

    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
    

シェルを再起動して、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 がインストールされる 前に インストールされます。これは、elixirerlang をコンパイルする必要があるため便利です。

  • 各言語の インストールするバージョンのリスト順序付きです。

    • リストの 最初の バージョンが 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 を指します
    • 複数の global をサポートする python では、次のコマンドも利用可能になります:
      • 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)では、2.7.13以上および3.5.3以上のPythonバージョンのみ自動的にインストール可能です。古いバージョンは後で手動インストールできますが、現在は回避策が必要です。詳しくは:Pyenv - 一般的なビルドの問題 - OpenSSL
  • Erlang
    • ドキュメント付きでコンパイルされていますが、jinterfaceは含まれていません
  • Elixir
    • erlang が必要です
    • 明示的にソースからコンパイルされます
    • **/!\ インストールする elixir のバージョンがサポートされている erlang の最新バージョンであることを確認してください /!\**
      • 例:elixir v1.6.6erlang 21 とは互換性がありません! elixir v1.6.6 をコンパイルするには、erlang 20 を使用する必要があります。

ロール変数

  • asdf_version

    • インストールする asdf のバージョン
    • デフォルト: v0.6.2
  • skip_shell_setup

    • True の場合、シェルを設定せずに asdf のみをインストールします
    • デフォルト: 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)