Direnv - ຈັດການກັບຕົວປ່ຽນແປງສະພາບແວດລ້ອມສະເພາະຂອງໂຄງການໃນ Linux
direnv ແມ່ນການຂະຫຍາຍແຫຼ່ງເປີດ ສຳ ລັບແກະຂອງທ່ານໃນລະບົບປະຕິບັດການຂອງ UNIX ເຊັ່ນ: Linux ແລະ macOS. ມັນຖືກລວບລວມເຂົ້າໄປໃນການປະຕິບັດແບບຄົງທີ່ແບບດຽວແລະຮອງຮັບຫອຍເຊັ່ນ: bash, zsh, tcsh, ແລະປາ.
ຈຸດປະສົງຕົ້ນຕໍຂອງ direnv ແມ່ນເພື່ອອະນຸຍາດໃຫ້ມີການປ່ຽນແປງສະພາບແວດລ້ອມສະເພາະຂອງໂຄງການໂດຍບໍ່ຕ້ອງປິດລະຫັດ ~/.profile
ຫຼືແຟ້ມເລີ່ມຕົ້ນທີ່ກ່ຽວຂ້ອງ. ມັນປະຕິບັດວິທີການ ໃໝ່ ໃນການໂຫຼດແລະຍົກຍ້າຍຕົວແປສິ່ງແວດລ້ອມຂຶ້ນຢູ່ກັບໄດເລກະທໍລີປັດຈຸບັນ.
ມັນຖືກ ນຳ ໃຊ້ໃນການໂຫລດແອັບf 12factor (ວິທີການໃນການສ້າງໂປແກຼມໂປຼແກຼມທີ່ໃຊ້ບໍລິການ) ຕົວແປສະພາບແວດລ້ອມ, ສ້າງສະພາບແວດລ້ອມການພັດທະນາແບບໂດດດ່ຽວຕໍ່ໂຄງການ, ແລະຍັງສາມາດໂຫລດຄວາມລັບ ສຳ ລັບການ ນຳ ໃຊ້. ນອກຈາກນັ້ນ, ມັນສາມາດຖືກນໍາໃຊ້ເພື່ອສ້າງວິທີແກ້ໄຂການຕິດຕັ້ງແລະການຄຸ້ມຄອງແບບຫຼາຍຮູບແບບທີ່ຄ້າຍຄືກັບ rbenv, pyenv, ແລະ phpenv.
ສະນັ້ນ Direnv ເຮັດວຽກໄດ້ແນວໃດ?
ກ່ອນທີ່ຫອຍຈະໂຫລດ ຄຳ ສັ່ງ, direnv ກວດເບິ່ງເອກະສານທີ່ມີຢູ່ຂອງ .envrc
ໃນປະຈຸບັນ (ເຊິ່ງທ່ານສາມາດສະແດງໂດຍໃຊ້ ຄຳ ສັ່ງ pwd) ແລະໄດເລກະທໍລີພໍ່ແມ່. ຂັ້ນຕອນການກວດສອບແມ່ນວ່ອງໄວແລະບໍ່ສາມາດສັງເກດເຫັນໄດ້ໃນແຕ່ລະກະຕຸ້ນ.
ເມື່ອມັນພົບເອກະສານ .envrc
ທີ່ມີສິດທີ່ ເໝາະ ສົມ, ມັນຈະໂຫລດມັນເຂົ້າໄປໃນຫອຍຍ່ອຍທີ່ແຕກແລະມັນຈະຈັບຕົວແປທັງ ໝົດ ທີ່ສົ່ງອອກມາແລະເຮັດໃຫ້ມັນສາມາດໃຊ້ໄດ້ກັບແກະປະຈຸບັນ.
ການຕິດຕັ້ງ direnv ໃນ Linux Systems
ໃນການແຈກຢາຍ Linux ສ່ວນຫລາຍ, ຊຸດ direnv ສາມາດຕິດຕັ້ງໄດ້ຈາກຫໍສະມຸດໃນຕອນຕົ້ນໂດຍໃຊ້ຕົວຈັດການລະບົບຂອງທ່ານຕາມທີ່ສະແດງ.
$ sudo apt install direnv #Debian,Ubuntu and Mint $ sudo dnf install direnv #Fedora
ກ່ຽວກັບການແຈກຢາຍອື່ນໆເຊັ່ນ Red Hat Enterprise Linux (RHEL) ແລະ CentOS ຫຼືການແຈກຈ່າຍໃດໆທີ່ສະ ໜັບ ສະ ໜູນ snaps, ທ່ານສາມາດຕິດຕັ້ງມັນເປັນ snap. ນີ້ຮຽກຮ້ອງໃຫ້ທ່ານຕິດຕັ້ງ snapd ໃນລະບົບຂອງທ່ານ.
$ sudo snap install direnv
ວິທີການ Hook direnv ເຂົ້າໄປໃນ Shell Bash ຂອງທ່ານ
ຫຼັງຈາກຕິດຕັ້ງ direnv, ທ່ານ ຈຳ ເປັນຕ້ອງເຊື່ອມມັນເຂົ້າໃນຫອຍ Linux ຂອງທ່ານໃນປະຈຸບັນ. ຕົວຢ່າງເຊັ່ນ Bash, ຕື່ມສາຍຕໍ່ໄປນີ້ຢູ່ໃນຕອນທ້າຍຂອງເອກະສານ ~/.bashrc
.
ໃຫ້ແນ່ໃຈວ່າມັນປາກົດຢູ່ເຖິງແມ່ນວ່າຫຼັງຈາກ rvm, git-prompt, ແລະການຂະຫຍາຍຫອຍອື່ນໆທີ່ຈັດການການກະຕຸ້ນເຕືອນ.
eval "$(direnv hook bash)"
ຕິດຕໍ່ໃສ່ເສັ້ນຕໍ່ໄປນີ້ຢູ່ໃນຕອນທ້າຍຂອງເອກະສານ ~/.zshrc
:
eval "$(direnv hook zsh)"
ຕິດຕໍ່ໃສ່ເສັ້ນຕໍ່ໄປນີ້ຢູ່ໃນຕອນທ້າຍຂອງ ~/.config/fish/config.fish
ເອກະສານ:
eval (direnv hook fish)
ຫຼັງຈາກນັ້ນ, ປິດປ່ອງຢ້ຽມຢູ່ປາຍຍອດທີ່ເປີດໃຊ້ງານແລະເປີດຫອຍຫຼືແຫຼ່ງທີ່ມາຂອງເອກະສານດັ່ງທີ່ສະແດງ.
$ source ~/.bashrc $ source ~/.zshrc $ source ~/.config/fish/config.fish
ວິທີການໃຊ້ direnv ໃນ Linux Shell
ເພື່ອສະແດງໃຫ້ເຫັນວ່າ direnv ເຮັດວຽກໄດ້ແນວໃດ, ພວກເຮົາຈະສ້າງໄດເລກະທໍລີ ໃໝ່ ທີ່ມີຊື່ວ່າ tecmint_projects
ແລະຍ້າຍເຂົ້າມັນ.
$ mkdir ~/tecmint_projects $ cd tecmint_projects/
ຕໍ່ໄປ, ໃຫ້ສ້າງຕົວແປ ໃໝ່ ທີ່ມີຊື່ວ່າ TEST_VARIABLE
ຢູ່ເທິງເສັ້ນ ຄຳ ສັ່ງແລະເມື່ອມັນຖືກຍິນສຽງ, ຄ່າຄວນຈະຫວ່າງ:
$ echo $TEST_VARIABLE
ຕອນນີ້ພວກເຮົາຈະສ້າງເອກະສານ .envrc
ໃໝ່ ທີ່ປະກອບດ້ວຍລະຫັດ Bash ເຊິ່ງຈະຖືກໂຫລດໂດຍ direnv. ພວກເຮົາຍັງພະຍາຍາມເພີ່ມເສັ້ນ“ ສົ່ງອອກ TEST_VARIABLE = tecmint” ໃນມັນໂດຍໃຊ້ ຄຳ ສັ່ງແອັກໂກ້ແລະຕົວຊີ້ທິດທາງການສົ່ງຜົນຜະລິດ (>)
:
$ echo export TEST_VARIABLE=tecmint > .envrc
ໂດຍຄ່າເລີ່ມຕົ້ນ, ກົນໄກຄວາມປອດໄພຈະກີດຂວາງການໂຫຼດຂອງແຟ້ມ .envrc
. ເນື່ອງຈາກພວກເຮົາຮູ້ວ່າມັນເປັນເອກະສານທີ່ປອດໄພ, ພວກເຮົາ ຈຳ ເປັນຕ້ອງໄດ້ອະນຸມັດເນື້ອໃນຂອງມັນໂດຍການ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້:
$ direnv allow .
ດຽວນີ້ເນື້ອຫາຂອງເອກະສານ .envrc
ໄດ້ຖືກອະນຸຍາດໃຫ້ໂຫລດ, ໃຫ້ກວດເບິ່ງມູນຄ່າຂອງລະຫັດທີ່ TEST_VARIABLE
ທີ່ພວກເຮົາ ກຳ ນົດໄວ້ກ່ອນ:
$ echo $TEST_VARIABLE
ເມື່ອພວກເຮົາອອກຈາກໄດເລກະທໍລີ tecmint_project
, direnv ຈະຖືກໂຫລດແລະຖ້າພວກເຮົາກວດເບິ່ງຄ່າຂອງ TEST_VARIABLE
ອີກຄັ້ງ ໜຶ່ງ, ມັນຄວນຈະຫວ່າງ:
$ cd .. $ echo $TEST_VARIABLE
ທຸກໆຄັ້ງທີ່ທ່ານຍ້າຍໄປທີ່ໄດເລກະທໍລີ tecmint_projects, ແຟ້ມ .envrc
ຈະຖືກໂຫລດຕາມທີ່ສະແດງຢູ່ໃນ ໜ້າ ຈໍຕໍ່ໄປນີ້:
$ cd tecmint_projects/
ເພື່ອລົບລ້າງການອະນຸຍາດຂອງ .envrc
ທີ່ໃຫ້, ໃຫ້ໃຊ້ ຄຳ ສັ່ງປະຕິເສດ.
$ direnv deny . #in current directory OR $ direnv deny /path/to/.envrc
ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມແລະ ຄຳ ແນະ ນຳ ກ່ຽວກັບການ ນຳ ໃຊ້, ເບິ່ງ ໜ້າ direnv man:
$ man direnv
ນອກຈາກນັ້ນ, direnv ຍັງໃຊ້ stdlib (direnv-stdlib) ມາພ້ອມກັບຫລາຍ ໜ້າ ທີ່ທີ່ຊ່ວຍໃຫ້ທ່ານສາມາດເພີ່ມໄດເລກະທໍລີ ໃໝ່ ເຂົ້າໃນ PATH ຂອງທ່ານໄດ້ງ່າຍແລະເຮັດຫຼາຍສິ່ງຫຼາຍຢ່າງ.
ເພື່ອຊອກຫາເອກະສານ ສຳ ລັບທຸກໆ ໜ້າ ທີ່ທີ່ມີຢູ່, ໃຫ້ກວດເບິ່ງ ໜ້າ ເຂົ້າຂອງປື້ມຄູ່ມື direnv-stdlib:
$ man direnv-stdlib
ນັ້ນແມ່ນສິ່ງທີ່ພວກເຮົາມີ ສຳ ລັບທ່ານ! ຖ້າທ່ານມີ ຄຳ ຖາມຫຼືຄວາມຄິດໃດທີ່ຈະແບ່ງປັນກັບພວກເຮົາ, ໃຫ້ໃຊ້ແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.