TOOCS.asdf

Build-Status Ansible Rolle

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

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 hinzu

  • Der Eintrag muss folgende Form haben:

    - LANG:
        - x.x.x
        - y.y.y
    

    Dabei ist LANG der Name der Sprache, und x.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 von elixir installiert. Dies ist praktisch, da elixir benötigt, dass erlang 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 Version 21.1.14
    • Der Befehl python zeigt auf die Version 3.7.0
    • python unterstützt mehrere global, die folgenden Befehle werden ebenfalls verfügbar gemacht:
      • python3.7 / pip3.7
      • python2.7 / pip2.7
      • python2.6 / pip2.6
      • python3 / pip3 => Neueste python3-Version: python3.7 / pip3.7
      • python2 / pip2 => Neueste python2-Version: python2.7 / pip2.7

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
  • Erlang
    • Mit Dokumentation, aber ohne jinterface kompiliert
  • Elixir
    • Erfordert erlang
    • Wird ausdrücklich aus dem Quellcode kompiliert
    • **/!\ Stellen Sie sicher, dass die aktuelle Version von erlang von der zu installierenden Version von elixir unterstützt wird /!\**
      • Beispiel: elixir v1.6.6 ist nicht kompatibel mit erlang 21! Um elixir v1.6.6 zu kompilieren, muss erlang 20 verwendet werden.

Variablen der Rolle

  • asdf_version

    • asdf-Version, die installiert werden soll
    • Standard: v0.6.2
  • skip_shell_setup

    • Wenn True, wird nur asdf installiert, ohne die Shell einzurichten
    • Standard: False
  • languages_to_install

    • Liste der Sprachen und Versionen, die mit asdf installiert werden sollen. Siehe Sprachen installieren
    • Standard: []

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

Über das Projekt

Install 'asdf'

Installieren
ansible-galaxy install TOOCS.asdf
GitHub Repository
Lizenz
mit
Downloads
175
Besitzer
The Opinionated One-Click Setups - TOOCS - Logo made with DesignEvo (www.designevo.com)