TOOCS.asdf
TOOCS / Rola Ansible: TOOCS.asdf
- Instaluje
asdf
- Dla użytkowników
zsh
, konfiguruje~/.zlogin
dla gotowego doświadczenia - Używa
asdf
do instalacji języków według wyboru (ograniczona obsługa, zobacz Instalacja języków)
TOOCS?
TOOCS - Opinionated One-Click Setups to zestaw narzędzi / ról ansible zaprojektowanych do szybkiej konfiguracji systemu jednym kliknięciem. Są prostym, niezawodnym sposobem na ustawienie danego narzędzia. Możesz je używać tak, jak są, lub, przeglądając ich kod, jako podręcznik do ścisłego śledzenia krok po kroku.
Jak sugeruje sama nazwa, są one "opiniotwórcze": chociaż gwarantują, że ustawią dane narzędzie jednym kliknięciem, nie gwarantują spójności w jak to osiągają, ponieważ nowe wydania mogą wprowadzać zmiany łamiące.
Przeczytaj kod i upewnij się, że rozumiesz, co się dzieje!
Spis treści
Wymagania
Ta rola działa tylko na MacOSX i Ubuntu/Debian.
Po instalacji - Konfiguracja powłoki
Użytkownicy Zsh
Kiedy używasz TOOCS na użytkowniku, którego powłoką jest zsh
, TOOCS automatycznie skonfiguruje plik ~/.zlogin
. Nie są wymagane żadne dodatkowe działania.
Jeśli nie używasz frameworka, takiego jak oh-my-zsh
, lub jeśli podczas uruchamiania powłoki otrzymujesz komunikat o błędzie typu 'komenda nie znaleziona: compinit', dodaj tę linię przed tymi dodanymi przez TOOCS w swoim pliku ~/.zlogin
:
autoload -Uz compinit && compinit
Użytkownicy nie Zsh
Dla użytkowników nie-zsh
wymagana jest pewna ręczna konfiguracja. W zależności od systemu operacyjnego i używanej powłoki, uruchom poniższe komendy:
Bash na Ubuntu (i innych dystrybucjach Linuxa)
echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bashrc echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc
Bash na 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; and cp ~/.asdf/completions/asdf.fish ~/.config/fish/completions
Uruchom ponownie swoją powłokę, aby zmiany w ścieżce (PATH) zaczęły obowiązywać. (Otwarcie nowej karty terminala zwykle wystarczy.)
Jeśli masz problemy z rozpoznawaniem zamienników, które zainstalowałeś, najprawdopodobniej wynika to z faktu, że wczytanie asdf.bash
lub asdf.fish
nie znajduje się na końcu twojego pliku ~/.bash_profile
, ~/.zshrc
lub ~/.config/fish/config.fish
. Musi być wczytane po ustawieniu twojego $PATH.
Źródło: oficjalna konfiguracja 'asdf'
Instalacja języków
Po zainstalowaniu asdf
, TOOCS może automatycznie instalować różne wersje języków według wyboru. Zadba o zainstalowanie wymaganych zależności dla każdego języka i zainstaluje różne wersje, zazwyczaj preferując kompilację z źródła zamiast pobierania wstępnie skompilowanych binariów.
Zmienna languages_to_install
to lista zawierająca wszystkie języki do zainstalowania, wraz z określonymi wersjami.
Aby zainstalować język, dodaj wpis do listy w
languages_to_install
Wpis musi mieć formę:
- LANG: - x.x.x - y.y.y
Gdzie
LANG
to nazwa języka, ax.x.x / y.y.y
to numery wersji.Lista
languages_to_install
jest uporządkowana:languages_to_install: - erlang: - 21.1.14 - 20.3.8.9 - elixir: - 1.7.4
W tym przykładzie obie wersje
erlang
będą zainstalowane przed instalacjąelixir
. Jest to wygodne, ponieważelixir
wymaga skompilowaniaerlang
.Dla każdego języka lista wersji do zainstalowania jest również uporządkowana.
- Pierwsza wersja na liście będzie ustawiona jako
global
- Dla języków obsługujących wiele jednoczesnych
global
, wszystkie wersje z listy, w kolejności, będą ustawione jako globalne (np. python)
languages_to_install: - erlang: - 21.1.14 - 20.3.8.9 - python: # Obsługa wielu `global` - 3.7.0 - 2.6.6 - 2.7.15
W tym przykładzie, po uruchomieniu TOOCS, powłoka zostanie skonfigurowana w następujący sposób:
- Komenda
erl
(erlang
) będzie wskazywać na wersję21.1.14
- Komenda
python
będzie wskazywać na wersję3.7.0
python
obsługujący wieleglobal
, będą również dostępne następujące komendy:python3.7
/pip3.7
python2.7
/pip2.7
python2.6
/pip2.6
python3
/pip3
=> Ostatnia wersjapython3
:python3.7
/pip3.7
python2
/pip2
=> Ostatnia wersjapython2
:python2.7
/pip2.7
- Pierwsza wersja na liście będzie ustawiona jako
Obsługiwane języki
- Python
- Obsługa wielu wersji
global
- W Debianie stretch (i Ubuntu bionic), można automatycznie instalować tylko wersje python
>= 2.7.13
i>= 3.5.3
. Starsze wersje można później zainstalować ręcznie, ale wymaga to obecnie obejścia. Zobacz: Pyenv - Typowe problemy z budowaniem - OpenSSL
- Obsługa wielu wersji
- Erlang
- Skompilowane z dokumentacją, ale bez
jinterface
- Skompilowane z dokumentacją, ale bez
- Elixir
- Wymaga
erlang
- Skompilowane bezpośrednio z źródła
- **/!\ Upewnij się, że aktualna wersja
erlang
jest wspierana przez wersjęelixir
, którą chcesz zainstalować /!**- Np.:
elixir v1.6.6
nie jest kompatybilne zerlang 21
! Aby skompilowaćelixir v1.6.6
, należy użyćerlang 20
.
- Np.:
- Wymaga
Zmienne roli
asdf_version
- Wersja
asdf
, którą należy zainstalować - Domyślnie:
v0.6.2
- Wersja
skip_shell_setup
- Jeśli
True
, zainstaluje tylkoasdf
bez konfiguracji powłoki - Domyślnie:
False
- Jeśli
languages_to_install
- Lista języków i wersji do instalacji przy użyciu
asdf
. Zobacz Instalacja języków - Domyślnie:
[]
- Lista języków i wersji do instalacji przy użyciu
Przykładowy playbook
- hosts: sandbox
tasks:
- include_role:
name: TOOCS.asdf
# LUB
- hosts: sandbox
tasks:
- include_role:
name: TOOCS.asdf
vars:
asdf_version: v0.6.1
skip_shell_setup: True
# LUB
- 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
Licencja
MIT
Informacje o autorze
Obserwuj mnie na Twitterze: @ThisIsFlorianK
Dowiedz się więcej o mojej pracy: Florian Kempenich - Strona osobista
ansible-galaxy install TOOCS.asdf