حاولت تضمين tfenv في تكوين dotfiles الخاص بي وبنفس الطريقة التي أفعلها مع pyenv و rbenv وما إلى ذلك. لقد قمت بتحميل هذه الأغلفة كسولًا ، لذلك يتم تنفيذ init
عند الاتصال الأول ، وهنا كيف يبدو في shell:
% type -f rbenv
rbenv () {
unset -f rbenv
export RBENV_ROOT=$XDG_DATA_HOME/rbenv
PATH=$DOTFILES/rbenv/rbenv/bin:$PATH
eval "$(command rbenv init -)"
rbenv $@
}
يتم إنشاء هذه الوظيفة تلقائيًا باستخدام المجمع على https://github.com/z0rc/dotfiles/blob/master/zsh/rc.d/15_rbpynodlua_env.zsh#L5 -L16. كما أنها تحدد *ENV_ROOT
dir لذلك لن تقوم هذه الأغلفة بإنشاء dotdir من المستوى الأعلى في $HOME
(ملاحظة جانبية: XDG Base Dir Spec أقدم من عقد من الزمان ، لكن بعض التطبيقات لا تزال غير موجودة ر احترام ذلك ، عار)
لذلك حاولت تمكين tfenv
هنا فقط لأجد أنه لا يتعامل مع TFENV_ROOT
بنفس طريقة أغلفة أخرى. تستخدم أغلفة أخرى مجلد *ENV_ROOT
لتخزين الحشوات والمكونات الإضافية وذاكرة التخزين المؤقت. يستخدمه tfenv
حرفيًا كمؤشر حيث يتم تثبيته ، وهو أمر غير منطقي لأنه يتم اكتشافه تلقائيًا على أي حال. كما لا يوجد أمر tfenv init
.
أقدر أنك حاولت تبسيط التثبيت ، ولكن بنفس الطريقة التي انتهكت بها عقد التوافق مع أغلفة أخرى.
بالإضافة إلى ذلك ، لا يوجد tfenv shell
لتمكين إصدار معين من terraform لجلسة shell الحالية.
الأهم من ذلك ، يجب ألا يتجاوز $ # tfenv
/usr/local/bin/terraform
أو يتعارض مع Terraform المناسب ، ولكن بدلاً من ذلك ، العب بـ $PATH
تمامًا كما يفعل أي شخص آخر.
إن امتلاك هذه الميزات سيجعلها أداة مفيدة عند استخدامها مع شيء مثل anyenv
.
لقد أنشأت فرعًا يقوم بما يفعله rbenv init
(في شكل بسيط للغاية).
https://github.com/jalcine/tfenv/tree/add-init-command
اسمحوا لي أن أعرف ماذا يجب أن يذهب هناك.
تم الحل بواسطة # 240
التعليق الأكثر فائدة
الأهم من ذلك ، يجب ألا يتجاوز $ #
tfenv
/usr/local/bin/terraform
أو يتعارض مع Terraform المناسب ، ولكن بدلاً من ذلك ، العب بـ$PATH
تمامًا كما يفعل أي شخص آخر.