TOOCS.asdf
TOOCS / Ansible Rolle: TOOCS.asdf
- Installiert
asdf - Für
zsh-Benutzer wird~/.zlogineingerichtet, um eine einsatzbereite Erfahrung zu gewährleisten - Verwendet
asdf, um die von Ihnen gewählten Programmiersprachen zu installieren (eingeschränkte Unterstützung, siehe Sprachen installieren)
TOOCS?
TOOCS - The Opinionated One-Click Setups sind eine Reihe von Tools / Ansible-Rollen, die entwickelt wurden, um ein System mit einem Klick einzurichten. Sie sind eine einfache, zuverlässige Möglichkeit, ein bestimmtes Tool einzurichten. Sie können sie so verwenden, wie sie sind, oder ihren Code inspizieren, um Schritt für Schritt zu lernen.
Sie sind, wie der Name schon sagt, meinungsbildend: Sie garantieren zwar, das jeweilige Tool mit einem Klick einzurichten, garantieren jedoch nicht die Konsistenz in wie sie dies erreichen, neue Versionen können breaking changes einführen.
Lesen Sie den Code und stellen Sie sicher, dass Sie verstehen, was passiert!
Inhaltsverzeichnis
- Voraussetzungen
- Nach der Installation - Shell-Konfiguration
- Sprachen installieren
- Variablen der Rolle
- Beispiel-Playbook
Voraussetzungen
Diese Rolle funktioniert nur auf MacOSX & Ubuntu/Debian.
Nach der Installation - Shell-Konfiguration
Zsh-Benutzer
Wenn Sie TOOCS auf einem Benutzer verwenden, dessen Shell zsh ist, wird TOOCS automatisch die Datei ~/.zlogin konfigurieren. Es sind keine weiteren Aktionen erforderlich.
Wenn Sie kein Framework wie oh-my-zsh verwenden oder beim Starten Ihrer Shell eine Fehlermeldung wie 'Befehl nicht gefunden: compinit' erhalten, fügen Sie diese Zeile vor den Zeilen hinzu, die von TOOCS in Ihrer Datei ~/.zlogin hinzugefügt wurden:
autoload -Uz compinit && compinit
Nicht-Zsh-Benutzer
Für Nicht-Zsh-Benutzer ist eine manuelle Einrichtung erforderlich. Je nach Ihrem Betriebssystem und Ihrer Shell führen Sie Folgendes aus:
Bash auf Ubuntu (und anderen Linux-Distributionen)
echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bashrc echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrcBash auf 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
Starten Sie Ihre Shell neu, damit die PATH-Änderungen wirksam werden. (Das Öffnen eines neuen Terminal-Tabs sollte dies normalerweise bewirken.)
Wenn Sie Probleme haben, dass die Shims, die Sie installiert haben, nicht erkannt werden, liegt dies höchstwahrscheinlich daran, dass das Einfügen von oben asdf.bash oder asdf.fish nicht am Ende Ihrer ~/.bash_profile, ~/.zshrc oder ~/.config/fish/config.fish steht. Es muss nach dem Setzen Ihres $PATH geladen werden.
Quelle: offizielle 'asdf'-Einrichtung
Sprachen installieren
Nachdem Sie asdf installiert haben, kann dieses TOOCS automatisch verschiedene Versionen der von Ihnen gewählten Sprachen installieren. Es kümmert sich um die Installation der erforderlichen Abhängigkeiten für jede Sprache und installiert die verschiedenen Versionen, wobei es normalerweise bevorzugt, aus dem Quellcode zu kompilieren, anstatt vor compilierte Binärdateien herunterzuladen.
Die Variable languages_to_install ist eine Liste, die alle Sprachen enthält, die installiert werden sollen, zusammen mit den spezifischen Versionen.
Um eine Sprache zu installieren, fügen Sie einen Eintrag zur Liste in
languages_to_installhinzuDer Eintrag muss folgende Form haben:
- LANG: - x.x.x - y.y.yDabei ist
LANGder Name der Sprache, undx.x.x / y.y.ysind Versionsnummern.Die Liste
languages_to_installist geordnet:languages_to_install: - erlang: - 21.1.14 - 20.3.8.9 - elixir: - 1.7.4In diesem Beispiel werden beide Versionen von
erlangvor der Installation vonelixirinstalliert. Dies ist praktisch, daelixirbenötigt, dasserlangkompiliert wird.Für jede Sprache ist die Liste der zu installierenden Versionen ebenfalls geordnet.
- Die erste Version der Liste wird als
globalgesetzt - Für Sprachen, die mehrere gleichzeitige
global-Versionen unterstützen, werden alle Versionen aus der Liste in der Reihenfolge als global gesetzt (z. B. python)
languages_to_install: - erlang: - 21.1.14 - 20.3.8.9 - python: # Unterstützung für mehrere `global` - 3.7.0 - 2.6.6 - 2.7.15In diesem Beispiel wird nach dem Ausführen von TOOCS die Shell wie folgt konfiguriert:
- Der Befehl
erl(erlang) zeigt auf die Version21.1.14 - Der Befehl
pythonzeigt auf die Version3.7.0 pythonunterstützt mehrereglobal, die folgenden Befehle werden ebenfalls verfügbar gemacht:python3.7/pip3.7python2.7/pip2.7python2.6/pip2.6python3/pip3=> Neuestepython3-Version:python3.7/pip3.7python2/pip2=> Neuestepython2-Version:python2.7/pip2.7
- Die erste Version der Liste wird als
Unterstützte Sprachen
- Python
- Unterstützung für mehrere
global-Versionen - Auf Debian Stretch (und Ubuntu Bionic) können nur Python-Versionen
>= 2.7.13und>= 3.5.3automatisch installiert werden. Frühere Versionen können später manuell installiert werden, aber das erfordert derzeit einen Workaround. Siehe: Pyenv - Häufige Build-Probleme - OpenSSL
- Unterstützung für mehrere
- Erlang
- Mit Dokumentation, aber ohne
jinterfacekompiliert
- Mit Dokumentation, aber ohne
- Elixir
- Erfordert
erlang - Wird ausdrücklich aus dem Quellcode kompiliert
- **/!\ Stellen Sie sicher, dass die aktuelle Version von
erlangvon der zu installierenden Version vonelixirunterstützt wird /!\**- Beispiel:
elixir v1.6.6ist nicht kompatibel miterlang 21! Umelixir v1.6.6zu kompilieren, musserlang 20verwendet werden.
- Beispiel:
- Erfordert
Variablen der Rolle
asdf_versionasdf-Version, die installiert werden soll- Standard:
v0.6.2
skip_shell_setup- Wenn
True, wird nurasdfinstalliert, ohne die Shell einzurichten - Standard:
False
- Wenn
languages_to_install- Liste der Sprachen und Versionen, die mit
asdfinstalliert werden sollen. Siehe Sprachen installieren - Standard:
[]
- Liste der Sprachen und Versionen, die mit
Beispiel-Playbook
- hosts: sandbox
tasks:
- include_role:
name: TOOCS.asdf
# ODER
- hosts: sandbox
tasks:
- include_role:
name: TOOCS.asdf
vars:
asdf_version: v0.6.1
skip_shell_setup: True
# ODER
- 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
Lizenz
MIT
Autor-Informationen
Folgen Sie mir auf Twitter: @ThisIsFlorianK
Erfahren Sie mehr über meine Arbeit: Florian Kempenich - persönliche Website
