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
ユーザーの場合、いくつかの手動設定が必要です。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
をインストールした後、この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
を指します- 複数の
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.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
を使用してインストールする言語とバージョンのリスト。詳細は 言語のインストール を参照- デフォルト:
[]
例のプレイブック
- 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 - 個人ウェブサイト