Pfadverwaltung
Eine der kritischsten Aufgaben von Dotfiles ist die Verwaltung Ihrer $PATH-Umgebungsvariablen. Dies bestimmt, welche Version eines Tools ausgeführt wird, wenn Sie einen Befehl eingeben.
Wir halten uns an eine strikte Hierarchie, um Konsistenz zwischen macOS und Linux zu gewährleisten.
Die Hierarchie
Von höchster Priorität (zuerst geprüft) bis zur niedrigsten:
Lokale Binärdateien (
~/.local/bin)- Priorität: 1
- Zweck: Benutzerdefinierte Benutzerskripte,
dot-CLI und Tools, die überpipxoder andere Paketmanager auf Benutzerebene installiert wurden. - Grund: Ermöglicht es Ihnen, System- oder Homebrew-Tools mit Ihren eigenen Versionen zu überschreiben.
Anwendungs-Binärdateien (macOS)
- Priorität: 2
- Zweck: Binärdateien von installierten Anwendungen (z. B. VS Code, iTerm).
Sprach-Laufzeiten
- Node.js:
~/.node_modules/bin - Go:
~/go/bin - Rust (Cargo):
~/.cargo/bin - Ruby (User Gems):
~/.gem/ruby/bin - Python (Pipx):
~/.local/share/pipx
- Node.js:
Homebrew (
/opt/homebrew/bin)- Priorität: 3
- Zweck: Hauptpaketmanager für macOS/Linux.
- Hinweis: Wir laden Homebrew absichtlich vor den Systempfaden, um das Upgrade von Systemwerkzeugen (wie
gitodercurl) zu ermöglichen.
Systempfade (
/usr/bin,/bin)- Priorität: Niedrigste
- Zweck: Standard-Betriebssystemwerkzeuge.
- Grund: Rückfalloption für grundlegende Dienstprogramme.
Deduplizierung
Dotfiles dedupliziert Ihren $PATH automatisch, während die Rangfolge beibehalten wird. Dies verhindert, dass die $PATH-Variable beim Starten verschachtelter Shells unbegrenzt wächst.