TOOCS.asdf
TOOCS / Ansible Rolle: TOOCS.asdf
- Installiert
asdf
- Für
zsh
-Benutzer wird~/.zlogin
eingerichtet, 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' >> ~/.bashrc
Bash auf 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
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_install
hinzuDer Eintrag muss folgende Form haben:
- LANG: - x.x.x - y.y.y
Dabei ist
LANG
der Name der Sprache, undx.x.x / y.y.y
sind Versionsnummern.Die Liste
languages_to_install
ist geordnet:languages_to_install: - erlang: - 21.1.14 - 20.3.8.9 - elixir: - 1.7.4
In diesem Beispiel werden beide Versionen von
erlang
vor der Installation vonelixir
installiert. Dies ist praktisch, daelixir
benötigt, dasserlang
kompiliert wird.Für jede Sprache ist die Liste der zu installierenden Versionen ebenfalls geordnet.
- Die erste Version der Liste wird als
global
gesetzt - 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.15
In 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
python
zeigt auf die Version3.7.0
python
unterstützt mehrereglobal
, die folgenden Befehle werden ebenfalls verfügbar gemacht:python3.7
/pip3.7
python2.7
/pip2.7
python2.6
/pip2.6
python3
/pip3
=> Neuestepython3
-Version:python3.7
/pip3.7
python2
/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.13
und>= 3.5.3
automatisch 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
jinterface
kompiliert
- Mit Dokumentation, aber ohne
- Elixir
- Erfordert
erlang
- Wird ausdrücklich aus dem Quellcode kompiliert
- **/!\ Stellen Sie sicher, dass die aktuelle Version von
erlang
von der zu installierenden Version vonelixir
unterstützt wird /!\**- Beispiel:
elixir v1.6.6
ist nicht kompatibel miterlang 21
! Umelixir v1.6.6
zu kompilieren, musserlang 20
verwendet werden.
- Beispiel:
- Erfordert
Variablen der Rolle
asdf_version
asdf
-Version, die installiert werden soll- Standard:
v0.6.2
skip_shell_setup
- Wenn
True
, wird nurasdf
installiert, ohne die Shell einzurichten - Standard:
False
- Wenn
languages_to_install
- Liste der Sprachen und Versionen, die mit
asdf
installiert 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