TOOCS.asdf
TOOCS / Rola Ansible: TOOCS.asdf
- Instaluje
asdf - Dla użytkowników
zsh, konfiguruje~/.zlogindla gotowego doświadczenia - Używa
asdfdo 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' >> ~/.bashrcBash na 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; 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_installWpis musi mieć formę:
- LANG: - x.x.x - y.y.yGdzie
LANGto nazwa języka, ax.x.x / y.y.yto numery wersji.Lista
languages_to_installjest uporządkowana:languages_to_install: - erlang: - 21.1.14 - 20.3.8.9 - elixir: - 1.7.4W tym przykładzie obie wersje
erlangbędą zainstalowane przed instalacjąelixir. Jest to wygodne, ponieważelixirwymaga 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.15W 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
pythonbędzie wskazywać na wersję3.7.0 pythonobsługujący wieleglobal, będą również dostępne następujące komendy:python3.7/pip3.7python2.7/pip2.7python2.6/pip2.6python3/pip3=> Ostatnia wersjapython3:python3.7/pip3.7python2/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.13i>= 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
erlangjest wspierana przez wersjęelixir, którą chcesz zainstalować /!**- Np.:
elixir v1.6.6nie 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 tylkoasdfbez 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